|
@@ -60,25 +60,25 @@ rt_uint32_t rt_thread_switch_interrupt_flag;
|
|
|
*
|
|
|
* @return stack address
|
|
|
*/
|
|
|
-rt_uint8_t *rt_hw_stack_init(void *tentry,
|
|
|
- void *parameter,
|
|
|
+rt_uint8_t *rt_hw_stack_init(void *tentry,
|
|
|
+ void *parameter,
|
|
|
rt_uint8_t *stack_addr,
|
|
|
- void *texit)
|
|
|
+ void *texit)
|
|
|
{
|
|
|
- struct stack_frame * stack_frame;
|
|
|
- rt_uint8_t * stk;
|
|
|
- unsigned long i;
|
|
|
+ struct stack_frame *stack_frame;
|
|
|
+ rt_uint8_t *stk;
|
|
|
+ unsigned long i;
|
|
|
|
|
|
- stk = stack_addr + sizeof(rt_uint32_t);
|
|
|
- stk = (rt_uint8_t*)RT_ALIGN_DOWN((rt_uint32_t)stk, 8);
|
|
|
+ stk = stack_addr + sizeof(rt_uint32_t);
|
|
|
+ stk = (rt_uint8_t *)RT_ALIGN_DOWN((rt_uint32_t)stk, 8);
|
|
|
stk -= sizeof(struct stack_frame);
|
|
|
|
|
|
stack_frame = (struct stack_frame *)stk;
|
|
|
|
|
|
/* init all register */
|
|
|
- for(i=0; i<sizeof(struct stack_frame)/sizeof(rt_uint32_t); i++)
|
|
|
+ for (i = 0; i < sizeof(struct stack_frame) / sizeof(rt_uint32_t); i ++)
|
|
|
{
|
|
|
- ((rt_uint32_t*)stack_frame)[i] = 0xdeadbeef;
|
|
|
+ ((rt_uint32_t *)stack_frame)[i] = 0xdeadbeef;
|
|
|
}
|
|
|
|
|
|
stack_frame->exception_stack_frame.r0 = (unsigned long)parameter; /* r0 : argument */
|
|
@@ -99,7 +99,7 @@ extern rt_thread_t rt_current_thread;
|
|
|
/**
|
|
|
* fault exception handling
|
|
|
*/
|
|
|
-void rt_hw_hard_fault_exception(struct exception_stack_frame* contex)
|
|
|
+void rt_hw_hard_fault_exception(struct exception_stack_frame *contex)
|
|
|
{
|
|
|
rt_kprintf("psr: 0x%08x\n", contex->psr);
|
|
|
rt_kprintf(" pc: 0x%08x\n", contex->pc);
|
|
@@ -111,8 +111,10 @@ void rt_hw_hard_fault_exception(struct exception_stack_frame* contex)
|
|
|
rt_kprintf("r00: 0x%08x\n", contex->r0);
|
|
|
|
|
|
rt_kprintf("hard fault on thread: %s\n", rt_current_thread->name);
|
|
|
+
|
|
|
#ifdef RT_USING_FINSH
|
|
|
list_thread();
|
|
|
#endif
|
|
|
+
|
|
|
while (1);
|
|
|
}
|