Zoltan Hudak / QtCreator_Support
Committer:
hudakz
Date:
Wed Oct 21 07:01:25 2020 +0000
Revision:
9:480495caa078
Parent:
0:e5c84595673c
Mbed support for QtCreator IDE.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hudakz 0:e5c84595673c 1 /* mbed Microcontroller Library
hudakz 0:e5c84595673c 2 * Copyright (c) 2017 ARM Limited
hudakz 0:e5c84595673c 3 *
hudakz 0:e5c84595673c 4 * Licensed under the Apache License, Version 2.0 (the "License");
hudakz 0:e5c84595673c 5 * you may not use this file except in compliance with the License.
hudakz 0:e5c84595673c 6 * You may obtain a copy of the License at
hudakz 0:e5c84595673c 7 *
hudakz 0:e5c84595673c 8 * http://www.apache.org/licenses/LICENSE-2.0
hudakz 0:e5c84595673c 9 *
hudakz 0:e5c84595673c 10 * Unless required by applicable law or agreed to in writing, software
hudakz 0:e5c84595673c 11 * distributed under the License is distributed on an "AS IS" BASIS,
hudakz 0:e5c84595673c 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
hudakz 0:e5c84595673c 13 * See the License for the specific language governing permissions and
hudakz 0:e5c84595673c 14 * limitations under the License.
hudakz 0:e5c84595673c 15 */
hudakz 0:e5c84595673c 16
hudakz 0:e5c84595673c 17 #include "stm32f4xx_hal.h"
hudakz 0:e5c84595673c 18
hudakz 0:e5c84595673c 19 void _eth_config_mac(ETH_HandleTypeDef *heth)
hudakz 0:e5c84595673c 20 {
hudakz 0:e5c84595673c 21 ETH_MACInitTypeDef macconf = {
hudakz 0:e5c84595673c 22 .Watchdog = ETH_WATCHDOG_ENABLE,
hudakz 0:e5c84595673c 23 .Jabber = ETH_JABBER_ENABLE,
hudakz 0:e5c84595673c 24 .InterFrameGap = ETH_INTERFRAMEGAP_96BIT,
hudakz 0:e5c84595673c 25 .CarrierSense = ETH_CARRIERSENCE_ENABLE,
hudakz 0:e5c84595673c 26 .ReceiveOwn = ETH_RECEIVEOWN_ENABLE,
hudakz 0:e5c84595673c 27 .LoopbackMode = ETH_LOOPBACKMODE_DISABLE,
hudakz 0:e5c84595673c 28 .ChecksumOffload = ETH_CHECKSUMOFFLAOD_ENABLE,
hudakz 0:e5c84595673c 29 .RetryTransmission = ETH_RETRYTRANSMISSION_DISABLE,
hudakz 0:e5c84595673c 30 .AutomaticPadCRCStrip = ETH_AUTOMATICPADCRCSTRIP_DISABLE,
hudakz 0:e5c84595673c 31 .BackOffLimit = ETH_BACKOFFLIMIT_10,
hudakz 0:e5c84595673c 32 .DeferralCheck = ETH_DEFFERRALCHECK_DISABLE,
hudakz 0:e5c84595673c 33 .ReceiveAll = ETH_RECEIVEAll_DISABLE,
hudakz 0:e5c84595673c 34 .SourceAddrFilter = ETH_SOURCEADDRFILTER_DISABLE,
hudakz 0:e5c84595673c 35 .PassControlFrames = ETH_PASSCONTROLFRAMES_BLOCKALL,
hudakz 0:e5c84595673c 36 .BroadcastFramesReception = ETH_BROADCASTFRAMESRECEPTION_ENABLE,
hudakz 0:e5c84595673c 37 .DestinationAddrFilter = ETH_DESTINATIONADDRFILTER_NORMAL,
hudakz 0:e5c84595673c 38 .PromiscuousMode = ETH_PROMISCUOUS_MODE_DISABLE,
hudakz 0:e5c84595673c 39 .MulticastFramesFilter = ETH_MULTICASTFRAMESFILTER_NONE, // Disable multicast filter
hudakz 0:e5c84595673c 40 .UnicastFramesFilter = ETH_UNICASTFRAMESFILTER_PERFECT,
hudakz 0:e5c84595673c 41 .HashTableHigh = 0x0U,
hudakz 0:e5c84595673c 42 .HashTableLow = 0x0U,
hudakz 0:e5c84595673c 43 .PauseTime = 0x0U,
hudakz 0:e5c84595673c 44 .ZeroQuantaPause = ETH_ZEROQUANTAPAUSE_DISABLE,
hudakz 0:e5c84595673c 45 .PauseLowThreshold = ETH_PAUSELOWTHRESHOLD_MINUS4,
hudakz 0:e5c84595673c 46 .UnicastPauseFrameDetect = ETH_UNICASTPAUSEFRAMEDETECT_DISABLE,
hudakz 0:e5c84595673c 47 .ReceiveFlowControl = ETH_RECEIVEFLOWCONTROL_DISABLE,
hudakz 0:e5c84595673c 48 .TransmitFlowControl = ETH_TRANSMITFLOWCONTROL_DISABLE,
hudakz 0:e5c84595673c 49 .VLANTagComparison = ETH_VLANTAGCOMPARISON_16BIT,
hudakz 0:e5c84595673c 50 .VLANTagIdentifier = 0x0U,
hudakz 0:e5c84595673c 51 };
hudakz 0:e5c84595673c 52
hudakz 0:e5c84595673c 53 if (heth->Init.ChecksumMode == ETH_CHECKSUM_BY_HARDWARE) {
hudakz 0:e5c84595673c 54 macconf.ChecksumOffload = ETH_CHECKSUMOFFLAOD_ENABLE;
hudakz 0:e5c84595673c 55 } else {
hudakz 0:e5c84595673c 56 macconf.ChecksumOffload = ETH_CHECKSUMOFFLAOD_DISABLE;
hudakz 0:e5c84595673c 57 }
hudakz 0:e5c84595673c 58
hudakz 0:e5c84595673c 59 (void) HAL_ETH_ConfigMAC(heth, &macconf);
hudakz 0:e5c84595673c 60 }
hudakz 0:e5c84595673c 61