Skip to content

Commit 0789928

Browse files
authored
Merge pull request #3467 from ARMmbed/release-candidate
Release candidate for mbed-os-5.3.1
2 parents c3b9436 + b0889da commit 0789928

File tree

578 files changed

+116418
-22123
lines changed

Some content is hidden

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

578 files changed

+116418
-22123
lines changed

TESTS/mbedmicro-rtos-mbed/malloc/main.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77
#endif
88

99
#define NUM_THREADS 5
10+
#if defined(__CORTEX_A9)
11+
#define THREAD_STACK_SIZE DEFAULT_STACK_SIZE
12+
#else
1013
#define THREAD_STACK_SIZE 256
14+
#endif
1115

1216
DigitalOut led1(LED1);
1317
volatile bool should_exit = false;

TESTS/mbedmicro-rtos-mbed/mutex/main.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
#define STACK_SIZE 768
3333
#elif (defined(TARGET_EFM32GG_STK3700)) && !defined(TOOLCHAIN_ARM_MICRO)
3434
#define STACK_SIZE 1536
35+
#elif (defined(TARGET_EFR32)) && !defined(TOOLCHAIN_ARM_MICRO)
36+
#define STACK_SIZE 768
3537
#elif defined(TARGET_MCU_NRF51822) || defined(TARGET_MCU_NRF52832)
3638
#define STACK_SIZE 1024
3739
#elif defined(TARGET_XDOT_L151CC)

TESTS/mbedmicro-rtos-mbed/semaphore/main.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
#define STACK_SIZE 768
3636
#elif (defined(TARGET_EFM32GG_STK3700)) && !defined(TOOLCHAIN_ARM_MICRO)
3737
#define STACK_SIZE 1536
38+
#elif (defined(TARGET_EFR32)) && !defined(TOOLCHAIN_ARM_MICRO)
39+
#define STACK_SIZE 768
3840
#elif defined(TARGET_MCU_NRF51822) || defined(TARGET_MCU_NRF52832)
3941
#define STACK_SIZE 768
4042
#elif defined(TARGET_XDOT_L151CC)

TESTS/mbedmicro-rtos-mbed/threads/main.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
#define STACK_SIZE 1024
2828
#elif defined(TARGET_HI2110)
2929
#define STACK_SIZE 512
30+
#elif defined(TARGET_EFR32)
31+
#define STACK_SIZE 512
3032
#else
3133
#define STACK_SIZE DEFAULT_STACK_SIZE
3234
#endif

