Skip to content

Commit de76d98

Browse files
author
Bartek Szatkowski
authored
Merge branch 'master' into feature_cmsis5
2 parents 07318b3 + 59e32b2 commit de76d98

File tree

76 files changed

+10787
-59
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+10787
-59
lines changed

features/FEATURE_LWIP/lwip-interface/emac_lwip.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,13 @@ err_t emac_lwip_if_init(struct netif *netif)
6363
mac->ops.set_link_input_cb(mac, emac_lwip_input, netif);
6464
mac->ops.set_link_state_cb(mac, emac_lwip_state_change, netif);
6565

66-
netif->hwaddr_len = mac->ops.get_hwaddr_size(mac);
67-
mac->ops.get_hwaddr(mac, netif->hwaddr);
66+
if (!mac->ops.power_up(mac)) {
67+
err = ERR_IF;
68+
}
6869

6970
netif->mtu = mac->ops.get_mtu_size(mac);
71+
netif->hwaddr_len = mac->ops.get_hwaddr_size(mac);
72+
mac->ops.get_hwaddr(mac, netif->hwaddr);
7073

7174
/* Interface capabilities */
7275
netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_ETHERNET | NETIF_FLAG_IGMP;
@@ -79,10 +82,6 @@ err_t emac_lwip_if_init(struct netif *netif)
7982

8083
netif->linkoutput = emac_lwip_low_level_output;
8184

82-
if (!mac->ops.power_up(mac)) {
83-
err = ERR_IF;
84-
}
85-
8685
return err;
8786
}
8887

features/FEATURE_LWIP/lwip-interface/lwip_stack.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -393,8 +393,6 @@ nsapi_error_t mbed_lwip_init(emac_interface_t *emac)
393393
// Check if we've already brought up lwip
394394
if (!mbed_lwip_get_mac_address()) {
395395
// Set up network
396-
mbed_lwip_set_mac_address();
397-
398396
sys_sem_new(&lwip_tcpip_inited, 0);
399397
sys_sem_new(&lwip_netif_linked, 0);
400398
sys_sem_new(&lwip_netif_has_addr, 0);
@@ -411,6 +409,7 @@ nsapi_error_t mbed_lwip_init(emac_interface_t *emac)
411409
return NSAPI_ERROR_DEVICE_ERROR;
412410
}
413411

412+
mbed_lwip_set_mac_address();
414413
netif_set_default(&lwip_netif);
415414

416415
netif_set_link_callback(&lwip_netif, mbed_lwip_netif_link_irq);

targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_pcd.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ typedef struct
232232
* @{
233233
*/
234234
#define __HAL_PCD_GET_FLAG(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->ISTR) & (__INTERRUPT__)) == (__INTERRUPT__))
235-
#define __HAL_PCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->ISTR) &= (uint16_t)(~(__INTERRUPT__))))
235+
#define __HAL_PCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->ISTR) = (uint16_t)(~(__INTERRUPT__)))) // MBED fix
236236

237237
#define __HAL_USB_WAKEUP_EXTI_ENABLE_IT() EXTI->IMR |= USB_WAKEUP_EXTI_LINE
238238
#define __HAL_USB_WAKEUP_EXTI_DISABLE_IT() EXTI->IMR &= ~(USB_WAKEUP_EXTI_LINE)
@@ -622,9 +622,9 @@ PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef *hpcd);
622622
* @retval None
623623
*/
624624
#define PCD_CLEAR_RX_EP_CTR(USBx, bEpNum) (PCD_SET_ENDPOINT((USBx), (bEpNum),\
625-
PCD_GET_ENDPOINT((USBx), (bEpNum)) & 0x7FFFU & USB_EPREG_MASK))
625+
( PCD_GET_ENDPOINT((USBx), (bEpNum)) | USB_EP_CTR_TX ) & ~USB_EP_CTR_RX & USB_EPREG_MASK)) // MBED fix
626626
#define PCD_CLEAR_TX_EP_CTR(USBx, bEpNum) (PCD_SET_ENDPOINT((USBx), (bEpNum),\
627-
PCD_GET_ENDPOINT((USBx), (bEpNum)) & 0xFF7FU & USB_EPREG_MASK))
627+
( PCD_GET_ENDPOINT((USBx), (bEpNum)) | USB_EP_CTR_RX ) & ~USB_EP_CTR_TX & USB_EPREG_MASK)) // MBED fix
628628

629629
/**
630630
* @brief Toggles DTOG_RX / DTOG_TX bit in the endpoint register.
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
/* mbed Microcontroller Library
2+
*******************************************************************************
3+
* Copyright (c) 2017, STMicroelectronics
4+
* All rights reserved.
5+
*
6+
* Redistribution and use in source and binary forms, with or without
7+
* modification, are permitted provided that the following conditions are met:
8+
*
9+
* 1. Redistributions of source code must retain the above copyright notice,
10+
* this list of conditions and the following disclaimer.
11+
* 2. Redistributions in binary form must reproduce the above copyright notice,
12+
* this list of conditions and the following disclaimer in the documentation
13+
* and/or other materials provided with the distribution.
14+
* 3. Neither the name of STMicroelectronics nor the names of its contributors
15+
* may be used to endorse or promote products derived from this software
16+
* without specific prior written permission.
17+
*
18+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28+
*******************************************************************************
29+
*/
30+
#ifndef MBED_PERIPHERALNAMES_H
31+
#define MBED_PERIPHERALNAMES_H
32+
33+
#include "cmsis.h"
34+
35+
#ifdef __cplusplus
36+
extern "C" {
37+
#endif
38+
39+
typedef enum {
40+
ADC_1 = (int)ADC1_BASE
41+
} ADCName;
42+
43+
typedef enum {
44+
DAC_1 = (int)DAC_BASE
45+
} DACName;
46+
47+
typedef enum {
48+
UART_1 = (int)USART1_BASE,
49+
UART_2 = (int)USART2_BASE,
50+
UART_4 = (int)USART4_BASE,
51+
UART_5 = (int)USART5_BASE,
52+
LPUART_1 = (int)LPUART1_BASE
53+
} UARTName;
54+
55+
#define STDIO_UART_TX PA_2
56+
#define STDIO_UART_RX PA_3
57+
#define STDIO_UART UART_2
58+
59+
typedef enum {
60+
SPI_1 = (int)SPI1_BASE,
61+
SPI_2 = (int)SPI2_BASE
62+
} SPIName;
63+
64+
typedef enum {
65+
I2C_1 = (int)I2C1_BASE,
66+
I2C_2 = (int)I2C2_BASE,
67+
I2C_3 = (int)I2C3_BASE
68+
} I2CName;
69+
70+
typedef enum {
71+
PWM_2 = (int)TIM2_BASE,
72+
PWM_3 = (int)TIM3_BASE,
73+
PWM_21 = (int)TIM21_BASE,
74+
PWM_22 = (int)TIM22_BASE
75+
} PWMName;
76+
77+
#ifdef __cplusplus
78+
}
79+
#endif
80+
81+
#endif

0 commit comments

Comments
 (0)