From e01e391ee2873f0f1b69a69f94905f06e791959f Mon Sep 17 00:00:00 2001 From: Meco Man <920369182@qq.com> Date: Mon, 7 Aug 2023 12:30:43 -0400 Subject: [PATCH 1/2] rt_hw_cpu_reset: remove all other rt_weak --- bsp/raspberry-pico/libcpu/cpuport.c | 2 +- libcpu/arm/AT91SAM7S/cpu.c | 2 +- libcpu/arm/AT91SAM7X/cpu.c | 2 +- libcpu/arm/arm926/cpuport.c | 2 +- libcpu/arm/armv6/cpuport.c | 2 +- libcpu/arm/cortex-m0/cpuport.c | 2 +- libcpu/arm/cortex-m23/cpuport.c | 2 +- libcpu/arm/cortex-m3/cpuport.c | 2 +- libcpu/arm/cortex-m33/cpuport.c | 2 +- libcpu/arm/cortex-m4/cpuport.c | 2 +- libcpu/arm/cortex-m7/cpuport.c | 2 +- libcpu/arm/cortex-r4/cpu.c | 2 +- libcpu/arm/dm36x/cpuport.c | 2 +- libcpu/arm/lpc214x/cpuport.c | 2 +- libcpu/arm/lpc24xx/cpu.c | 2 +- libcpu/arm/s3c24x0/cpu.c | 2 +- libcpu/arm/s3c44b0/cpu.c | 2 +- libcpu/arm/sep4020/cpu.c | 2 +- libcpu/avr32/uc3/cpu.c | 9 --------- libcpu/mips/gs232/cpuport.c | 2 +- libcpu/unicore32/sep6200/cpu.c | 2 +- libcpu/xilinx/microblaze/cpu.c | 8 -------- src/kservice.c | 14 +++++++------- 23 files changed, 27 insertions(+), 44 deletions(-) diff --git a/bsp/raspberry-pico/libcpu/cpuport.c b/bsp/raspberry-pico/libcpu/cpuport.c index 93cc35189aa..b6cacb6e130 100644 --- a/bsp/raspberry-pico/libcpu/cpuport.c +++ b/bsp/raspberry-pico/libcpu/cpuport.c @@ -278,7 +278,7 @@ void rt_hw_hard_fault_exception(struct exception_stack_frame *contex) /** * reset CPU */ -rt_weak void rt_hw_cpu_reset(void) +void rt_hw_cpu_reset(void) { SCB_AIRCR = SCB_RESET_VALUE;//((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |SCB_AIRCR_SYSRESETREQ_Msk); } diff --git a/libcpu/arm/AT91SAM7S/cpu.c b/libcpu/arm/AT91SAM7S/cpu.c index d917083d0be..e05f8f29abb 100644 --- a/libcpu/arm/AT91SAM7S/cpu.c +++ b/libcpu/arm/AT91SAM7S/cpu.c @@ -20,7 +20,7 @@ * this function will reset CPU * */ -rt_weak void rt_hw_cpu_reset() +void rt_hw_cpu_reset() { } diff --git a/libcpu/arm/AT91SAM7X/cpu.c b/libcpu/arm/AT91SAM7X/cpu.c index bb60ce4565c..5406ddf2941 100644 --- a/libcpu/arm/AT91SAM7X/cpu.c +++ b/libcpu/arm/AT91SAM7X/cpu.c @@ -20,7 +20,7 @@ * this function will reset CPU * */ -rt_weak void rt_hw_cpu_reset() +void rt_hw_cpu_reset() { } diff --git a/libcpu/arm/arm926/cpuport.c b/libcpu/arm/arm926/cpuport.c index e4d70e1f6f6..caf0c46a399 100644 --- a/libcpu/arm/arm926/cpuport.c +++ b/libcpu/arm/arm926/cpuport.c @@ -146,7 +146,7 @@ rt_base_t rt_hw_cpu_dcache_status() * reset cpu by dog's time-out * */ -rt_weak void rt_hw_cpu_reset() +void rt_hw_cpu_reset() { rt_kprintf("Restarting system...\n"); diff --git a/libcpu/arm/armv6/cpuport.c b/libcpu/arm/armv6/cpuport.c index ea9b385b4ea..aafd9bbffff 100644 --- a/libcpu/arm/armv6/cpuport.c +++ b/libcpu/arm/armv6/cpuport.c @@ -147,7 +147,7 @@ rt_base_t rt_hw_cpu_dcache_status() * reset cpu by dog's time-out * */ -rt_weak void rt_hw_cpu_reset() +void rt_hw_cpu_reset() { rt_kprintf("Restarting system...\n"); diff --git a/libcpu/arm/cortex-m0/cpuport.c b/libcpu/arm/cortex-m0/cpuport.c index 2d326364cfc..dfc2e74223a 100644 --- a/libcpu/arm/cortex-m0/cpuport.c +++ b/libcpu/arm/cortex-m0/cpuport.c @@ -131,7 +131,7 @@ void rt_hw_hard_fault_exception(struct exception_stack_frame *contex) /** * reset CPU */ -rt_weak void rt_hw_cpu_reset(void) +void rt_hw_cpu_reset(void) { SCB_AIRCR = SCB_RESET_VALUE;//((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |SCB_AIRCR_SYSRESETREQ_Msk); } diff --git a/libcpu/arm/cortex-m23/cpuport.c b/libcpu/arm/cortex-m23/cpuport.c index 7533f2811fe..f831db416d4 100644 --- a/libcpu/arm/cortex-m23/cpuport.c +++ b/libcpu/arm/cortex-m23/cpuport.c @@ -132,7 +132,7 @@ void rt_hw_hard_fault_exception(struct exception_stack_frame *contex) /** * reset CPU */ -rt_weak void rt_hw_cpu_reset(void) +void rt_hw_cpu_reset(void) { SCB_AIRCR = SCB_RESET_VALUE;//((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |SCB_AIRCR_SYSRESETREQ_Msk); } diff --git a/libcpu/arm/cortex-m3/cpuport.c b/libcpu/arm/cortex-m3/cpuport.c index 65fc7969c6e..632f1f762b4 100644 --- a/libcpu/arm/cortex-m3/cpuport.c +++ b/libcpu/arm/cortex-m3/cpuport.c @@ -356,7 +356,7 @@ rt_weak void rt_hw_cpu_shutdown(void) /** * reset CPU */ -rt_weak void rt_hw_cpu_reset(void) +void rt_hw_cpu_reset(void) { SCB_AIRCR = SCB_RESET_VALUE; } diff --git a/libcpu/arm/cortex-m33/cpuport.c b/libcpu/arm/cortex-m33/cpuport.c index 9c110c7f558..44e1d466d3b 100644 --- a/libcpu/arm/cortex-m33/cpuport.c +++ b/libcpu/arm/cortex-m33/cpuport.c @@ -498,7 +498,7 @@ rt_weak void rt_hw_cpu_shutdown(void) /** * reset CPU */ -rt_weak void rt_hw_cpu_reset(void) +void rt_hw_cpu_reset(void) { SCB_AIRCR = SCB_RESET_VALUE; } diff --git a/libcpu/arm/cortex-m4/cpuport.c b/libcpu/arm/cortex-m4/cpuport.c index 1674d846e0e..488613ee635 100644 --- a/libcpu/arm/cortex-m4/cpuport.c +++ b/libcpu/arm/cortex-m4/cpuport.c @@ -441,7 +441,7 @@ rt_weak void rt_hw_cpu_shutdown(void) /** * reset CPU */ -rt_weak void rt_hw_cpu_reset(void) +void rt_hw_cpu_reset(void) { SCB_AIRCR = SCB_RESET_VALUE; } diff --git a/libcpu/arm/cortex-m7/cpuport.c b/libcpu/arm/cortex-m7/cpuport.c index 14fee85262c..c2faae245ff 100644 --- a/libcpu/arm/cortex-m7/cpuport.c +++ b/libcpu/arm/cortex-m7/cpuport.c @@ -440,7 +440,7 @@ rt_weak void rt_hw_cpu_shutdown(void) /** * reset CPU */ -rt_weak void rt_hw_cpu_reset(void) +void rt_hw_cpu_reset(void) { SCB_AIRCR = SCB_RESET_VALUE; } diff --git a/libcpu/arm/cortex-r4/cpu.c b/libcpu/arm/cortex-r4/cpu.c index 2741bfef9b5..0a18b6b607a 100644 --- a/libcpu/arm/cortex-r4/cpu.c +++ b/libcpu/arm/cortex-r4/cpu.c @@ -20,7 +20,7 @@ * this function will reset CPU * */ -rt_weak void rt_hw_cpu_reset() +void rt_hw_cpu_reset() { } diff --git a/libcpu/arm/dm36x/cpuport.c b/libcpu/arm/dm36x/cpuport.c index 915c79c34f9..697f4460cee 100644 --- a/libcpu/arm/dm36x/cpuport.c +++ b/libcpu/arm/dm36x/cpuport.c @@ -145,7 +145,7 @@ rt_base_t rt_hw_cpu_dcache_status() * reset cpu by dog's time-out * */ -rt_weak void rt_hw_cpu_reset() +void rt_hw_cpu_reset() { rt_kprintf("Restarting system...\n"); diff --git a/libcpu/arm/lpc214x/cpuport.c b/libcpu/arm/lpc214x/cpuport.c index de5a900a672..91fa2d761f3 100644 --- a/libcpu/arm/lpc214x/cpuport.c +++ b/libcpu/arm/lpc214x/cpuport.c @@ -163,7 +163,7 @@ rt_isr_handler_t rt_hw_interrupt_install(int vector, rt_isr_handler_t handler, * this function will reset CPU * */ -rt_weak void rt_hw_cpu_reset(void) +void rt_hw_cpu_reset(void) { } diff --git a/libcpu/arm/lpc24xx/cpu.c b/libcpu/arm/lpc24xx/cpu.c index 9e19cbf73ce..9871debee69 100644 --- a/libcpu/arm/lpc24xx/cpu.c +++ b/libcpu/arm/lpc24xx/cpu.c @@ -20,7 +20,7 @@ * this function will reset CPU * */ -rt_weak void rt_hw_cpu_reset() +void rt_hw_cpu_reset() { } diff --git a/libcpu/arm/s3c24x0/cpu.c b/libcpu/arm/s3c24x0/cpu.c index 88208efc9bf..12fbc9c33a1 100644 --- a/libcpu/arm/s3c24x0/cpu.c +++ b/libcpu/arm/s3c24x0/cpu.c @@ -148,7 +148,7 @@ rt_base_t rt_hw_cpu_dcache_status() * reset cpu by dog's time-out * */ -rt_weak void rt_hw_cpu_reset() +void rt_hw_cpu_reset() { /* Disable all interrupt except the WDT */ INTMSK = (~((rt_uint32_t)1 << INTWDT)); diff --git a/libcpu/arm/s3c44b0/cpu.c b/libcpu/arm/s3c44b0/cpu.c index e64c6769d6f..e4ea96f74e0 100644 --- a/libcpu/arm/s3c44b0/cpu.c +++ b/libcpu/arm/s3c44b0/cpu.c @@ -100,7 +100,7 @@ rt_base_t rt_hw_cpu_dcache_status() * this function will reset CPU * */ -rt_weak void rt_hw_cpu_reset() +void rt_hw_cpu_reset() { } diff --git a/libcpu/arm/sep4020/cpu.c b/libcpu/arm/sep4020/cpu.c index c488686e2dd..343fcf3612b 100644 --- a/libcpu/arm/sep4020/cpu.c +++ b/libcpu/arm/sep4020/cpu.c @@ -152,7 +152,7 @@ rt_base_t rt_hw_cpu_dcache_status() * reset cpu by dog's time-out * */ -rt_weak void rt_hw_cpu_reset() +void rt_hw_cpu_reset() { /* enable watchdog */ diff --git a/libcpu/avr32/uc3/cpu.c b/libcpu/avr32/uc3/cpu.c index 37b0828cf83..36e76115822 100644 --- a/libcpu/avr32/uc3/cpu.c +++ b/libcpu/avr32/uc3/cpu.c @@ -15,15 +15,6 @@ */ /*@{*/ -/** - * reset cpu by dog's time-out - * - */ -rt_weak void rt_hw_cpu_reset() -{ - /*NOTREACHED*/ -} - /** * shutdown CPU * diff --git a/libcpu/mips/gs232/cpuport.c b/libcpu/mips/gs232/cpuport.c index a4a6728ccd6..aa0234e6728 100644 --- a/libcpu/mips/gs232/cpuport.c +++ b/libcpu/mips/gs232/cpuport.c @@ -23,7 +23,7 @@ * this function will reset CPU * */ -rt_weak void rt_hw_cpu_reset(void) +void rt_hw_cpu_reset(void) { /* open the watch-dog */ WDT_EN = 0x01; /* watch dog enable */ diff --git a/libcpu/unicore32/sep6200/cpu.c b/libcpu/unicore32/sep6200/cpu.c index 26aa673d849..219c37d344c 100644 --- a/libcpu/unicore32/sep6200/cpu.c +++ b/libcpu/unicore32/sep6200/cpu.c @@ -245,7 +245,7 @@ static void sep6200_poweroff(void) * reset cpu by dog's time-out * */ -rt_weak void rt_hw_cpu_reset() +void rt_hw_cpu_reset() { rt_kprintf("Soft reset, Restarting system...\n"); diff --git a/libcpu/xilinx/microblaze/cpu.c b/libcpu/xilinx/microblaze/cpu.c index 70a908a22d2..36617c26d13 100755 --- a/libcpu/xilinx/microblaze/cpu.c +++ b/libcpu/xilinx/microblaze/cpu.c @@ -10,14 +10,6 @@ #include -/** - * this function will reset CPU - * - */ -rt_weak void rt_hw_cpu_reset() -{ -} - /** * this function will shutdown CPU * diff --git a/src/kservice.c b/src/kservice.c index b29497c765e..6c9389dfc51 100644 --- a/src/kservice.c +++ b/src/kservice.c @@ -66,20 +66,20 @@ static rt_device_t _console_device = RT_NULL; rt_weak void rt_hw_us_delay(rt_uint32_t us) { (void) us; - LOG_D("rt_hw_us_delay() doesn't support for this board." + LOG_W("rt_hw_us_delay() doesn't support for this board." "Please consider implementing rt_hw_us_delay() in another file."); } -rt_weak const char *rt_hw_cpu_arch(void) +rt_weak void rt_hw_cpu_reset(void) { - return "unknown"; + LOG_W("rt_hw_cpu_reset() doesn't support for this board." + "Please consider implementing rt_hw_cpu_reset() in another file."); + return; } -rt_weak void rt_hw_cpu_reset(void) +rt_weak const char *rt_hw_cpu_arch(void) { - LOG_D("rt_hw_cpu_reset() doesn't support for this board." - "Please consider implementing rt_hw_cpu_reset() in another file."); - return ; + return "unknown"; } static const char* rt_errno_strs[] = From 1d54b57f56dee4eaf55a97790990bd3f70f645d7 Mon Sep 17 00:00:00 2001 From: Meco Man <920369182@qq.com> Date: Mon, 7 Aug 2023 12:42:10 -0400 Subject: [PATCH 2/2] rt_hw_cpu_shutdown: implement default weak function and remvoe duplicated default functions in each cpu/bsp level --- bsp/allwinner_tina/libcpu/cpuport.c | 2 +- bsp/bluetrum/libcpu/cpu/cpuport.c | 13 ------------- bsp/imx6sx/cortex-a9/cpu/cpu.c | 11 ----------- bsp/mipssim/drivers/board.c | 22 ---------------------- bsp/raspberry-pi/raspi2/cpu/cpu.c | 11 ----------- bsp/raspberry-pi/raspi3-32/cpu/cpu.c | 12 ------------ bsp/rockchip/rk3568/driver/board.c | 2 +- documentation/doxygen/hardware.h | 10 ---------- libcpu/aarch64/common/cpu.c | 2 +- libcpu/aarch64/common/cpu.h | 2 -- libcpu/arc/em/cpuport.c | 8 -------- libcpu/arm/AT91SAM7S/cpu.c | 19 ------------------- libcpu/arm/AT91SAM7X/cpu.c | 18 ------------------ libcpu/arm/am335x/cpu.c | 2 +- libcpu/arm/arm926/cpuport.c | 2 +- libcpu/arm/armv6/cpuport.c | 2 +- libcpu/arm/cortex-a/cpuport.c | 2 +- libcpu/arm/cortex-m3/cpuport.c | 10 ---------- libcpu/arm/cortex-m33/cpuport.c | 10 ---------- libcpu/arm/cortex-m4/cpuport.c | 10 ---------- libcpu/arm/cortex-m7/cpuport.c | 10 ---------- libcpu/arm/cortex-r4/cpu.c | 19 ------------------- libcpu/arm/dm36x/cpuport.c | 2 +- libcpu/arm/lpc214x/cpuport.c | 19 ------------------- libcpu/arm/lpc24xx/cpu.c | 19 ------------------- libcpu/arm/realview-a8-vmm/cpu.c | 13 ------------- libcpu/arm/s3c24x0/cpu.c | 15 --------------- libcpu/arm/s3c44b0/cpu.c | 19 ------------------- libcpu/arm/sep4020/cpu.c | 16 ---------------- libcpu/arm/zynqmp-r5/cpu.c | 16 ---------------- libcpu/avr32/uc3/cpu.c | 9 --------- libcpu/mips/gs232/cpuport.c | 12 ------------ libcpu/risc-v/common/cpuport.c | 13 ------------- libcpu/risc-v/t-head/c906/cpuport.c | 2 +- libcpu/risc-v/virt64/cpuport.c | 2 +- libcpu/rx/cpuport.c | 11 ----------- libcpu/ti-dsp/c28x/cpuport.c | 10 ---------- libcpu/ti-dsp/c6x/cpuport.c | 15 --------------- libcpu/unicore32/sep6200/cpu.c | 2 +- libcpu/xilinx/microblaze/cpu.c | 11 ----------- src/kservice.c | 14 ++++++++++++++ 41 files changed, 25 insertions(+), 394 deletions(-) diff --git a/bsp/allwinner_tina/libcpu/cpuport.c b/bsp/allwinner_tina/libcpu/cpuport.c index 94f2baf415e..37d64699551 100644 --- a/bsp/allwinner_tina/libcpu/cpuport.c +++ b/bsp/allwinner_tina/libcpu/cpuport.c @@ -160,7 +160,7 @@ void rt_hw_cpu_reset() * shutdown CPU * */ -void rt_hw_cpu_shutdown() +void rt_hw_cpu_shutdown(void) { rt_uint32_t level; rt_kprintf("shutdown...\n"); diff --git a/bsp/bluetrum/libcpu/cpu/cpuport.c b/bsp/bluetrum/libcpu/cpu/cpuport.c index a2d405ccdda..d292585028f 100644 --- a/bsp/bluetrum/libcpu/cpu/cpuport.c +++ b/bsp/bluetrum/libcpu/cpu/cpuport.c @@ -52,16 +52,3 @@ rt_uint8_t *rt_hw_stack_init(void *tentry, /* return task's current stack address */ return (rt_uint8_t *)stk; } - -/** shutdown CPU */ -void rt_hw_cpu_shutdown(void) -{ - rt_uint32_t level; - rt_kprintf("shutdown...\n"); - - level = rt_hw_interrupt_disable(); - while (level) - { - RT_ASSERT(0); - } -} diff --git a/bsp/imx6sx/cortex-a9/cpu/cpu.c b/bsp/imx6sx/cortex-a9/cpu/cpu.c index 2d787150116..ec44c1493b8 100644 --- a/bsp/imx6sx/cortex-a9/cpu/cpu.c +++ b/bsp/imx6sx/cortex-a9/cpu/cpu.c @@ -17,17 +17,6 @@ */ /*@{*/ -/** shutdown CPU */ -void rt_hw_cpu_shutdown() -{ - rt_uint32_t level; - rt_kprintf("shutdown...\n"); - level = rt_hw_interrupt_disable(); - while (level) - { - RT_ASSERT(0); - } -} /*@}*/ diff --git a/bsp/mipssim/drivers/board.c b/bsp/mipssim/drivers/board.c index a0ef220bc7a..9c295f0a28d 100644 --- a/bsp/mipssim/drivers/board.c +++ b/bsp/mipssim/drivers/board.c @@ -26,28 +26,6 @@ extern unsigned char __bss_end; -/** - * this function will reset CPU - * - */ -void rt_hw_cpu_reset(void) -{ - rt_kprintf("reboot system...\n"); - while (1); -} - -/** - * this function will shutdown CPU - * - */ -void rt_hw_cpu_shutdown(void) -{ - rt_kprintf("shutdown...\n"); - - while (1); -} - - /** * This is the timer interrupt service routine. */ diff --git a/bsp/raspberry-pi/raspi2/cpu/cpu.c b/bsp/raspberry-pi/raspi2/cpu/cpu.c index 5f82671c1bd..78dce1a2370 100644 --- a/bsp/raspberry-pi/raspi2/cpu/cpu.c +++ b/bsp/raspberry-pi/raspi2/cpu/cpu.c @@ -17,17 +17,6 @@ */ /*@{*/ -/** shutdown CPU */ -void rt_hw_cpu_shutdown() -{ - rt_uint32_t level; - rt_kprintf("shutdown...\n"); - level = rt_hw_interrupt_disable(); - while (level) - { - RT_ASSERT(0); - } -} /*@}*/ diff --git a/bsp/raspberry-pi/raspi3-32/cpu/cpu.c b/bsp/raspberry-pi/raspi3-32/cpu/cpu.c index b43b8045978..d0a583e96ba 100644 --- a/bsp/raspberry-pi/raspi3-32/cpu/cpu.c +++ b/bsp/raspberry-pi/raspi3-32/cpu/cpu.c @@ -75,17 +75,5 @@ void rt_hw_spin_unlock(rt_hw_spinlock_t *lock) */ /*@{*/ -/** shutdown CPU */ -void rt_hw_cpu_shutdown() -{ - rt_uint32_t level; - rt_kprintf("shutdown...\n"); - - level = rt_hw_interrupt_disable(); - while (level) - { - RT_ASSERT(0); - } -} /*@}*/ diff --git a/bsp/rockchip/rk3568/driver/board.c b/bsp/rockchip/rk3568/driver/board.c index 06197763d32..5fdbe52ea0f 100644 --- a/bsp/rockchip/rk3568/driver/board.c +++ b/bsp/rockchip/rk3568/driver/board.c @@ -133,7 +133,7 @@ void start_cpu(int argc, char *argv[]) MSH_CMD_EXPORT(start_cpu, start_cpu); #ifdef RT_AMP_SLAVE -void rt_hw_cpu_shutdown() +void rt_hw_cpu_shutdown(void) { if (psci_ops.cpu_off) { diff --git a/documentation/doxygen/hardware.h b/documentation/doxygen/hardware.h index bc052749982..9f613c272ee 100644 --- a/documentation/doxygen/hardware.h +++ b/documentation/doxygen/hardware.h @@ -74,14 +74,4 @@ void rt_hw_interrupt_umask(int vector); void rt_hw_interrupt_install(int vector, rt_isr_handler_t new_handler, rt_isr_handler_t *old_handler); -/** - * This function will reset whole platform. - */ -void rt_hw_cpu_reset(void); - -/** - * This function will halt whole platform. - */ -void rt_hw_cpu_shutdown(void); - /**@}*/ diff --git a/libcpu/aarch64/common/cpu.c b/libcpu/aarch64/common/cpu.c index 8953b64556b..7aeb59f6346 100644 --- a/libcpu/aarch64/common/cpu.c +++ b/libcpu/aarch64/common/cpu.c @@ -357,7 +357,7 @@ const char *rt_hw_cpu_arch(void) } /** shutdown CPU */ -rt_weak void rt_hw_cpu_shutdown() +void rt_hw_cpu_shutdown(void) { rt_uint32_t level; rt_kprintf("shutdown...\n"); diff --git a/libcpu/aarch64/common/cpu.h b/libcpu/aarch64/common/cpu.h index 28044bb1853..e3efaec4852 100644 --- a/libcpu/aarch64/common/cpu.h +++ b/libcpu/aarch64/common/cpu.h @@ -56,8 +56,6 @@ extern struct cpu_ops_t cpu_ops_spin_tbl; #endif /* RT_USING_SMP */ -extern void rt_hw_cpu_shutdown(void); - extern void (*system_off)(void); #endif /* __RT_HW_CPU_H__ */ \ No newline at end of file diff --git a/libcpu/arc/em/cpuport.c b/libcpu/arc/em/cpuport.c index 679e2e78eea..b7653a5c21a 100644 --- a/libcpu/arc/em/cpuport.c +++ b/libcpu/arc/em/cpuport.c @@ -29,14 +29,6 @@ struct init_stack_frame { rt_uint32_t r0; }; -/** - * shutdown CPU - */ -rt_weak void rt_hw_cpu_shutdown(void) -{ - -} - rt_uint8_t *rt_hw_stack_init(void *tentry, void *parameter, rt_uint8_t *stack_addr, diff --git a/libcpu/arm/AT91SAM7S/cpu.c b/libcpu/arm/AT91SAM7S/cpu.c index e05f8f29abb..8cab991b6a7 100644 --- a/libcpu/arm/AT91SAM7S/cpu.c +++ b/libcpu/arm/AT91SAM7S/cpu.c @@ -16,23 +16,4 @@ */ /*@{*/ -/** - * this function will reset CPU - * - */ -void rt_hw_cpu_reset() -{ -} - -/** - * this function will shutdown CPU - * - */ -rt_weak void rt_hw_cpu_shutdown() -{ - rt_kprintf("shutdown...\n"); - - while (1); -} - /*@}*/ diff --git a/libcpu/arm/AT91SAM7X/cpu.c b/libcpu/arm/AT91SAM7X/cpu.c index 5406ddf2941..bac6dc5cdb5 100644 --- a/libcpu/arm/AT91SAM7X/cpu.c +++ b/libcpu/arm/AT91SAM7X/cpu.c @@ -16,23 +16,5 @@ */ /*@{*/ -/** - * this function will reset CPU - * - */ -void rt_hw_cpu_reset() -{ -} - -/** - * this function will shutdown CPU - * - */ -rt_weak void rt_hw_cpu_shutdown() -{ - rt_kprintf("shutdown...\n"); - - while (1); -} /*@}*/ diff --git a/libcpu/arm/am335x/cpu.c b/libcpu/arm/am335x/cpu.c index d91542fbb9e..7fcbc06d1ae 100644 --- a/libcpu/arm/am335x/cpu.c +++ b/libcpu/arm/am335x/cpu.c @@ -182,7 +182,7 @@ rt_base_t rt_hw_cpu_dcache_status() * shutdown CPU * */ -rt_weak void rt_hw_cpu_shutdown() +void rt_hw_cpu_shutdown(void) { rt_base_t level; rt_kprintf("shutdown...\n"); diff --git a/libcpu/arm/arm926/cpuport.c b/libcpu/arm/arm926/cpuport.c index caf0c46a399..45ed6d7e835 100644 --- a/libcpu/arm/arm926/cpuport.c +++ b/libcpu/arm/arm926/cpuport.c @@ -161,7 +161,7 @@ void rt_hw_cpu_reset() * shutdown CPU * */ -rt_weak void rt_hw_cpu_shutdown() +void rt_hw_cpu_shutdown(void) { rt_base_t level; rt_kprintf("shutdown...\n"); diff --git a/libcpu/arm/armv6/cpuport.c b/libcpu/arm/armv6/cpuport.c index aafd9bbffff..f7d6ab44f6b 100644 --- a/libcpu/arm/armv6/cpuport.c +++ b/libcpu/arm/armv6/cpuport.c @@ -162,7 +162,7 @@ void rt_hw_cpu_reset() * shutdown CPU * */ -rt_weak void rt_hw_cpu_shutdown() +void rt_hw_cpu_shutdown(void) { rt_base_t level; rt_kprintf("shutdown...\n"); diff --git a/libcpu/arm/cortex-a/cpuport.c b/libcpu/arm/cortex-a/cpuport.c index ec523f2aa7b..ac947fb8233 100644 --- a/libcpu/arm/cortex-a/cpuport.c +++ b/libcpu/arm/cortex-a/cpuport.c @@ -74,7 +74,7 @@ void rt_hw_spin_unlock(rt_hw_spinlock_t *lock) /*@{*/ /** shutdown CPU */ -rt_weak void rt_hw_cpu_shutdown() +void rt_hw_cpu_shutdown(void) { rt_base_t level; rt_kprintf("shutdown...\n"); diff --git a/libcpu/arm/cortex-m3/cpuport.c b/libcpu/arm/cortex-m3/cpuport.c index 632f1f762b4..8f5616a3dd2 100644 --- a/libcpu/arm/cortex-m3/cpuport.c +++ b/libcpu/arm/cortex-m3/cpuport.c @@ -343,16 +343,6 @@ void rt_hw_hard_fault_exception(struct exception_info * exception_info) while (1); } -/** - * shutdown CPU - */ -rt_weak void rt_hw_cpu_shutdown(void) -{ - rt_kprintf("shutdown...\n"); - - RT_ASSERT(0); -} - /** * reset CPU */ diff --git a/libcpu/arm/cortex-m33/cpuport.c b/libcpu/arm/cortex-m33/cpuport.c index 44e1d466d3b..749932c609a 100644 --- a/libcpu/arm/cortex-m33/cpuport.c +++ b/libcpu/arm/cortex-m33/cpuport.c @@ -485,16 +485,6 @@ void rt_hw_hard_fault_exception(struct exception_info *exception_info) while (1); } -/** - * shutdown CPU - */ -rt_weak void rt_hw_cpu_shutdown(void) -{ - rt_kprintf("shutdown...\n"); - - RT_ASSERT(0); -} - /** * reset CPU */ diff --git a/libcpu/arm/cortex-m4/cpuport.c b/libcpu/arm/cortex-m4/cpuport.c index 488613ee635..9504008e36d 100644 --- a/libcpu/arm/cortex-m4/cpuport.c +++ b/libcpu/arm/cortex-m4/cpuport.c @@ -428,16 +428,6 @@ void rt_hw_hard_fault_exception(struct exception_info *exception_info) while (1); } -/** - * shutdown CPU - */ -rt_weak void rt_hw_cpu_shutdown(void) -{ - rt_kprintf("shutdown...\n"); - - RT_ASSERT(0); -} - /** * reset CPU */ diff --git a/libcpu/arm/cortex-m7/cpuport.c b/libcpu/arm/cortex-m7/cpuport.c index c2faae245ff..d4a14decc97 100644 --- a/libcpu/arm/cortex-m7/cpuport.c +++ b/libcpu/arm/cortex-m7/cpuport.c @@ -427,16 +427,6 @@ void rt_hw_hard_fault_exception(struct exception_info *exception_info) while (1); } -/** - * shutdown CPU - */ -rt_weak void rt_hw_cpu_shutdown(void) -{ - rt_kprintf("shutdown...\n"); - - RT_ASSERT(0); -} - /** * reset CPU */ diff --git a/libcpu/arm/cortex-r4/cpu.c b/libcpu/arm/cortex-r4/cpu.c index 0a18b6b607a..fa60a0cf5ed 100644 --- a/libcpu/arm/cortex-r4/cpu.c +++ b/libcpu/arm/cortex-r4/cpu.c @@ -16,25 +16,6 @@ */ /*@{*/ -/** - * this function will reset CPU - * - */ -void rt_hw_cpu_reset() -{ -} - -/** - * this function will shutdown CPU - * - */ -rt_weak void rt_hw_cpu_shutdown() -{ - rt_kprintf("shutdown...\n"); - - while (1); -} - #ifdef __TI_COMPILER_VERSION__ #ifdef RT_USING_CPU_FFS int __rt_ffs(int value) diff --git a/libcpu/arm/dm36x/cpuport.c b/libcpu/arm/dm36x/cpuport.c index 697f4460cee..b25e6b7f439 100644 --- a/libcpu/arm/dm36x/cpuport.c +++ b/libcpu/arm/dm36x/cpuport.c @@ -160,7 +160,7 @@ void rt_hw_cpu_reset() * shutdown CPU * */ -rt_weak void rt_hw_cpu_shutdown() +void rt_hw_cpu_shutdown(void) { rt_base_t level; rt_kprintf("shutdown...\n"); diff --git a/libcpu/arm/lpc214x/cpuport.c b/libcpu/arm/lpc214x/cpuport.c index 91fa2d761f3..4b8896aa73f 100644 --- a/libcpu/arm/lpc214x/cpuport.c +++ b/libcpu/arm/lpc214x/cpuport.c @@ -159,25 +159,6 @@ rt_isr_handler_t rt_hw_interrupt_install(int vector, rt_isr_handler_t handler, return old_handler; } -/** - * this function will reset CPU - * - */ -void rt_hw_cpu_reset(void) -{ -} - -/** - * this function will shutdown CPU - * - */ -rt_weak void rt_hw_cpu_shutdown() -{ - rt_kprintf("shutdown...\n"); - - while (1); -} - void rt_hw_trap_irq(void) { int irqno; diff --git a/libcpu/arm/lpc24xx/cpu.c b/libcpu/arm/lpc24xx/cpu.c index 9871debee69..5f0987f9675 100644 --- a/libcpu/arm/lpc24xx/cpu.c +++ b/libcpu/arm/lpc24xx/cpu.c @@ -16,23 +16,4 @@ */ /*@{*/ -/** - * this function will reset CPU - * - */ -void rt_hw_cpu_reset() -{ -} - -/** - * this function will shutdown CPU - * - */ -rt_weak void rt_hw_cpu_shutdown() -{ - rt_kprintf("shutdown...\n"); - - while (1); -} - /*@}*/ diff --git a/libcpu/arm/realview-a8-vmm/cpu.c b/libcpu/arm/realview-a8-vmm/cpu.c index 95c122f1d2b..0eee5a70ee0 100644 --- a/libcpu/arm/realview-a8-vmm/cpu.c +++ b/libcpu/arm/realview-a8-vmm/cpu.c @@ -17,17 +17,4 @@ */ /*@{*/ -/** shutdown CPU */ -rt_weak void rt_hw_cpu_shutdown() -{ - rt_base_t level; - rt_kprintf("shutdown...\n"); - - level = rt_hw_interrupt_disable(); - while (level) - { - RT_ASSERT(0); - } -} - /*@}*/ diff --git a/libcpu/arm/s3c24x0/cpu.c b/libcpu/arm/s3c24x0/cpu.c index 12fbc9c33a1..41e9c4a78b0 100644 --- a/libcpu/arm/s3c24x0/cpu.c +++ b/libcpu/arm/s3c24x0/cpu.c @@ -167,20 +167,5 @@ void rt_hw_cpu_reset() /* NEVER REACHED */ } -/** - * shutdown CPU - * - */ -rt_weak void rt_hw_cpu_shutdown() -{ - rt_base_t level; - rt_kprintf("shutdown...\n"); - - level = rt_hw_interrupt_disable(); - while (level) - { - RT_ASSERT(0); - } -} /*@}*/ diff --git a/libcpu/arm/s3c44b0/cpu.c b/libcpu/arm/s3c44b0/cpu.c index e4ea96f74e0..8bda7e365c3 100644 --- a/libcpu/arm/s3c44b0/cpu.c +++ b/libcpu/arm/s3c44b0/cpu.c @@ -96,23 +96,4 @@ rt_base_t rt_hw_cpu_dcache_status() return rt_hw_cpu_icache_status(); } -/** - * this function will reset CPU - * - */ -void rt_hw_cpu_reset() -{ -} - -/** - * this function will shutdown CPU - * - */ -rt_weak void rt_hw_cpu_shutdown() -{ - rt_kprintf("shutdown...\n"); - - while (1); -} - /*@}*/ diff --git a/libcpu/arm/sep4020/cpu.c b/libcpu/arm/sep4020/cpu.c index 343fcf3612b..2ceb1e2ae75 100644 --- a/libcpu/arm/sep4020/cpu.c +++ b/libcpu/arm/sep4020/cpu.c @@ -169,20 +169,4 @@ void rt_hw_cpu_reset() /* NEVER REACHED */ } -/** - * shutdown CPU - * - */ -rt_weak void rt_hw_cpu_shutdown() -{ - rt_base_t level; - rt_kprintf("shutdown...\n"); - - level = rt_hw_interrupt_disable(); - while (level) - { - RT_ASSERT(RT_NULL); - } -} - /*@}*/ diff --git a/libcpu/arm/zynqmp-r5/cpu.c b/libcpu/arm/zynqmp-r5/cpu.c index 788df69d6c3..c14a29e9bf2 100644 --- a/libcpu/arm/zynqmp-r5/cpu.c +++ b/libcpu/arm/zynqmp-r5/cpu.c @@ -18,19 +18,3 @@ void rt_hw_cpu_reset() while (1); /* loop forever and wait for reset to happen */ /* NEVER REACHED */ } - -/** - * shutdown CPU - * - */ -void rt_hw_cpu_shutdown() -{ - rt_base_t level; - rt_kprintf("shutdown...\n"); - - level = rt_hw_interrupt_disable(); - while (level) - { - RT_ASSERT(0); - } -} diff --git a/libcpu/avr32/uc3/cpu.c b/libcpu/avr32/uc3/cpu.c index 36e76115822..a6d187ef412 100644 --- a/libcpu/avr32/uc3/cpu.c +++ b/libcpu/avr32/uc3/cpu.c @@ -15,15 +15,6 @@ */ /*@{*/ -/** - * shutdown CPU - * - */ -void rt_hw_cpu_shutdown() -{ - rt_kprintf("shutdown...\n"); - RT_ASSERT(0); -} /*@}*/ diff --git a/libcpu/mips/gs232/cpuport.c b/libcpu/mips/gs232/cpuport.c index aa0234e6728..c473eed50ca 100644 --- a/libcpu/mips/gs232/cpuport.c +++ b/libcpu/mips/gs232/cpuport.c @@ -34,18 +34,6 @@ void rt_hw_cpu_reset(void) while (1); } -/** - * this function will shutdown CPU - * - */ -rt_weak void rt_hw_cpu_shutdown(void) -{ - rt_kprintf("shutdown...\n"); - - while (1); -} - - #define Hit_Invalidate_I 0x10 #define Hit_Invalidate_D 0x11 #define CONFIG_SYS_CACHELINE_SIZE 32 diff --git a/libcpu/risc-v/common/cpuport.c b/libcpu/risc-v/common/cpuport.c index 25c884b2e54..502a8fcbf3d 100644 --- a/libcpu/risc-v/common/cpuport.c +++ b/libcpu/risc-v/common/cpuport.c @@ -97,16 +97,3 @@ rt_weak void rt_hw_context_switch_interrupt(rt_ubase_t from, rt_ubase_t to, rt_t return ; } #endif /* end of RT_USING_SMP */ - -/** shutdown CPU */ -rt_weak void rt_hw_cpu_shutdown() -{ - rt_base_t level; - rt_kprintf("shutdown...\n"); - - level = rt_hw_interrupt_disable(); - while (level) - { - RT_ASSERT(0); - } -} diff --git a/libcpu/risc-v/t-head/c906/cpuport.c b/libcpu/risc-v/t-head/c906/cpuport.c index 142a071362a..c4f88bdacd5 100644 --- a/libcpu/risc-v/t-head/c906/cpuport.c +++ b/libcpu/risc-v/t-head/c906/cpuport.c @@ -106,7 +106,7 @@ void rt_hw_context_switch_interrupt(rt_ubase_t from, rt_ubase_t to, rt_thread_t #endif /* end of RT_USING_SMP */ /** shutdown CPU */ -void rt_hw_cpu_shutdown() +void rt_hw_cpu_shutdown(void) { rt_uint32_t level; rt_kprintf("shutdown...\n"); diff --git a/libcpu/risc-v/virt64/cpuport.c b/libcpu/risc-v/virt64/cpuport.c index 0979f227e85..33d9e83c046 100644 --- a/libcpu/risc-v/virt64/cpuport.c +++ b/libcpu/risc-v/virt64/cpuport.c @@ -108,7 +108,7 @@ void rt_hw_context_switch_interrupt(rt_ubase_t from, rt_ubase_t to, rt_thread_t #endif /* end of RT_USING_SMP */ /** shutdown CPU */ -void rt_hw_cpu_shutdown() +void rt_hw_cpu_shutdown(void) { rt_uint32_t level; rt_kprintf("shutdown...\n"); diff --git a/libcpu/rx/cpuport.c b/libcpu/rx/cpuport.c index 3425b6b9c9c..37ee47c0423 100644 --- a/libcpu/rx/cpuport.c +++ b/libcpu/rx/cpuport.c @@ -174,17 +174,6 @@ void rt_hw_context_switch_interrupt(rt_uint32_t from, rt_uint32_t to) ENTER_INTERRUPT(); } -/** - * shut down the chip - * - * @author LXZ (2014/11/8) - */ -rt_weak void rt_hw_cpu_shutdown(void) -{ - rt_kprintf("shutdown...\n"); - - RT_ASSERT(0); -} /** * switch to the first thread,it just call one time * diff --git a/libcpu/ti-dsp/c28x/cpuport.c b/libcpu/ti-dsp/c28x/cpuport.c index c1c11414134..ffb40fee776 100644 --- a/libcpu/ti-dsp/c28x/cpuport.c +++ b/libcpu/ti-dsp/c28x/cpuport.c @@ -158,16 +158,6 @@ int __rt_ffs(int value) } #endif -/** - * shutdown CPU - */ -rt_weak void rt_hw_cpu_shutdown(void) -{ - rt_kprintf("shutdown...\n"); - - RT_ASSERT(0); -} - void rt_interrupt_enter(void) { rt_base_t level; diff --git a/libcpu/ti-dsp/c6x/cpuport.c b/libcpu/ti-dsp/c6x/cpuport.c index 31f1255a2dc..dccfab995a0 100644 --- a/libcpu/ti-dsp/c6x/cpuport.c +++ b/libcpu/ti-dsp/c6x/cpuport.c @@ -13,21 +13,6 @@ #include "trap.h" -/*------------ rt_hw_cpu_shutdown() function ---------------------------------- - * DESCRIPTION: Shutdown CPU - * ARGUMENTS: - * None - * RETURNED VALUE: None ------------------------------------------------------------------------------*/ -rt_weak void rt_hw_cpu_shutdown(void) -{ - rt_kprintf("shutdown...\n"); - - rt_hw_interrupt_disable(); - - RT_ASSERT(0); -} - /*------------ nested_exception_handler() function --------------------------- * DESCRIPTION: Function handles Nested Exception * ARGUMENTS: diff --git a/libcpu/unicore32/sep6200/cpu.c b/libcpu/unicore32/sep6200/cpu.c index 219c37d344c..02ad39caa06 100644 --- a/libcpu/unicore32/sep6200/cpu.c +++ b/libcpu/unicore32/sep6200/cpu.c @@ -260,7 +260,7 @@ void rt_hw_cpu_reset() * shutdown CPU * */ -rt_weak void rt_hw_cpu_shutdown() +void rt_hw_cpu_shutdown(void) { rt_base_t level; rt_kprintf("shutdown...\n"); diff --git a/libcpu/xilinx/microblaze/cpu.c b/libcpu/xilinx/microblaze/cpu.c index 36617c26d13..1fa99810e3f 100755 --- a/libcpu/xilinx/microblaze/cpu.c +++ b/libcpu/xilinx/microblaze/cpu.c @@ -10,14 +10,3 @@ #include -/** - * this function will shutdown CPU - * - */ -rt_weak void rt_hw_cpu_shutdown() -{ - rt_kprintf("shutdown...\n"); - - while (1); -} - diff --git a/src/kservice.c b/src/kservice.c index 6c9389dfc51..1a8c047120a 100644 --- a/src/kservice.c +++ b/src/kservice.c @@ -77,6 +77,20 @@ rt_weak void rt_hw_cpu_reset(void) return; } +rt_weak void rt_hw_cpu_shutdown(void) +{ + rt_base_t level; + LOG_I("CPU shutdown..."); + LOG_W("Using default rt_hw_cpu_shutdown()." + "Please consider implementing rt_hw_cpu_reset() in another file."); + level = rt_hw_interrupt_disable(); + while (level) + { + RT_ASSERT(RT_NULL); + } + return; +} + rt_weak const char *rt_hw_cpu_arch(void) { return "unknown";