[应用相关] RT——Thread 疑问

[复制链接]
 楼主| 一路向北lm 发表于 2018-10-24 19:16 | 显示全部楼层 |阅读模式
本帖最后由 一路向北lm 于 2018-10-24 19:23 编辑

看火哥的书目前第六章已经快完了,这里有几个疑惑?1.汇编文件context_rvds.S中 需要导入rt_hw_hard_fault_exception函数,目前这个函数还没有写,现在汇编文件中将其注释。

3.PNG


4.PNG

仿真出来的波形如下:
捕获.PNG

不知道这样会有什么影响吗?
 楼主| 一路向北lm 发表于 2018-10-24 19:25 | 显示全部楼层
打开了火哥移植好的测试程序,在rthw.h文件中找到了rt_hw_hard_fault_exception 函数 定义如下:
  1. void rt_hw_hard_fault_exception(struct exception_info * exception_info)
  2. {
  3.     extern long list_thread(void);
  4.     struct stack_frame* context = &exception_info->stack_frame;

  5.     if (rt_exception_hook != RT_NULL)
  6.     {
  7.         rt_err_t result;

  8.         result = rt_exception_hook(exception_info);
  9.         if (result == RT_EOK)
  10.             return;
  11.     }

  12.     rt_kprintf("psr: 0x%08x\n", context->exception_stack_frame.psr);

  13.     rt_kprintf("r00: 0x%08x\n", context->exception_stack_frame.r0);
  14.     rt_kprintf("r01: 0x%08x\n", context->exception_stack_frame.r1);
  15.     rt_kprintf("r02: 0x%08x\n", context->exception_stack_frame.r2);
  16.     rt_kprintf("r03: 0x%08x\n", context->exception_stack_frame.r3);
  17.     rt_kprintf("r04: 0x%08x\n", context->r4);
  18.     rt_kprintf("r05: 0x%08x\n", context->r5);
  19.     rt_kprintf("r06: 0x%08x\n", context->r6);
  20.     rt_kprintf("r07: 0x%08x\n", context->r7);
  21.     rt_kprintf("r08: 0x%08x\n", context->r8);
  22.     rt_kprintf("r09: 0x%08x\n", context->r9);
  23.     rt_kprintf("r10: 0x%08x\n", context->r10);
  24.     rt_kprintf("r11: 0x%08x\n", context->r11);
  25.     rt_kprintf("r12: 0x%08x\n", context->exception_stack_frame.r12);
  26.     rt_kprintf(" lr: 0x%08x\n", context->exception_stack_frame.lr);
  27.     rt_kprintf(" pc: 0x%08x\n", context->exception_stack_frame.pc);

  28.     if(exception_info->exc_return & (1 << 2) )
  29.     {
  30.         rt_kprintf("hard fault on thread: %s\r\n\r\n", rt_thread_self()->name);

  31. #ifdef RT_USING_FINSH
  32.         list_thread();
  33. #endif /* RT_USING_FINSH */
  34.     }
  35.     else
  36.     {
  37.         rt_kprintf("hard fault on handler\r\n\r\n");
  38.     }

  39. #ifdef RT_USING_FINSH
  40.     hard_fault_track();
  41. #endif /* RT_USING_FINSH */

  42.     while (1);
  43. }


caijie001 发表于 2018-10-29 14:09 | 显示全部楼层
打印一写信息
stm32jy 发表于 2018-10-29 18:45 | 显示全部楼层
汇编学的不是很好,目前也正在看rtt的书
stm32jy 发表于 2018-10-29 18:45 | 显示全部楼层
我是先看后一章
stm32jy 发表于 2018-10-29 18:45 | 显示全部楼层
再回头看第一章的
stm32jy 发表于 2018-10-29 18:46 | 显示全部楼层
先看内核怕理解不了,也是很烦躁
stm32jy 发表于 2018-10-29 18:46 | 显示全部楼层
先跑一下RTT再来学好多了
paotangsan 发表于 2018-11-6 14:54 | 显示全部楼层
对于汇编语言和C语言的融合 一直小白状态
您需要登录后才可以回帖 登录 | 注册

本版积分规则

293

主题

3837

帖子

81

粉丝
快速回复 在线客服 返回列表 返回顶部

293

主题

3837

帖子

81

粉丝
快速回复 在线客服 返回列表 返回顶部