From a559179e6fe68a21687e9203ec583bd38b7573e7 Mon Sep 17 00:00:00 2001 From: tyustli <1225613647@qq.com> Date: Mon, 24 Jun 2019 15:59:26 +0800 Subject: fix cpp thread class error --- components/cplusplus/Thread.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'components/cplusplus/Thread.cpp') diff --git a/components/cplusplus/Thread.cpp b/components/cplusplus/Thread.cpp index 0f6315d178..103649b639 100644 --- a/components/cplusplus/Thread.cpp +++ b/components/cplusplus/Thread.cpp @@ -14,7 +14,7 @@ Thread::Thread(rt_uint32_t stack_size, rt_uint8_t priority, rt_uint32_t tick, const char *name) -: _entry(RT_NULL), _param(RT_NULL), started(false) + : _entry(RT_NULL), _param(RT_NULL), started(false) { rt_event_init(&_event, name, 0); @@ -32,12 +32,12 @@ Thread::Thread(void (*entry)(void *p), rt_uint8_t priority, rt_uint32_t tick, const char *name) -: _entry(RT_NULL), _param(p), started(false) + : _entry(entry), _param(p), started(false) { rt_event_init(&_event, name, 0); _thread = rt_thread_create(name, - (thread_func_t)func, + (thread_func_t)entry, this, stack_size, priority, @@ -46,6 +46,7 @@ Thread::Thread(void (*entry)(void *p), Thread::~Thread() { + rt_event_detach(&_event); rt_thread_delete(_thread); } -- cgit v1.3.1 From 9efd293bb99aa22ffe78b22f31ed1844e0ff3114 Mon Sep 17 00:00:00 2001 From: tyustli <1225613647@qq.com> Date: Mon, 24 Jun 2019 16:05:32 +0800 Subject: fix format display --- components/cplusplus/Thread.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/cplusplus/Thread.cpp') diff --git a/components/cplusplus/Thread.cpp b/components/cplusplus/Thread.cpp index 103649b639..26043a3581 100644 --- a/components/cplusplus/Thread.cpp +++ b/components/cplusplus/Thread.cpp @@ -46,7 +46,7 @@ Thread::Thread(void (*entry)(void *p), Thread::~Thread() { - rt_event_detach(&_event); + rt_event_detach(&_event); rt_thread_delete(_thread); } -- cgit v1.3.1 From 759848122e47775cfd8a0e9e3e7a2fa7189754c4 Mon Sep 17 00:00:00 2001 From: mulan <43946994+tyustli@users.noreply.github.com> Date: Tue, 25 Jun 2019 16:14:58 +0800 Subject: Update Thread.cpp --- components/cplusplus/Thread.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/cplusplus/Thread.cpp') diff --git a/components/cplusplus/Thread.cpp b/components/cplusplus/Thread.cpp index 26043a3581..9b2a2ad5e0 100644 --- a/components/cplusplus/Thread.cpp +++ b/components/cplusplus/Thread.cpp @@ -37,7 +37,7 @@ Thread::Thread(void (*entry)(void *p), rt_event_init(&_event, name, 0); _thread = rt_thread_create(name, - (thread_func_t)entry, + (thread_func_t)func, this, stack_size, priority, -- cgit v1.3.1 From 85a9f5add9fd54b3917cfca2a8555c6525df0538 Mon Sep 17 00:00:00 2001 From: tyustli <1225613647@qq.com> Date: Sat, 27 Jul 2019 17:33:36 +0800 Subject: fix bug in Thread.cpp/Thread.h/components.c files --- components/cplusplus/Thread.cpp | 16 ++++++++++------ components/cplusplus/Thread.h | 7 +++---- src/components.c | 3 +-- 3 files changed, 14 insertions(+), 12 deletions(-) (limited to 'components/cplusplus/Thread.cpp') diff --git a/components/cplusplus/Thread.cpp b/components/cplusplus/Thread.cpp index 9b2a2ad5e0..b21fbdce1f 100644 --- a/components/cplusplus/Thread.cpp +++ b/components/cplusplus/Thread.cpp @@ -80,23 +80,23 @@ void Thread::func(Thread *pThis) } else { - pThis->run(); + pThis->run(pThis->_param); } rt_event_send(&pThis->_event, 1); } -void Thread::run() +void Thread::run(void *parameter) { /* please overload this method */ } -void Thread::wait(int32_t millisec) +rt_err_t Thread::wait(int32_t millisec) { - join(millisec); + return join(millisec); } -void Thread::join(int32_t millisec) +rt_err_t Thread::join(int32_t millisec) { if (started) { @@ -107,6 +107,10 @@ void Thread::join(int32_t millisec) else tick = rt_tick_from_millisecond(millisec); - rt_event_recv(&_event, 1, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, tick, RT_NULL); + return rt_event_recv(&_event, 1, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, tick, RT_NULL); + } + else + { + return -RT_ENOSYS; } } diff --git a/components/cplusplus/Thread.h b/components/cplusplus/Thread.h index 71ee50e1f9..b578659489 100644 --- a/components/cplusplus/Thread.h +++ b/components/cplusplus/Thread.h @@ -45,16 +45,15 @@ public: static void sleep(int32_t millisec); - void wait(int32_t millisec); - void join(int32_t millisec = -1); + rt_err_t wait(int32_t millisec); + rt_err_t join(int32_t millisec = -1); protected: - virtual void run(); + virtual void run(void *parameter); private: static void func(Thread *pThis); -private: rt_thread_t _thread; thread_func_t _entry; diff --git a/src/components.c b/src/components.c index 3b9f131eaf..b9fc4c178c 100644 --- a/src/components.c +++ b/src/components.c @@ -153,7 +153,6 @@ int __low_level_init(void) return 0; } #elif defined(__GNUC__) -extern int main(void); /* Add -eentry to arm-none-eabi-gcc argument */ int entry(void) { @@ -204,7 +203,7 @@ void rt_application_init(void) result = rt_thread_init(tid, "main", main_thread_entry, RT_NULL, main_stack, sizeof(main_stack), RT_MAIN_THREAD_PRIORITY, 20); RT_ASSERT(result == RT_EOK); - + /* if not define RT_USING_HEAP, using to eliminate the warning */ (void)result; #endif -- cgit v1.3.1 From 786eb5ae9c77970f25f662d57a83276d09c9a72d Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Thu, 30 Apr 2020 21:08:04 +0800 Subject: [C++] rename the Thread/Mutex to cxx_Thread/Mutex to avoid same name issue --- bsp/lpc54608-LPCXpresso/project.ewp | 8 +- bsp/lpc54608-LPCXpresso/project.ewt | 8 +- bsp/lpc54608-LPCXpresso/project.uvprojx | 741 ++++++++++++++++---------------- components/cplusplus/Mutex.cpp | 43 -- components/cplusplus/Semaphore.cpp | 38 -- components/cplusplus/Thread.cpp | 116 ----- components/cplusplus/crt.cpp | 37 -- components/cplusplus/crt_init.c | 0 components/cplusplus/cxx_Mutex.cpp | 43 ++ components/cplusplus/cxx_Semaphore.cpp | 38 ++ components/cplusplus/cxx_Thread.cpp | 116 +++++ components/cplusplus/cxx_crt.cpp | 37 ++ 12 files changed, 609 insertions(+), 616 deletions(-) delete mode 100644 components/cplusplus/Mutex.cpp delete mode 100644 components/cplusplus/Semaphore.cpp delete mode 100644 components/cplusplus/Thread.cpp delete mode 100644 components/cplusplus/crt.cpp mode change 100755 => 100644 components/cplusplus/crt_init.c create mode 100644 components/cplusplus/cxx_Mutex.cpp create mode 100644 components/cplusplus/cxx_Semaphore.cpp create mode 100644 components/cplusplus/cxx_Thread.cpp create mode 100644 components/cplusplus/cxx_crt.cpp (limited to 'components/cplusplus/Thread.cpp') diff --git a/bsp/lpc54608-LPCXpresso/project.ewp b/bsp/lpc54608-LPCXpresso/project.ewp index 22154af07d..d16ead5d2c 100644 --- a/bsp/lpc54608-LPCXpresso/project.ewp +++ b/bsp/lpc54608-LPCXpresso/project.ewp @@ -2148,16 +2148,16 @@ CPlusPlus - $PROJ_DIR$\../../components/cplusplus/Mutex.cpp + $PROJ_DIR$\../../components/cplusplus/cxx_Mutex.cpp - $PROJ_DIR$\../../components/cplusplus/Semaphore.cpp + $PROJ_DIR$\../../components/cplusplus/cxx_Semaphore.cpp - $PROJ_DIR$\../../components/cplusplus/Thread.cpp + $PROJ_DIR$\../../components/cplusplus/cxx_Thread.cpp - $PROJ_DIR$\../../components/cplusplus/crt.cpp + $PROJ_DIR$\../../components/cplusplus/cxx_crt.cpp $PROJ_DIR$\../../components/cplusplus/crt_init.c diff --git a/bsp/lpc54608-LPCXpresso/project.ewt b/bsp/lpc54608-LPCXpresso/project.ewt index de78292e60..a1d63d5e4b 100644 --- a/bsp/lpc54608-LPCXpresso/project.ewt +++ b/bsp/lpc54608-LPCXpresso/project.ewt @@ -2355,19 +2355,19 @@ CPlusPlus - $PROJ_DIR$\..\..\components\cplusplus\crt.cpp + $PROJ_DIR$\..\..\components\cplusplus\cxx_crt.cpp $PROJ_DIR$\..\..\components\cplusplus\crt_init.c - $PROJ_DIR$\..\..\components\cplusplus\Mutex.cpp + $PROJ_DIR$\..\..\components\cplusplus\cxx_Mutex.cpp - $PROJ_DIR$\..\..\components\cplusplus\Semaphore.cpp + $PROJ_DIR$\..\..\components\cplusplus\cxx_Semaphore.cpp - $PROJ_DIR$\..\..\components\cplusplus\Thread.cpp + $PROJ_DIR$\..\..\components\cplusplus\cxx_Thread.cpp diff --git a/bsp/lpc54608-LPCXpresso/project.uvprojx b/bsp/lpc54608-LPCXpresso/project.uvprojx index ad2e225b2e..e7978224d2 100644 --- a/bsp/lpc54608-LPCXpresso/project.uvprojx +++ b/bsp/lpc54608-LPCXpresso/project.uvprojx @@ -330,9 +330,9 @@ 0 --library_interface=armcc --library_type=standardlib --diag_suppress=66,1296,186 - CPU_LPC54608J512ET180=1, CPU_LPC54608, CORE_M4, SDK_DEBUGCONSOLE=0, RT_USING_ARM_LIBC + SDK_DEBUGCONSOLE=0, CPU_LPC54608, CORE_M4, CPU_LPC54608J512ET180=1, RT_USING_ARM_LIBC - .;..\..\include;applications;.;drivers;SDK_2.2_LPCXpresso54608\CMSIS\Include;SDK_2.2_LPCXpresso54608\devices\LPC54608;SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers;SDK_2.2_LPCXpresso54608\devices\LPC54608\utilities;SDK_2.2_LPCXpresso54608\sdmmc_2.1.2\inc;SDK_2.2_LPCXpresso54608\sdmmc_2.1.2\src;..\..\libcpu\arm\common;..\..\libcpu\arm\cortex-m4;..\..\components\cplusplus;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\spi;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\libc\compilers\common;..\..\components\libc\pthreads;..\..\components\libc\time;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif;..\..\components\net\netdev\include;..\..\components\net\sal_socket\include;..\..\components\net\sal_socket\include\socket;..\..\components\net\sal_socket\impl;..\..\components\net\sal_socket\include\dfs_net;..\..\components\net\sal_socket\include\dfs_net\sys_select;..\..\components\net\sal_socket\include\socket\sys_socket + .;../../include;applications;.;drivers;SDK_2.2_LPCXpresso54608/sdmmc_2.1.2/inc;SDK_2.2_LPCXpresso54608/sdmmc_2.1.2/src;SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers;SDK_2.2_LPCXpresso54608/devices/LPC54608/utilities;SDK_2.2_LPCXpresso54608/CMSIS/Include;SDK_2.2_LPCXpresso54608/devices/LPC54608;../../libcpu/arm/common;../../libcpu/arm/cortex-m4;../../components/finsh;../../components/dfs/include;../../components/dfs/filesystems/elmfat;../../components/dfs/filesystems/devfs;../../components/net/lwip-2.0.2/src;../../components/net/lwip-2.0.2/src/include;../../components/net/lwip-2.0.2/src/include/ipv4;../../components/net/lwip-2.0.2/src/arch/include;../../components/net/lwip-2.0.2/src/include/netif;../../components/net/netdev/include;../../components/net/sal_socket/include;../../components/net/sal_socket/include/socket;../../components/net/sal_socket/impl;../../components/net/sal_socket/include/dfs_net;../../components/net/sal_socket/include/dfs_net/sys_select;../../components/net/sal_socket/include/socket/sys_socket;../../components/drivers/include;../../components/drivers/include;../../components/drivers/spi;../../components/drivers/include;../../components/drivers/include;../../components/drivers/include;../../components/drivers/include;../../components/drivers/include;../../components/drivers/include;../../components/cplusplus;../../components/libc/compilers/armlibc;../../components/libc/compilers/common;../../components/libc/pthreads;../../components/libc/time @@ -379,112 +379,105 @@ clock.c 1 - ..\..\src\clock.c + ../../src/clock.c components.c 1 - ..\..\src\components.c - - - - - cpu.c - 1 - ..\..\src\cpu.c + ../../src/components.c device.c 1 - ..\..\src\device.c + ../../src/device.c idle.c 1 - ..\..\src\idle.c + ../../src/idle.c ipc.c 1 - ..\..\src\ipc.c + ../../src/ipc.c irq.c 1 - ..\..\src\irq.c + ../../src/irq.c kservice.c 1 - ..\..\src\kservice.c + ../../src/kservice.c mem.c 1 - ..\..\src\mem.c + ../../src/mem.c memheap.c 1 - ..\..\src\memheap.c + ../../src/memheap.c mempool.c 1 - ..\..\src\mempool.c + ../../src/mempool.c object.c 1 - ..\..\src\object.c + ../../src/object.c scheduler.c 1 - ..\..\src\scheduler.c + ../../src/scheduler.c signal.c 1 - ..\..\src\signal.c + ../../src/signal.c thread.c 1 - ..\..\src\thread.c + ../../src/thread.c timer.c 1 - ..\..\src\timer.c + ../../src/timer.c @@ -494,21 +487,21 @@ application.c 1 - applications\application.c + applications/application.c mnt.c 1 - applications\mnt.c + applications/mnt.c startup.c 1 - applications\startup.c + applications/startup.c @@ -518,419 +511,419 @@ board.c 1 - drivers\board.c + drivers/board.c clock_config.c 1 - drivers\clock_config.c + drivers/clock_config.c drt_mpu.c 1 - drivers\drt_mpu.c + drivers/drt_mpu.c drv_emac.c 1 - drivers\drv_emac.c + drivers/drv_emac.c drv_ft5406.c 1 - drivers\drv_ft5406.c + drivers/drv_ft5406.c drv_i2c.c 1 - drivers\drv_i2c.c + drivers/drv_i2c.c drv_lcd.c 1 - drivers\drv_lcd.c + drivers/drv_lcd.c drv_sd.c 1 - drivers\drv_sd.c + drivers/drv_sd.c drv_sdram.c 1 - drivers\drv_sdram.c + drivers/drv_sdram.c drv_sram.c 1 - drivers\drv_sram.c + drivers/drv_sram.c drv_uart.c 1 - drivers\drv_uart.c + drivers/drv_uart.c fsl_phy.c 1 - drivers\fsl_phy.c + drivers/fsl_phy.c - CMSIS + Libraries - startup_LPC54608.s - 2 - SDK_2.2_LPCXpresso54608\devices\LPC54608\arm\startup_LPC54608.s + fsl_sd.c + 1 + SDK_2.2_LPCXpresso54608/sdmmc_2.1.2/src/fsl_sd.c - system_LPC54608.c + fsl_sdmmc.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\system_LPC54608.c + SDK_2.2_LPCXpresso54608/sdmmc_2.1.2/src/fsl_sdmmc.c - keil_lib_power.lib - 4 - SDK_2.2_LPCXpresso54608\devices\LPC54608\arm\keil_lib_power.lib + fsl_host.c + 1 + SDK_2.2_LPCXpresso54608/sdmmc_2.1.2/src/fsl_host.c + + + + + fsl_sd_event.c + 1 + SDK_2.2_LPCXpresso54608/sdmmc_2.1.2/src/fsl_sd_event.c - - - Libraries fsl_adc.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_adc.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_adc.c fsl_clock.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_clock.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_clock.c fsl_common.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_common.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_common.c fsl_crc.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_crc.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_crc.c fsl_ctimer.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_ctimer.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_ctimer.c fsl_dma.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_dma.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_dma.c fsl_dmic.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_dmic.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_dmic.c fsl_dmic_dma.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_dmic_dma.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_dmic_dma.c fsl_eeprom.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_eeprom.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_eeprom.c fsl_emc.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_emc.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_emc.c fsl_enet.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_enet.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_enet.c fsl_flashiap.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_flashiap.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_flashiap.c fsl_flexcomm.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_flexcomm.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_flexcomm.c fsl_fmc.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_fmc.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_fmc.c fsl_fmeas.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_fmeas.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_fmeas.c fsl_gint.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_gint.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_gint.c fsl_gpio.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_gpio.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_gpio.c fsl_i2c.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_i2c.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_i2c.c fsl_i2c_dma.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_i2c_dma.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_i2c_dma.c fsl_i2s.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_i2s.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_i2s.c fsl_i2s_dma.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_i2s_dma.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_i2s_dma.c fsl_inputmux.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_inputmux.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_inputmux.c fsl_lcdc.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_lcdc.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_lcdc.c fsl_mcan.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_mcan.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_mcan.c fsl_mrt.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_mrt.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_mrt.c fsl_pint.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_pint.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_pint.c fsl_power.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_power.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_power.c fsl_reset.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_reset.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_reset.c fsl_rit.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_rit.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_rit.c fsl_rtc.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_rtc.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_rtc.c fsl_sctimer.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_sctimer.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_sctimer.c fsl_sdif.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_sdif.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_sdif.c fsl_spi.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_spi.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_spi.c fsl_spi_dma.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_spi_dma.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_spi_dma.c fsl_spifi.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_spifi.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_spifi.c fsl_spifi_dma.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_spifi_dma.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_spifi_dma.c fsl_usart.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_usart.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_usart.c fsl_usart_dma.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_usart_dma.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_usart_dma.c fsl_utick.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_utick.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_utick.c fsl_wwdt.c 1 - SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_wwdt.c - - - - - fsl_sd.c - 1 - SDK_2.2_LPCXpresso54608\sdmmc_2.1.2\src\fsl_sd.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_wwdt.c + + + CMSIS - fsl_sdmmc.c - 1 - SDK_2.2_LPCXpresso54608\sdmmc_2.1.2\src\fsl_sdmmc.c + startup_LPC54608.s + 2 + SDK_2.2_LPCXpresso54608/devices/LPC54608/arm/startup_LPC54608.s - fsl_host.c + system_LPC54608.c 1 - SDK_2.2_LPCXpresso54608\sdmmc_2.1.2\src\fsl_host.c + SDK_2.2_LPCXpresso54608/devices/LPC54608/system_LPC54608.c - fsl_sd_event.c - 1 - SDK_2.2_LPCXpresso54608\sdmmc_2.1.2\src\fsl_sd_event.c + keil_lib_power.lib + 4 + SDK_2.2_LPCXpresso54608/devices/LPC54608/arm/keil_lib_power.lib @@ -940,851 +933,851 @@ backtrace.c 1 - ..\..\libcpu\arm\common\backtrace.c + ../../libcpu/arm/common/backtrace.c div0.c 1 - ..\..\libcpu\arm\common\div0.c + ../../libcpu/arm/common/div0.c showmem.c 1 - ..\..\libcpu\arm\common\showmem.c + ../../libcpu/arm/common/showmem.c cpuport.c 1 - ..\..\libcpu\arm\cortex-m4\cpuport.c + ../../libcpu/arm/cortex-m4/cpuport.c context_rvds.S 2 - ..\..\libcpu\arm\cortex-m4\context_rvds.S + ../../libcpu/arm/cortex-m4/context_rvds.S - CPlusPlus + finsh - Mutex.cpp - 8 - ..\..\components\cplusplus\Mutex.cpp + shell.c + 1 + ../../components/finsh/shell.c - Semaphore.cpp - 8 - ..\..\components\cplusplus\Semaphore.cpp + cmd.c + 1 + ../../components/finsh/cmd.c - Thread.cpp - 8 - ..\..\components\cplusplus\Thread.cpp + msh.c + 1 + ../../components/finsh/msh.c - crt.cpp - 8 - ..\..\components\cplusplus\crt.cpp + msh_file.c + 1 + ../../components/finsh/msh_file.c - crt_init.c + finsh_compiler.c 1 - ..\..\components\cplusplus\crt_init.c + ../../components/finsh/finsh_compiler.c - - - Filesystem - dfs.c + finsh_error.c 1 - ..\..\components\dfs\src\dfs.c + ../../components/finsh/finsh_error.c - dfs_file.c + finsh_heap.c 1 - ..\..\components\dfs\src\dfs_file.c + ../../components/finsh/finsh_heap.c - dfs_fs.c + finsh_init.c 1 - ..\..\components\dfs\src\dfs_fs.c + ../../components/finsh/finsh_init.c - dfs_posix.c + finsh_node.c 1 - ..\..\components\dfs\src\dfs_posix.c + ../../components/finsh/finsh_node.c - poll.c + finsh_ops.c 1 - ..\..\components\dfs\src\poll.c + ../../components/finsh/finsh_ops.c - select.c + finsh_parser.c 1 - ..\..\components\dfs\src\select.c + ../../components/finsh/finsh_parser.c - devfs.c + finsh_var.c 1 - ..\..\components\dfs\filesystems\devfs\devfs.c + ../../components/finsh/finsh_var.c - dfs_elm.c + finsh_vm.c 1 - ..\..\components\dfs\filesystems\elmfat\dfs_elm.c + ../../components/finsh/finsh_vm.c - ff.c + finsh_token.c 1 - ..\..\components\dfs\filesystems\elmfat\ff.c + ../../components/finsh/finsh_token.c - DeviceDrivers + Filesystem - i2c_core.c + dfs.c 1 - ..\..\components\drivers\i2c\i2c_core.c + ../../components/dfs/src/dfs.c - i2c_dev.c + dfs_file.c 1 - ..\..\components\drivers\i2c\i2c_dev.c + ../../components/dfs/src/dfs_file.c - i2c-bit-ops.c + dfs_fs.c 1 - ..\..\components\drivers\i2c\i2c-bit-ops.c + ../../components/dfs/src/dfs_fs.c - pin.c + dfs_posix.c 1 - ..\..\components\drivers\misc\pin.c + ../../components/dfs/src/dfs_posix.c - mtd_nand.c + poll.c 1 - ..\..\components\drivers\mtd\mtd_nand.c + ../../components/dfs/src/poll.c - rtc.c + select.c 1 - ..\..\components\drivers\rtc\rtc.c + ../../components/dfs/src/select.c - block_dev.c + dfs_elm.c 1 - ..\..\components\drivers\sdio\block_dev.c + ../../components/dfs/filesystems/elmfat/dfs_elm.c - mmcsd_core.c + ff.c 1 - ..\..\components\drivers\sdio\mmcsd_core.c + ../../components/dfs/filesystems/elmfat/ff.c - sd.c + devfs.c 1 - ..\..\components\drivers\sdio\sd.c + ../../components/dfs/filesystems/devfs/devfs.c + + + lwIP - sdio.c + sys_arch.c 1 - ..\..\components\drivers\sdio\sdio.c + ../../components/net/lwip-2.0.2/src/arch/sys_arch.c - mmc.c + api_lib.c 1 - ..\..\components\drivers\sdio\mmc.c + ../../components/net/lwip-2.0.2/src/api/api_lib.c - serial.c + api_msg.c 1 - ..\..\components\drivers\serial\serial.c + ../../components/net/lwip-2.0.2/src/api/api_msg.c - spi_core.c + err.c 1 - ..\..\components\drivers\spi\spi_core.c + ../../components/net/lwip-2.0.2/src/api/err.c - spi_dev.c + netbuf.c 1 - ..\..\components\drivers\spi\spi_dev.c + ../../components/net/lwip-2.0.2/src/api/netbuf.c - completion.c + netdb.c 1 - ..\..\components\drivers\src\completion.c + ../../components/net/lwip-2.0.2/src/api/netdb.c - dataqueue.c + netifapi.c 1 - ..\..\components\drivers\src\dataqueue.c + ../../components/net/lwip-2.0.2/src/api/netifapi.c - pipe.c + sockets.c 1 - ..\..\components\drivers\src\pipe.c + ../../components/net/lwip-2.0.2/src/api/sockets.c - ringblk_buf.c + tcpip.c 1 - ..\..\components\drivers\src\ringblk_buf.c + ../../components/net/lwip-2.0.2/src/api/tcpip.c - ringbuffer.c + def.c 1 - ..\..\components\drivers\src\ringbuffer.c + ../../components/net/lwip-2.0.2/src/core/def.c - waitqueue.c + dns.c 1 - ..\..\components\drivers\src\waitqueue.c + ../../components/net/lwip-2.0.2/src/core/dns.c - workqueue.c + inet_chksum.c 1 - ..\..\components\drivers\src\workqueue.c + ../../components/net/lwip-2.0.2/src/core/inet_chksum.c - - - - - - - - - - - - - - - finsh - shell.c + init.c 1 - ..\..\components\finsh\shell.c + ../../components/net/lwip-2.0.2/src/core/init.c - cmd.c + ip.c 1 - ..\..\components\finsh\cmd.c + ../../components/net/lwip-2.0.2/src/core/ip.c - msh.c + memp.c 1 - ..\..\components\finsh\msh.c + ../../components/net/lwip-2.0.2/src/core/memp.c - msh_file.c + netif.c 1 - ..\..\components\finsh\msh_file.c + ../../components/net/lwip-2.0.2/src/core/netif.c - finsh_compiler.c + pbuf.c 1 - ..\..\components\finsh\finsh_compiler.c + ../../components/net/lwip-2.0.2/src/core/pbuf.c - finsh_error.c + raw.c 1 - ..\..\components\finsh\finsh_error.c + ../../components/net/lwip-2.0.2/src/core/raw.c - finsh_heap.c + stats.c 1 - ..\..\components\finsh\finsh_heap.c + ../../components/net/lwip-2.0.2/src/core/stats.c - finsh_init.c + sys.c 1 - ..\..\components\finsh\finsh_init.c + ../../components/net/lwip-2.0.2/src/core/sys.c - finsh_node.c + tcp.c 1 - ..\..\components\finsh\finsh_node.c + ../../components/net/lwip-2.0.2/src/core/tcp.c - finsh_ops.c + tcp_in.c 1 - ..\..\components\finsh\finsh_ops.c + ../../components/net/lwip-2.0.2/src/core/tcp_in.c - finsh_parser.c + tcp_out.c 1 - ..\..\components\finsh\finsh_parser.c + ../../components/net/lwip-2.0.2/src/core/tcp_out.c - finsh_var.c + timeouts.c 1 - ..\..\components\finsh\finsh_var.c + ../../components/net/lwip-2.0.2/src/core/timeouts.c - finsh_vm.c + udp.c 1 - ..\..\components\finsh\finsh_vm.c + ../../components/net/lwip-2.0.2/src/core/udp.c - finsh_token.c + ethernet.c 1 - ..\..\components\finsh\finsh_token.c + ../../components/net/lwip-2.0.2/src/netif/ethernet.c - - - libc - libc.c + ethernetif.c 1 - ..\..\components\libc\compilers\armlibc\libc.c + ../../components/net/lwip-2.0.2/src/netif/ethernetif.c - mem_std.c + lowpan6.c 1 - ..\..\components\libc\compilers\armlibc\mem_std.c + ../../components/net/lwip-2.0.2/src/netif/lowpan6.c - stdio.c + autoip.c 1 - ..\..\components\libc\compilers\armlibc\stdio.c + ../../components/net/lwip-2.0.2/src/core/ipv4/autoip.c - stubs.c + dhcp.c 1 - ..\..\components\libc\compilers\armlibc\stubs.c + ../../components/net/lwip-2.0.2/src/core/ipv4/dhcp.c - time.c + etharp.c 1 - ..\..\components\libc\compilers\common\time.c + ../../components/net/lwip-2.0.2/src/core/ipv4/etharp.c - - - pthreads - mqueue.c + icmp.c 1 - ..\..\components\libc\pthreads\mqueue.c + ../../components/net/lwip-2.0.2/src/core/ipv4/icmp.c - pthread.c + igmp.c 1 - ..\..\components\libc\pthreads\pthread.c + ../../components/net/lwip-2.0.2/src/core/ipv4/igmp.c - pthread_attr.c + ip4.c 1 - ..\..\components\libc\pthreads\pthread_attr.c + ../../components/net/lwip-2.0.2/src/core/ipv4/ip4.c - pthread_barrier.c + ip4_addr.c 1 - ..\..\components\libc\pthreads\pthread_barrier.c + ../../components/net/lwip-2.0.2/src/core/ipv4/ip4_addr.c - pthread_cond.c + ip4_frag.c 1 - ..\..\components\libc\pthreads\pthread_cond.c + ../../components/net/lwip-2.0.2/src/core/ipv4/ip4_frag.c - pthread_mutex.c + ping.c 1 - ..\..\components\libc\pthreads\pthread_mutex.c + ../../components/net/lwip-2.0.2/src/apps/ping/ping.c + + + netdev - pthread_rwlock.c + netdev.c 1 - ..\..\components\libc\pthreads\pthread_rwlock.c + ../../components/net/netdev/src/netdev.c - pthread_spin.c + netdev_ipaddr.c 1 - ..\..\components\libc\pthreads\pthread_spin.c + ../../components/net/netdev/src/netdev_ipaddr.c + + + SAL - pthread_tls.c + sal_socket.c 1 - ..\..\components\libc\pthreads\pthread_tls.c + ../../components/net/sal_socket/src/sal_socket.c - sched.c + net_netdb.c 1 - ..\..\components\libc\pthreads\sched.c + ../../components/net/sal_socket/socket/net_netdb.c - semaphore.c + af_inet_lwip.c 1 - ..\..\components\libc\pthreads\semaphore.c + ../../components/net/sal_socket/impl/af_inet_lwip.c - clock_time.c + net_sockets.c 1 - ..\..\components\libc\time\clock_time.c + ../../components/net/sal_socket/socket/net_sockets.c - posix_sleep.c + dfs_net.c 1 - ..\..\components\libc\time\posix_sleep.c + ../../components/net/sal_socket/dfs_net/dfs_net.c - lwIP + DeviceDrivers - sys_arch.c + block_dev.c 1 - ..\..\components\net\lwip-2.0.2\src\arch\sys_arch.c + ../../components/drivers/sdio/block_dev.c - api_lib.c + mmcsd_core.c 1 - ..\..\components\net\lwip-2.0.2\src\api\api_lib.c + ../../components/drivers/sdio/mmcsd_core.c - api_msg.c + sd.c 1 - ..\..\components\net\lwip-2.0.2\src\api\api_msg.c + ../../components/drivers/sdio/sd.c - err.c + sdio.c 1 - ..\..\components\net\lwip-2.0.2\src\api\err.c + ../../components/drivers/sdio/sdio.c - netbuf.c + mmc.c 1 - ..\..\components\net\lwip-2.0.2\src\api\netbuf.c + ../../components/drivers/sdio/mmc.c - netdb.c + rtc.c 1 - ..\..\components\net\lwip-2.0.2\src\api\netdb.c + ../../components/drivers/rtc/rtc.c - netifapi.c + spi_core.c 1 - ..\..\components\net\lwip-2.0.2\src\api\netifapi.c + ../../components/drivers/spi/spi_core.c - sockets.c + spi_dev.c 1 - ..\..\components\net\lwip-2.0.2\src\api\sockets.c + ../../components/drivers/spi/spi_dev.c - tcpip.c + i2c_core.c 1 - ..\..\components\net\lwip-2.0.2\src\api\tcpip.c + ../../components/drivers/i2c/i2c_core.c - def.c + i2c_dev.c 1 - ..\..\components\net\lwip-2.0.2\src\core\def.c + ../../components/drivers/i2c/i2c_dev.c - dns.c + i2c-bit-ops.c 1 - ..\..\components\net\lwip-2.0.2\src\core\dns.c + ../../components/drivers/i2c/i2c-bit-ops.c - inet_chksum.c + serial.c 1 - ..\..\components\net\lwip-2.0.2\src\core\inet_chksum.c + ../../components/drivers/serial/serial.c - init.c + completion.c 1 - ..\..\components\net\lwip-2.0.2\src\core\init.c + ../../components/drivers/src/completion.c - ip.c + dataqueue.c 1 - ..\..\components\net\lwip-2.0.2\src\core\ip.c + ../../components/drivers/src/dataqueue.c - memp.c + pipe.c 1 - ..\..\components\net\lwip-2.0.2\src\core\memp.c + ../../components/drivers/src/pipe.c - netif.c + ringblk_buf.c 1 - ..\..\components\net\lwip-2.0.2\src\core\netif.c + ../../components/drivers/src/ringblk_buf.c - pbuf.c + ringbuffer.c 1 - ..\..\components\net\lwip-2.0.2\src\core\pbuf.c + ../../components/drivers/src/ringbuffer.c - raw.c + waitqueue.c 1 - ..\..\components\net\lwip-2.0.2\src\core\raw.c + ../../components/drivers/src/waitqueue.c - stats.c + workqueue.c 1 - ..\..\components\net\lwip-2.0.2\src\core\stats.c + ../../components/drivers/src/workqueue.c - sys.c + mtd_nand.c 1 - ..\..\components\net\lwip-2.0.2\src\core\sys.c + ../../components/drivers/mtd/mtd_nand.c - tcp.c + pin.c 1 - ..\..\components\net\lwip-2.0.2\src\core\tcp.c + ../../components/drivers/misc/pin.c + + + + + + + + + + + + + + + CPlusPlus - tcp_in.c - 1 - ..\..\components\net\lwip-2.0.2\src\core\tcp_in.c + cxx_Mutex.cpp + 8 + ../../components/cplusplus/cxx_Mutex.cpp - tcp_out.c - 1 - ..\..\components\net\lwip-2.0.2\src\core\tcp_out.c + cxx_Semaphore.cpp + 8 + ../../components/cplusplus/cxx_Semaphore.cpp - timeouts.c - 1 - ..\..\components\net\lwip-2.0.2\src\core\timeouts.c + cxx_Thread.cpp + 8 + ../../components/cplusplus/cxx_Thread.cpp - udp.c - 1 - ..\..\components\net\lwip-2.0.2\src\core\udp.c + cxx_crt.cpp + 8 + ../../components/cplusplus/cxx_crt.cpp - ethernet.c + crt_init.c 1 - ..\..\components\net\lwip-2.0.2\src\netif\ethernet.c + ../../components/cplusplus/crt_init.c + + + libc - ethernetif.c + libc.c 1 - ..\..\components\net\lwip-2.0.2\src\netif\ethernetif.c + ../../components/libc/compilers/armlibc/libc.c - lowpan6.c + mem_std.c 1 - ..\..\components\net\lwip-2.0.2\src\netif\lowpan6.c + ../../components/libc/compilers/armlibc/mem_std.c - autoip.c + stdio.c 1 - ..\..\components\net\lwip-2.0.2\src\core\ipv4\autoip.c + ../../components/libc/compilers/armlibc/stdio.c - dhcp.c + stubs.c 1 - ..\..\components\net\lwip-2.0.2\src\core\ipv4\dhcp.c + ../../components/libc/compilers/armlibc/stubs.c - etharp.c + time.c 1 - ..\..\components\net\lwip-2.0.2\src\core\ipv4\etharp.c + ../../components/libc/compilers/common/time.c + + + pthreads - icmp.c + mqueue.c 1 - ..\..\components\net\lwip-2.0.2\src\core\ipv4\icmp.c + ../../components/libc/pthreads/mqueue.c - igmp.c + pthread.c 1 - ..\..\components\net\lwip-2.0.2\src\core\ipv4\igmp.c + ../../components/libc/pthreads/pthread.c - ip4.c + pthread_attr.c 1 - ..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4.c + ../../components/libc/pthreads/pthread_attr.c - ip4_addr.c + pthread_barrier.c 1 - ..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_addr.c + ../../components/libc/pthreads/pthread_barrier.c - ip4_frag.c + pthread_cond.c 1 - ..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_frag.c + ../../components/libc/pthreads/pthread_cond.c - ping.c + pthread_mutex.c 1 - ..\..\components\net\lwip-2.0.2\src\apps\ping\ping.c + ../../components/libc/pthreads/pthread_mutex.c - - - netdev - netdev.c + pthread_rwlock.c 1 - ..\..\components\net\netdev\src\netdev.c + ../../components/libc/pthreads/pthread_rwlock.c - netdev_ipaddr.c + pthread_spin.c 1 - ..\..\components\net\netdev\src\netdev_ipaddr.c + ../../components/libc/pthreads/pthread_spin.c - - - SAL - sal_socket.c + pthread_tls.c 1 - ..\..\components\net\sal_socket\src\sal_socket.c + ../../components/libc/pthreads/pthread_tls.c - net_netdb.c + sched.c 1 - ..\..\components\net\sal_socket\socket\net_netdb.c + ../../components/libc/pthreads/sched.c - af_inet_lwip.c + semaphore.c 1 - ..\..\components\net\sal_socket\impl\af_inet_lwip.c + ../../components/libc/pthreads/semaphore.c - net_sockets.c + clock_time.c 1 - ..\..\components\net\sal_socket\socket\net_sockets.c + ../../components/libc/time/clock_time.c - dfs_net.c + posix_sleep.c 1 - ..\..\components\net\sal_socket\dfs_net\dfs_net.c + ../../components/libc/time/posix_sleep.c diff --git a/components/cplusplus/Mutex.cpp b/components/cplusplus/Mutex.cpp deleted file mode 100644 index 229e842446..0000000000 --- a/components/cplusplus/Mutex.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2006-2018, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - */ -#include "Mutex.h" - -using namespace rtthread; - -Mutex::Mutex(const char *name) -{ - rt_mutex_init(&mID, name, RT_IPC_FLAG_FIFO); -} - -bool Mutex::lock(int32_t millisec) -{ - rt_int32_t tick; - - if (millisec < 0) - tick = -1; - else - tick = rt_tick_from_millisecond(millisec); - - return rt_mutex_take(&mID, tick) == RT_EOK; -} - -bool Mutex::trylock() -{ - return lock(0); -} - -void Mutex::unlock() -{ - rt_mutex_release(&mID); -} - -Mutex::~Mutex() -{ - rt_mutex_detach(&mID); -} diff --git a/components/cplusplus/Semaphore.cpp b/components/cplusplus/Semaphore.cpp deleted file mode 100644 index c977a27c1a..0000000000 --- a/components/cplusplus/Semaphore.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2006-2018, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - */ -#include "Semaphore.h" - -using namespace rtthread; - -Semaphore::Semaphore(const char *name, int32_t count) -{ - rt_sem_init(&mID, name, count, RT_IPC_FLAG_FIFO); -} - -bool Semaphore::wait(int32_t millisec) -{ - rt_int32_t tick; - - if (millisec < 0) - tick = -1; - else - tick = rt_tick_from_millisecond(millisec); - - return rt_sem_take(&mID, tick) == RT_EOK; -} - -void Semaphore::release(void) -{ - rt_sem_release(&mID); -} - -Semaphore::~Semaphore() -{ - rt_sem_detach(&mID); -} diff --git a/components/cplusplus/Thread.cpp b/components/cplusplus/Thread.cpp deleted file mode 100644 index b21fbdce1f..0000000000 --- a/components/cplusplus/Thread.cpp +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright (c) 2006-2018, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - */ -#include "Thread.h" - -using namespace rtthread; - -Thread::Thread(rt_uint32_t stack_size, - rt_uint8_t priority, - rt_uint32_t tick, - const char *name) - : _entry(RT_NULL), _param(RT_NULL), started(false) -{ - rt_event_init(&_event, name, 0); - - _thread = rt_thread_create(name, - (thread_func_t)func, - this, - stack_size, - priority, - tick); -} - -Thread::Thread(void (*entry)(void *p), - void *p, - rt_uint32_t stack_size, - rt_uint8_t priority, - rt_uint32_t tick, - const char *name) - : _entry(entry), _param(p), started(false) -{ - rt_event_init(&_event, name, 0); - - _thread = rt_thread_create(name, - (thread_func_t)func, - this, - stack_size, - priority, - tick); -} - -Thread::~Thread() -{ - rt_event_detach(&_event); - rt_thread_delete(_thread); -} - -bool Thread::start() -{ - if (rt_thread_startup(_thread) == RT_EOK) - { - started = true; - } - - return started; -} - -void Thread::sleep(int32_t millisec) -{ - rt_int32_t tick; - - if (millisec < 0) - tick = 1; - else - tick = rt_tick_from_millisecond(millisec); - - rt_thread_delay(tick); -} - -void Thread::func(Thread *pThis) -{ - if (pThis->_entry != RT_NULL) - { - pThis->_entry(pThis->_param); - } - else - { - pThis->run(pThis->_param); - } - - rt_event_send(&pThis->_event, 1); -} - -void Thread::run(void *parameter) -{ - /* please overload this method */ -} - -rt_err_t Thread::wait(int32_t millisec) -{ - return join(millisec); -} - -rt_err_t Thread::join(int32_t millisec) -{ - if (started) - { - rt_int32_t tick; - - if (millisec < 0) - tick = -1; - else - tick = rt_tick_from_millisecond(millisec); - - return rt_event_recv(&_event, 1, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, tick, RT_NULL); - } - else - { - return -RT_ENOSYS; - } -} diff --git a/components/cplusplus/crt.cpp b/components/cplusplus/crt.cpp deleted file mode 100644 index d4cb84f77c..0000000000 --- a/components/cplusplus/crt.cpp +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2006-2018, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * -* Change Logs: -* Date Author Notes -* 2015-03-07 Bernard Add copyright header. -*/ - -#include -#include "crt.h" - -void *operator new(size_t size) -{ - return rt_malloc(size); -} - -void *operator new[](size_t size) -{ - return rt_malloc(size); -} - -void operator delete(void *ptr) -{ - rt_free(ptr); -} - -void operator delete[](void *ptr) -{ - return rt_free(ptr); -} - -void __cxa_pure_virtual(void) -{ - rt_kprintf("Illegal to call a pure virtual function.\n"); -} diff --git a/components/cplusplus/crt_init.c b/components/cplusplus/crt_init.c old mode 100755 new mode 100644 diff --git a/components/cplusplus/cxx_Mutex.cpp b/components/cplusplus/cxx_Mutex.cpp new file mode 100644 index 0000000000..229e842446 --- /dev/null +++ b/components/cplusplus/cxx_Mutex.cpp @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ +#include "Mutex.h" + +using namespace rtthread; + +Mutex::Mutex(const char *name) +{ + rt_mutex_init(&mID, name, RT_IPC_FLAG_FIFO); +} + +bool Mutex::lock(int32_t millisec) +{ + rt_int32_t tick; + + if (millisec < 0) + tick = -1; + else + tick = rt_tick_from_millisecond(millisec); + + return rt_mutex_take(&mID, tick) == RT_EOK; +} + +bool Mutex::trylock() +{ + return lock(0); +} + +void Mutex::unlock() +{ + rt_mutex_release(&mID); +} + +Mutex::~Mutex() +{ + rt_mutex_detach(&mID); +} diff --git a/components/cplusplus/cxx_Semaphore.cpp b/components/cplusplus/cxx_Semaphore.cpp new file mode 100644 index 0000000000..c977a27c1a --- /dev/null +++ b/components/cplusplus/cxx_Semaphore.cpp @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ +#include "Semaphore.h" + +using namespace rtthread; + +Semaphore::Semaphore(const char *name, int32_t count) +{ + rt_sem_init(&mID, name, count, RT_IPC_FLAG_FIFO); +} + +bool Semaphore::wait(int32_t millisec) +{ + rt_int32_t tick; + + if (millisec < 0) + tick = -1; + else + tick = rt_tick_from_millisecond(millisec); + + return rt_sem_take(&mID, tick) == RT_EOK; +} + +void Semaphore::release(void) +{ + rt_sem_release(&mID); +} + +Semaphore::~Semaphore() +{ + rt_sem_detach(&mID); +} diff --git a/components/cplusplus/cxx_Thread.cpp b/components/cplusplus/cxx_Thread.cpp new file mode 100644 index 0000000000..b21fbdce1f --- /dev/null +++ b/components/cplusplus/cxx_Thread.cpp @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + */ +#include "Thread.h" + +using namespace rtthread; + +Thread::Thread(rt_uint32_t stack_size, + rt_uint8_t priority, + rt_uint32_t tick, + const char *name) + : _entry(RT_NULL), _param(RT_NULL), started(false) +{ + rt_event_init(&_event, name, 0); + + _thread = rt_thread_create(name, + (thread_func_t)func, + this, + stack_size, + priority, + tick); +} + +Thread::Thread(void (*entry)(void *p), + void *p, + rt_uint32_t stack_size, + rt_uint8_t priority, + rt_uint32_t tick, + const char *name) + : _entry(entry), _param(p), started(false) +{ + rt_event_init(&_event, name, 0); + + _thread = rt_thread_create(name, + (thread_func_t)func, + this, + stack_size, + priority, + tick); +} + +Thread::~Thread() +{ + rt_event_detach(&_event); + rt_thread_delete(_thread); +} + +bool Thread::start() +{ + if (rt_thread_startup(_thread) == RT_EOK) + { + started = true; + } + + return started; +} + +void Thread::sleep(int32_t millisec) +{ + rt_int32_t tick; + + if (millisec < 0) + tick = 1; + else + tick = rt_tick_from_millisecond(millisec); + + rt_thread_delay(tick); +} + +void Thread::func(Thread *pThis) +{ + if (pThis->_entry != RT_NULL) + { + pThis->_entry(pThis->_param); + } + else + { + pThis->run(pThis->_param); + } + + rt_event_send(&pThis->_event, 1); +} + +void Thread::run(void *parameter) +{ + /* please overload this method */ +} + +rt_err_t Thread::wait(int32_t millisec) +{ + return join(millisec); +} + +rt_err_t Thread::join(int32_t millisec) +{ + if (started) + { + rt_int32_t tick; + + if (millisec < 0) + tick = -1; + else + tick = rt_tick_from_millisecond(millisec); + + return rt_event_recv(&_event, 1, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, tick, RT_NULL); + } + else + { + return -RT_ENOSYS; + } +} diff --git a/components/cplusplus/cxx_crt.cpp b/components/cplusplus/cxx_crt.cpp new file mode 100644 index 0000000000..d4cb84f77c --- /dev/null +++ b/components/cplusplus/cxx_crt.cpp @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * +* Change Logs: +* Date Author Notes +* 2015-03-07 Bernard Add copyright header. +*/ + +#include +#include "crt.h" + +void *operator new(size_t size) +{ + return rt_malloc(size); +} + +void *operator new[](size_t size) +{ + return rt_malloc(size); +} + +void operator delete(void *ptr) +{ + rt_free(ptr); +} + +void operator delete[](void *ptr) +{ + return rt_free(ptr); +} + +void __cxa_pure_virtual(void) +{ + rt_kprintf("Illegal to call a pure virtual function.\n"); +} -- cgit v1.3.1