diff --git a/libcpu/arm/common/backtrace.c b/libcpu/arm/common/backtrace.c index 59a4d0bf79e48e61e3e0fa30380252e962cc1631..764c0f5e1b728ac2640a57d6fef7af68f79de5bf 100644 --- a/libcpu/arm/common/backtrace.c +++ b/libcpu/arm/common/backtrace.c @@ -42,7 +42,7 @@ void rt_hw_backtrace(rt_uint32_t *fp, rt_uint32_t thread_entry) for(i=0; i<10; i++) { - fp = *(fp - 3); + fp = (rt_uint32_t *)*(fp - 3); pc = *fp ; func_entry = pc - 0xC; diff --git a/libcpu/arm/s3c24x0/cpu.c b/libcpu/arm/s3c24x0/cpu.c index 34ba6b889b07b8b6a2a7f963a37c3790c6104ed7..a9845f4125dba918c9760839847c268281d044b6 100644 --- a/libcpu/arm/s3c24x0/cpu.c +++ b/libcpu/arm/s3c24x0/cpu.c @@ -12,6 +12,7 @@ * 2006-03-13 Bernard first version */ +#include #include #include "s3c24x0.h" @@ -180,7 +181,10 @@ void rt_hw_cpu_shutdown() rt_kprintf("shutdown...\n"); level = rt_hw_interrupt_disable(); - RT_ASSERT(RT_NULL); + while (level) + { + RT_ASSERT(0); + } } /*@}*/