docs/exporters.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,12 @@ The dname (device name) field on line 156 directly corresponds to that in the Uv
5353
##### IAR
5454
[`tools/export/iar/iar_definitions.json`](https://github.com/ARMmbed/mbed-os/blob/master/tools/export/iar/iar_definitions.json) utilizes this device name to store information necessary to set the target in an IAR project.
5555

56+
##### Updating index.json
57+
You can regenerate `index.json` to contain a newly made CMSIS pack with the following command:
5658

59+
`mbed export -i [IDE] --update-packs`
60+
61+
You should include the changes to `index.json` in your PR that adds support for the new target.
5762

5863

5964

drivers/I2C.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ class I2C {
117117
* @param repeated Repeated start, true - do not send stop at end
118118
*
119119
* @returns
120-
* 0 on success (ack),
121-
* non-0 on failure (nack)
120+
* 0 or non-zero - written number of bytes,
121+
* negative - I2C_ERROR_XXX status
122122
*/
123123
int write(int address, const char *data, int length, bool repeated = false);
124124

@@ -127,8 +127,9 @@ class I2C {
127127
* @param data data to write out on bus
128128
*
129129
* @returns
130-
* '1' if an ACK was received,
131-
* '0' otherwise
130+
* '0' - NAK was received
131+
* '1' - ACK was received,
132+
* '2' - timeout
132133
*/
133134
int write(int data);
134135

features/FEATURE_LWIP/TESTS/mbedmicro-net/host_tests/tcp_echo_client.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,10 @@ def find_interface_to_target_addr(target_ip):
128128
:return:
129129
"""
130130
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
131-
s.connect((target_ip, 0)) # Target IP, Any port
131+
try:
132+
s.connect((target_ip, 0)) # Target IP, any port
133+
except socket.error:
134+
s.connect((target_ip, 8000)) # Target IP, 'random' port
132135
ip = s.getsockname()[0]
133136
s.close()
134137
return ip

features/FEATURE_LWIP/TESTS/mbedmicro-net/host_tests/udp_echo_client.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ def find_interface_to_target_addr(target_ip):
5555
:return:
5656
"""
5757
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
58-
s.connect((target_ip, 0)) # Target IP, Any port
58+
try:
59+
s.connect((target_ip, 0)) # Target IP, any port
60+
except socket.error:
61+
s.connect((target_ip, 8000)) # Target IP, 'random' port
5962
ip = s.getsockname()[0]
6063
s.close()
6164
return ip
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
/*
2+
* Copyright (c) 2016, Freescale Semiconductor, Inc.
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without modification,
6+
* are permitted provided that the following conditions are met:
7+
*
8+
* o Redistributions of source code must retain the above copyright notice, this list
9+
* of conditions and the following disclaimer.
10+
*
11+
* o Redistributions in binary form must reproduce the above copyright notice, this
12+
* list of conditions and the following disclaimer in the documentation and/or
13+
* other materials provided with the distribution.
14+
*
15+
* o Neither the name of Freescale Semiconductor, Inc. nor the names of its
16+
* contributors may be used to endorse or promote products derived from this
17+
* software without specific prior written permission.
18+
*
19+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
23+
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
26+
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
*/
30+
31+
#include "fsl_port.h"
32+
33+
/*******************************************************************************
34+
* Code
35+
******************************************************************************/
36+
void k66f_init_eth_hardware(void)
37+
{
38+
port_pin_config_t configENET = {0};
39+
40+
#ifndef FEATURE_UVISOR
41+
/* Disable MPU only when uVisor is not around. */
42+
MPU->CESR &= ~MPU_CESR_VLD_MASK;
43+
#endif/*FEATURE_UVISOR*/
44+
45+
/* Ungate the port clock */
46+
CLOCK_EnableClock(kCLOCK_PortA);
47+
CLOCK_EnableClock(kCLOCK_PortB);
48+
CLOCK_EnableClock(kCLOCK_PortE);
49+
50+
/* Affects PORTE_PCR26 register, configured as ENET_1588 CLKIN */
51+
PORT_SetPinMux(PORTE, 26u, kPORT_MuxAlt2);
52+
/* Affects PORTB_PCR1 register */
53+
PORT_SetPinMux(PORTB, 1u, kPORT_MuxAlt4);
54+
55+
configENET.openDrainEnable = kPORT_OpenDrainEnable;
56+
configENET.mux = kPORT_MuxAlt4;
57+
configENET.pullSelect = kPORT_PullUp;
58+
/* Affects PORTB_PCR0 register */
59+
PORT_SetPinConfig(PORTB, 0u, &configENET);
60+
61+
/* Affects PORTA_PCR13 register */
62+
PORT_SetPinMux(PORTA, 13u, kPORT_MuxAlt4);
63+
/* Affects PORTA_PCR12 register */
64+
PORT_SetPinMux(PORTA, 12u, kPORT_MuxAlt4);
65+
/* Affects PORTA_PCR14 register */
66+
PORT_SetPinMux(PORTA, 14u, kPORT_MuxAlt4);
67+
/* Affects PORTA_PCR5 register */
68+
PORT_SetPinMux(PORTA, 5u, kPORT_MuxAlt4);
69+
/* Affects PORTA_PCR16 register */
70+
PORT_SetPinMux(PORTA, 16u, kPORT_MuxAlt4);
71+
/* Affects PORTA_PCR17 register */
72+
PORT_SetPinMux(PORTA, 17u, kPORT_MuxAlt4);
73+
/* Affects PORTA_PCR15 register */
74+
PORT_SetPinMux(PORTA, 15u, kPORT_MuxAlt4);
75+
76+
/* Set RMII clock src. */
77+
CLOCK_SetRmii0Clock(1U);
78+
79+
/* Select the Ethernet timestamp clock source */
80+
CLOCK_SetEnetTime0Clock(0x2);
81+
}
82+
83+
/*******************************************************************************
84+
* EOF
85+
******************************************************************************/
86+
87+

features/FEATURE_LWIP/lwip-interface/lwip-eth/arch/TARGET_Freescale/k64f_emac.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,13 @@ uint32_t *rx_ptr[ENET_RX_RING_LEN];
4141
********************************************************************************/
4242
#define ENET_BuffSizeAlign(n) ENET_ALIGN(n, ENET_BUFF_ALIGNMENT)
4343
#define ENET_ALIGN(x,align) ((unsigned int)((x) + ((align)-1)) & (unsigned int)(~(unsigned int)((align)- 1)))
44+
#if (defined(TARGET_K64F) && (defined(TARGET_FRDM)))
4445
extern void k64f_init_eth_hardware(void);
46+
#endif
47+
48+
#if (defined(TARGET_K66F) && (defined(TARGET_FRDM)))
49+
extern void k66f_init_eth_hardware(void);
50+
#endif
4551

4652
/* K64F EMAC driver data structure */
4753
struct k64f_enetdata {
@@ -204,8 +210,13 @@ static err_t low_level_init(struct netif *netif)
204210
(uint8_t *)&rx_ptr,
205211
NULL,
206212
};
207-
213+
#if (defined(TARGET_K64F) && (defined(TARGET_FRDM)))
208214
k64f_init_eth_hardware();
215+
#endif
216+
217+
#if (defined(TARGET_K66F) && (defined(TARGET_FRDM)))
218+
k66f_init_eth_hardware();
219+
#endif
209220

210221
sysClock = CLOCK_GetFreq(kCLOCK_CoreSysClk);
211222

features/FEATURE_LWIP/lwip-interface/lwip-eth/arch/TARGET_NUVOTON/TARGET_NUC472/nuc472_eth.c

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#define ETH_DISABLE_TX() do{EMAC->CTL &= ~EMAC_CTL_TXON;}while(0)
3434
#define ETH_DISABLE_RX() do{EMAC->CTL &= ~EMAC_CTL_RXON;}while(0)
3535

36+
3637
/*
3738
#ifdef __ICCARM__
3839
#pragma data_alignment=4
@@ -99,7 +100,7 @@ static int reset_phy(void)
99100
}
100101

101102
if(delay == 0) {
102-
printf("Reset phy failed\n");
103+
LWIP_DEBUGF(LWIP_DBG_LEVEL_SEVERE|LWIP_DBG_ON,("Reset phy failed\n"));
103104
return(-1);
104105
}
105106

@@ -120,23 +121,23 @@ static int reset_phy(void)
120121
}
121122

122123
if(delay == 0) {
123-
printf("AN failed. Set to 100 FULL\n");
124+
LWIP_DEBUGF(LWIP_DBG_LEVEL_SEVERE|LWIP_DBG_ON , ("AN failed. Set to 100 FULL\n"));
124125
EMAC->CTL |= (EMAC_CTL_OPMODE_Msk | EMAC_CTL_FUDUP_Msk);
125126
return(-1);
126127
} else {
127128
reg = mdio_read(CONFIG_PHY_ADDR, MII_LPA);
128129

129130
if(reg & ADVERTISE_100FULL) {
130-
printf("100 full\n");
131+
LWIP_DEBUGF(LWIP_DBG_LEVEL_ALL|LWIP_DBG_ON, ("100 full\n"));
131132
EMAC->CTL |= (EMAC_CTL_OPMODE_Msk | EMAC_CTL_FUDUP_Msk);
132133
} else if(reg & ADVERTISE_100HALF) {
133-
printf("100 half\n");
134+
LWIP_DEBUGF(LWIP_DBG_LEVEL_ALL|LWIP_DBG_ON, ("100 half\n"));
134135
EMAC->CTL = (EMAC->CTL & ~EMAC_CTL_FUDUP_Msk) | EMAC_CTL_OPMODE_Msk;
135136
} else if(reg & ADVERTISE_10FULL) {
136-
printf("10 full\n");
137+
LWIP_DEBUGF(LWIP_DBG_LEVEL_ALL|LWIP_DBG_ON, ("10 full\n"));
137138
EMAC->CTL = (EMAC->CTL & ~EMAC_CTL_OPMODE_Msk) | EMAC_CTL_FUDUP_Msk;
138139
} else {
139-
printf("10 half\n");
140+
LWIP_DEBUGF(LWIP_DBG_LEVEL_ALL|LWIP_DBG_ON, ("10 half\n"));
140141
EMAC->CTL &= ~(EMAC_CTL_OPMODE_Msk | EMAC_CTL_FUDUP_Msk);
141142
}
142143
}
@@ -267,7 +268,7 @@ void EMAC_RX_IRQHandler(void)
267268
EMAC->INTSTS = m_status;
268269
if (m_status & EMAC_INTSTS_RXBEIF_Msk) {
269270
// Shouldn't goes here, unless descriptor corrupted
270-
printf("RX descriptor corrupted \r\n");
271+
LWIP_DEBUGF(LWIP_DBG_LEVEL_SERIOUS|LWIP_DBG_ON, ("RX descriptor corrupted \r\n"));
271272
//return;
272273
}
273274
ack_emac_rx_isr();

features/FEATURE_LWIP/lwip-interface/lwip-eth/arch/TARGET_NUVOTON/TARGET_NUC472/nuc472_netif.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
* search-and-replace for the word "ethernetif" to replace it with
4343
* something that better describes your network interface.
4444
*/
45-
45+
4646
#include "lwip/opt.h"
4747

4848
#include "lwip/def.h"
@@ -494,16 +494,15 @@ static void __phy_task(void *data) {
494494
// Compare with previous state
495495

496496
if( !(ETH_link_ok()) && (netif->flags & NETIF_FLAG_LINK_UP) ) {
497-
//tcpip_callback_with_block((tcpip_callback_fn)netif_set_link_down, (void*) netif, 1);
497+
/* tcpip_callback_with_block((tcpip_callback_fn)netif_set_link_down, (void*) netif, 1); */
498498
netif_set_link_down(netif);
499-
printf("Link Down\r\n");
499+
LWIP_DEBUGF(LWIP_DBG_LEVEL_WARNING|LWIP_DBG_ON, ("Link Down\r\n"));
500500
}else if ( ETH_link_ok() && !(netif->flags & NETIF_FLAG_LINK_UP) ) {
501-
//tcpip_callback_with_block((tcpip_callback_fn)netif_set_link_up, (void*) netif, 1);
501+
/* tcpip_callback_with_block((tcpip_callback_fn)netif_set_link_up, (void*) netif, 1); */
502502
netif_set_link_up(netif);
503-
printf("Link Up\r\n");
503+
LWIP_DEBUGF(LWIP_DBG_LEVEL_WARNING|LWIP_DBG_ON, ("Link Up\r\n"));
504504
}
505505

506-
// printf("-");
507506
osDelay(200);
508507
}
509508
}

features/FEATURE_LWIP/lwip-interface/lwip/CHANGELOG

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,9 @@ HISTORY
328328

329329
++ Bugfixes:
330330

331+
2016-11-25: Simon Goldschmidt
332+
* dhcp.c: fixed bug #49676 (Possible endless loop when parsing dhcp options)
333+
331334
2016-07-20: Simon Goldschmidt
332335
* memp.h/.c: fixed bug #48442 (memp stats don't work for MEMP_MEM_MALLOC)
333336

features/FEATURE_LWIP/lwip-interface/lwip/src/core/ipv4/lwip_dhcp.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1535,6 +1535,8 @@ dhcp_parse_reply(struct dhcp *dhcp, struct pbuf *p)
15351535
#endif /* LWIP_DHCP_GET_NTP_SRV*/
15361536
case(DHCP_OPTION_OVERLOAD):
15371537
LWIP_ERROR("len == 1", len == 1, return ERR_VAL;);
1538+
/* decode overload only in options, not in file/sname: invalid packet */
1539+
LWIP_ERROR("overload in file/sname", options_idx == DHCP_OPTIONS_OFS, return ERR_VAL;);
15381540
decode_idx = DHCP_OPTION_IDX_OVERLOAD;
15391541
break;
15401542
case(DHCP_OPTION_MESSAGE_TYPE):

0 commit comments

Comments
 (0)