野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7138|回复: 3

RTT 问题,关于rt_hw_hard_fault_exception 函数

[复制链接]
发表于 2018-10-24 19:28:52 | 显示全部楼层 |阅读模式
看火哥的书目前第六章已经快完了,这里有个疑惑?汇编文件context_rvds.S中 需要导入rt_hw_hard_fault_exception函数,目前这个函数还没有写,现在汇编文件中将其注释。
3.PNG

4.PNG

仿真出来的波形如下:


捕获.PNG
不知道这样会有什么影响吗?


打开了火哥移植好的测试程序,在rthw.h文件中找到了rt_hw_hard_fault_exception 函数 定义如下:


[mw_shl_code=c,true]void rt_hw_hard_fault_exception(struct exception_info * exception_info)
{
    extern long list_thread(void);
    struct stack_frame* context = &exception_info->stack_frame;

    if (rt_exception_hook != RT_NULL)
    {
        rt_err_t result;

        result = rt_exception_hook(exception_info);
        if (result == RT_EOK)
            return;
    }

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

    rt_kprintf("r00: 0x%08x\n", context->exception_stack_frame.r0);
    rt_kprintf("r01: 0x%08x\n", context->exception_stack_frame.r1);
    rt_kprintf("r02: 0x%08x\n", context->exception_stack_frame.r2);
    rt_kprintf("r03: 0x%08x\n", context->exception_stack_frame.r3);
    rt_kprintf("r04: 0x%08x\n", context->r4);
    rt_kprintf("r05: 0x%08x\n", context->r5);
    rt_kprintf("r06: 0x%08x\n", context->r6);
    rt_kprintf("r07: 0x%08x\n", context->r7);
    rt_kprintf("r08: 0x%08x\n", context->r8);
    rt_kprintf("r09: 0x%08x\n", context->r9);
    rt_kprintf("r10: 0x%08x\n", context->r10);
    rt_kprintf("r11: 0x%08x\n", context->r11);
    rt_kprintf("r12: 0x%08x\n", context->exception_stack_frame.r12);
    rt_kprintf(" lr: 0x%08x\n", context->exception_stack_frame.lr);
    rt_kprintf(" pc: 0x%08x\n", context->exception_stack_frame.pc);

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

#ifdef RT_USING_FINSH
        list_thread();
#endif /* RT_USING_FINSH */
    }
    else
    {
        rt_kprintf("hard fault on handler\r\n\r\n");
    }

#ifdef RT_USING_FINSH
    hard_fault_track();
#endif /* RT_USING_FINSH */

    while (1);
}[/mw_shl_code]






回复

使用道具 举报

发表于 2018-10-25 08:42:20 | 显示全部楼层
注释掉的话,产生硬件中断的时候不会调用这个函数,然后查bug就没这么方便
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-25 10:22:07 | 显示全部楼层
flyleaf 发表于 2018-10-25 08:42
注释掉的话,产生硬件中断的时候不会调用这个函数,然后查bug就没这么方便

只看到了第六章,后面把rt_hw_hard_fault_exception() 函数补充完整后,再取消也可以,现在还看不懂这个函数。按着火哥节奏一步步来。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-25 10:22:31 | 显示全部楼层
flyleaf 发表于 2018-10-25 08:42
注释掉的话,产生硬件中断的时候不会调用这个函数,然后查bug就没这么方便

谢谢了哈
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-20 07:32 , Processed in 0.032030 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表