From 39673cf4f6a09c37f0d3496c5ead1bc3c0cfec4e Mon Sep 17 00:00:00 2001 From: liruncong Date: Sun, 10 Mar 2019 10:53:22 +0800 Subject: [PATCH 1/5] =?UTF-8?q?[src]=E6=B6=88=E9=99=A4=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=BC=A0=E9=80=92=E8=AD=A6=E5=91=8A(warning:=20passing=20argum?= =?UTF-8?q?ent=201=20of=20'zoneindex'=20from=20incompatible=20pointer=20ty?= =?UTF-8?q?pe=20[-Wincompatible-pointer-types])?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/slab.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/slab.c b/src/slab.c index bf26c84cca..f4806ddb60 100644 --- a/src/slab.c +++ b/src/slab.c @@ -398,10 +398,10 @@ void rt_system_heap_init(void *begin_addr, void *end_addr) * Calculate the zone index for the allocation request size and set the * allocation request size to that particular zone's chunk size. */ -rt_inline int zoneindex(rt_uint32_t *bytes) +rt_inline int zoneindex(rt_size_t *bytes) { /* unsigned for shift opt */ - rt_uint32_t n = (rt_uint32_t) * bytes; + rt_uint32_t n = (rt_uint32_t)(*bytes); if (n < 128) { From e5522d6292e704f0d69cd632a5598b1401732aa9 Mon Sep 17 00:00:00 2001 From: liruncong Date: Mon, 18 Feb 2019 18:28:58 +0800 Subject: [PATCH 2/5] =?UTF-8?q?[components/net]=E5=A2=9E=E5=8A=A0const?= =?UTF-8?q?=E9=99=90=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lwip-1.4.1/src/include/netif/ethernetif.h | 40 +++++++++++-------- .../net/lwip-1.4.1/src/netif/ethernetif.c | 4 +- .../lwip-2.0.2/src/include/netif/ethernetif.h | 40 +++++++++++-------- .../net/lwip-2.0.2/src/netif/ethernetif.c | 4 +- .../lwip-2.1.0/src/include/netif/ethernetif.h | 40 +++++++++++-------- .../net/lwip-2.1.0/src/netif/ethernetif.c | 4 +- 6 files changed, 78 insertions(+), 54 deletions(-) diff --git a/components/net/lwip-1.4.1/src/include/netif/ethernetif.h b/components/net/lwip-1.4.1/src/include/netif/ethernetif.h index bdad32ec20..1c969e6e25 100644 --- a/components/net/lwip-1.4.1/src/include/netif/ethernetif.h +++ b/components/net/lwip-1.4.1/src/include/netif/ethernetif.h @@ -17,27 +17,35 @@ struct eth_device { - /* inherit from rt_device */ - struct rt_device parent; + /* inherit from rt_device */ + struct rt_device parent; - /* network interface for lwip */ - struct netif *netif; - struct rt_semaphore tx_ack; + /* network interface for lwip */ + struct netif *netif; + struct rt_semaphore tx_ack; - rt_uint16_t flags; - rt_uint8_t link_changed; - rt_uint8_t link_status; + rt_uint16_t flags; + rt_uint8_t link_changed; + rt_uint8_t link_status; - /* eth device interface */ - struct pbuf* (*eth_rx)(rt_device_t dev); - rt_err_t (*eth_tx)(rt_device_t dev, struct pbuf* p); + /* eth device interface */ + struct pbuf* (*eth_rx)(rt_device_t dev); + rt_err_t (*eth_tx)(rt_device_t dev, struct pbuf* p); }; -rt_err_t eth_device_ready(struct eth_device* dev); -rt_err_t eth_device_init(struct eth_device * dev, char *name); -rt_err_t eth_device_init_with_flag(struct eth_device *dev, char *name, rt_uint16_t flag); -rt_err_t eth_device_linkchange(struct eth_device* dev, rt_bool_t up); +#ifdef __cplusplus +extern "C" { +#endif -int eth_system_device_init(void); + rt_err_t eth_device_ready(struct eth_device* dev); + rt_err_t eth_device_init(struct eth_device * dev, const char *name); + rt_err_t eth_device_init_with_flag(struct eth_device *dev, const char *name, rt_uint16_t flag); + rt_err_t eth_device_linkchange(struct eth_device* dev, rt_bool_t up); + + int eth_system_device_init(void); + +#ifdef __cplusplus +} +#endif #endif /* __NETIF_ETHERNETIF_H__ */ diff --git a/components/net/lwip-1.4.1/src/netif/ethernetif.c b/components/net/lwip-1.4.1/src/netif/ethernetif.c index 449b29ffbc..31aeaf6dff 100644 --- a/components/net/lwip-1.4.1/src/netif/ethernetif.c +++ b/components/net/lwip-1.4.1/src/netif/ethernetif.c @@ -177,7 +177,7 @@ static err_t eth_netif_device_init(struct netif *netif) } /* Keep old drivers compatible in RT-Thread */ -rt_err_t eth_device_init_with_flag(struct eth_device *dev, char *name, rt_uint16_t flags) +rt_err_t eth_device_init_with_flag(struct eth_device *dev, const char *name, rt_uint16_t flags) { struct netif* netif; @@ -242,7 +242,7 @@ rt_err_t eth_device_init_with_flag(struct eth_device *dev, char *name, rt_uint16 return RT_EOK; } -rt_err_t eth_device_init(struct eth_device * dev, char *name) +rt_err_t eth_device_init(struct eth_device * dev, const char *name) { rt_uint16_t flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP; diff --git a/components/net/lwip-2.0.2/src/include/netif/ethernetif.h b/components/net/lwip-2.0.2/src/include/netif/ethernetif.h index bdad32ec20..1c969e6e25 100644 --- a/components/net/lwip-2.0.2/src/include/netif/ethernetif.h +++ b/components/net/lwip-2.0.2/src/include/netif/ethernetif.h @@ -17,27 +17,35 @@ struct eth_device { - /* inherit from rt_device */ - struct rt_device parent; + /* inherit from rt_device */ + struct rt_device parent; - /* network interface for lwip */ - struct netif *netif; - struct rt_semaphore tx_ack; + /* network interface for lwip */ + struct netif *netif; + struct rt_semaphore tx_ack; - rt_uint16_t flags; - rt_uint8_t link_changed; - rt_uint8_t link_status; + rt_uint16_t flags; + rt_uint8_t link_changed; + rt_uint8_t link_status; - /* eth device interface */ - struct pbuf* (*eth_rx)(rt_device_t dev); - rt_err_t (*eth_tx)(rt_device_t dev, struct pbuf* p); + /* eth device interface */ + struct pbuf* (*eth_rx)(rt_device_t dev); + rt_err_t (*eth_tx)(rt_device_t dev, struct pbuf* p); }; -rt_err_t eth_device_ready(struct eth_device* dev); -rt_err_t eth_device_init(struct eth_device * dev, char *name); -rt_err_t eth_device_init_with_flag(struct eth_device *dev, char *name, rt_uint16_t flag); -rt_err_t eth_device_linkchange(struct eth_device* dev, rt_bool_t up); +#ifdef __cplusplus +extern "C" { +#endif -int eth_system_device_init(void); + rt_err_t eth_device_ready(struct eth_device* dev); + rt_err_t eth_device_init(struct eth_device * dev, const char *name); + rt_err_t eth_device_init_with_flag(struct eth_device *dev, const char *name, rt_uint16_t flag); + rt_err_t eth_device_linkchange(struct eth_device* dev, rt_bool_t up); + + int eth_system_device_init(void); + +#ifdef __cplusplus +} +#endif #endif /* __NETIF_ETHERNETIF_H__ */ diff --git a/components/net/lwip-2.0.2/src/netif/ethernetif.c b/components/net/lwip-2.0.2/src/netif/ethernetif.c index f9a798f594..8d53f0f4ed 100644 --- a/components/net/lwip-2.0.2/src/netif/ethernetif.c +++ b/components/net/lwip-2.0.2/src/netif/ethernetif.c @@ -205,7 +205,7 @@ static err_t eth_netif_device_init(struct netif *netif) } /* Keep old drivers compatible in RT-Thread */ -rt_err_t eth_device_init_with_flag(struct eth_device *dev, char *name, rt_uint16_t flags) +rt_err_t eth_device_init_with_flag(struct eth_device *dev, const char *name, rt_uint16_t flags) { struct netif* netif; @@ -269,7 +269,7 @@ rt_err_t eth_device_init_with_flag(struct eth_device *dev, char *name, rt_uint16 return RT_EOK; } -rt_err_t eth_device_init(struct eth_device * dev, char *name) +rt_err_t eth_device_init(struct eth_device * dev, const char *name) { rt_uint16_t flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP; diff --git a/components/net/lwip-2.1.0/src/include/netif/ethernetif.h b/components/net/lwip-2.1.0/src/include/netif/ethernetif.h index bdad32ec20..1c969e6e25 100644 --- a/components/net/lwip-2.1.0/src/include/netif/ethernetif.h +++ b/components/net/lwip-2.1.0/src/include/netif/ethernetif.h @@ -17,27 +17,35 @@ struct eth_device { - /* inherit from rt_device */ - struct rt_device parent; + /* inherit from rt_device */ + struct rt_device parent; - /* network interface for lwip */ - struct netif *netif; - struct rt_semaphore tx_ack; + /* network interface for lwip */ + struct netif *netif; + struct rt_semaphore tx_ack; - rt_uint16_t flags; - rt_uint8_t link_changed; - rt_uint8_t link_status; + rt_uint16_t flags; + rt_uint8_t link_changed; + rt_uint8_t link_status; - /* eth device interface */ - struct pbuf* (*eth_rx)(rt_device_t dev); - rt_err_t (*eth_tx)(rt_device_t dev, struct pbuf* p); + /* eth device interface */ + struct pbuf* (*eth_rx)(rt_device_t dev); + rt_err_t (*eth_tx)(rt_device_t dev, struct pbuf* p); }; -rt_err_t eth_device_ready(struct eth_device* dev); -rt_err_t eth_device_init(struct eth_device * dev, char *name); -rt_err_t eth_device_init_with_flag(struct eth_device *dev, char *name, rt_uint16_t flag); -rt_err_t eth_device_linkchange(struct eth_device* dev, rt_bool_t up); +#ifdef __cplusplus +extern "C" { +#endif -int eth_system_device_init(void); + rt_err_t eth_device_ready(struct eth_device* dev); + rt_err_t eth_device_init(struct eth_device * dev, const char *name); + rt_err_t eth_device_init_with_flag(struct eth_device *dev, const char *name, rt_uint16_t flag); + rt_err_t eth_device_linkchange(struct eth_device* dev, rt_bool_t up); + + int eth_system_device_init(void); + +#ifdef __cplusplus +} +#endif #endif /* __NETIF_ETHERNETIF_H__ */ diff --git a/components/net/lwip-2.1.0/src/netif/ethernetif.c b/components/net/lwip-2.1.0/src/netif/ethernetif.c index b8e75b5f38..f0defe5b25 100755 --- a/components/net/lwip-2.1.0/src/netif/ethernetif.c +++ b/components/net/lwip-2.1.0/src/netif/ethernetif.c @@ -210,7 +210,7 @@ static err_t eth_netif_device_init(struct netif *netif) } /* Keep old drivers compatible in RT-Thread */ -rt_err_t eth_device_init_with_flag(struct eth_device *dev, char *name, rt_uint16_t flags) +rt_err_t eth_device_init_with_flag(struct eth_device *dev, const char *name, rt_uint16_t flags) { struct netif* netif; @@ -273,7 +273,7 @@ rt_err_t eth_device_init_with_flag(struct eth_device *dev, char *name, rt_uint16 return RT_EOK; } -rt_err_t eth_device_init(struct eth_device * dev, char *name) +rt_err_t eth_device_init(struct eth_device * dev, const char *name) { rt_uint16_t flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP; From d0239b43a0ac1ce04d7a81b305dd6df9cbf81212 Mon Sep 17 00:00:00 2001 From: liruncong Date: Sat, 12 Jan 2019 12:05:55 +0800 Subject: [PATCH 3/5] =?UTF-8?q?[components/cplusplus]=E4=BF=AE=E6=AD=A3cpl?= =?UTF-8?q?usplus=5Fsystem=5Finit=E5=9C=A8arm=20V6=E4=B8=8B=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/cplusplus/crt_init.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/components/cplusplus/crt_init.c b/components/cplusplus/crt_init.c index e67939feeb..3294b51a40 100755 --- a/components/cplusplus/crt_init.c +++ b/components/cplusplus/crt_init.c @@ -13,10 +13,10 @@ #include -#ifdef __CC_ARM +#if defined(__CC_ARM) || defined(__CLANG_ARM) extern void $Super$$__cpp_initialize__aeabi_(void); /* we need to change the cpp_initialize order */ -void $Sub$$__cpp_initialize__aeabi_(void) +RT_WEAK void $Sub$$__cpp_initialize__aeabi_(void) { /* empty */ } @@ -34,19 +34,9 @@ RT_WEAK void *__dso_handle = 0; #endif -RT_WEAK -int cplusplus_system_init(void) +RT_WEAK int cplusplus_system_init(void) { -#if defined(__GNUC__) && !defined(__CC_ARM) - typedef void (*pfunc) (); - extern pfunc __ctors_start__[]; - extern pfunc __ctors_end__[]; - pfunc *p; - - for (p = __ctors_start__; p < __ctors_end__; p++) - (*p)(); - -#elif defined(__CC_ARM) +#if defined(__CC_ARM) || defined(__CLANG_ARM) /* If there is no SHT$$INIT_ARRAY, calling * $Super$$__cpp_initialize__aeabi_() will cause fault. At least until Keil5.12 * the problem still exists. So we have to initialize the C++ runtime by ourself. @@ -63,9 +53,16 @@ int cplusplus_system_init(void) PROC *proc = (PROC*)((const char*)base + *base); (*proc)(); } +#elif defined(__GNUC__) + typedef void(*pfunc) (); + extern pfunc __ctors_start__[]; + extern pfunc __ctors_end__[]; + pfunc *p; + + for (p = __ctors_start__; p < __ctors_end__; p++) + (*p)(); #endif return 0; } INIT_COMPONENT_EXPORT(cplusplus_system_init); - From ce9629cb577a0705334f0a5cbcddbf8c296e347b Mon Sep 17 00:00:00 2001 From: liruncong Date: Sun, 17 Feb 2019 18:46:30 +0800 Subject: [PATCH 4/5] =?UTF-8?q?[components/libc/compilers/armlibc]=5Fsys?= =?UTF-8?q?=5Fexit=E5=A2=9E=E5=8A=A0RT=5FWEAK=E9=99=90=E5=AE=9A,=E7=94=B1?= =?UTF-8?q?=E5=85=B7=E4=BD=93bsp=E9=87=8D=E6=96=B0=E5=AE=9E=E7=8E=B0,?= =?UTF-8?q?=E9=80=9A=E5=B8=B8=E9=9C=80=E8=A6=81=E5=85=B3=E9=97=AD=E4=B8=AD?= =?UTF-8?q?=E6=96=AD,=E5=85=B3=E9=97=ADIO=E8=BE=93=E5=87=BA=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/libc/compilers/armlibc/stubs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/libc/compilers/armlibc/stubs.c b/components/libc/compilers/armlibc/stubs.c index 555108f712..b6ffb37b0f 100644 --- a/components/libc/compilers/armlibc/stubs.c +++ b/components/libc/compilers/armlibc/stubs.c @@ -251,7 +251,7 @@ void _ttywrch(int ch) #endif } -void _sys_exit(int return_code) +RT_WEAK void _sys_exit(int return_code) { /* TODO: perhaps exit the thread which is invoking this function */ while (1); From 4f108dbadf597ca311a71c6e64940c459524d968 Mon Sep 17 00:00:00 2001 From: liruncong Date: Mon, 18 Feb 2019 18:29:22 +0800 Subject: [PATCH 5/5] =?UTF-8?q?[components/libc]armclang=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/libc/compilers/armlibc/SConscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/libc/compilers/armlibc/SConscript b/components/libc/compilers/armlibc/SConscript index 081efa7358..52f7a6d93a 100644 --- a/components/libc/compilers/armlibc/SConscript +++ b/components/libc/compilers/armlibc/SConscript @@ -14,7 +14,7 @@ if GetDepend('RT_USING_DFS') == False: if GetDepend('RT_USING_MODULE') == False: SrcRemove(src, ['libc_syms.c']) -if rtconfig.PLATFORM == 'armcc': +if rtconfig.PLATFORM == 'armcc' or rtconfig.PLATFORM == 'armclang': group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)