指定地址跳转后 B指令导致hard fault

[复制链接]
6029|22
 楼主| bigfacecat 发表于 2009-11-4 21:35 | 显示全部楼层
因为我文件是用汇编写的,是从ARM7移植过来的
所以没有转为C的形式
desert_hawk 发表于 2009-11-4 21:59 | 显示全部楼层
int (*func)(void *);


        func = (int (*)(void *))0x8005000;
        
        asm("CPSID I");  /* 关中断 */

        return func(p);
我加了一句关中断,可是跳到0x8005000之后,B指令的执行结果还是hard fault ...
bigfacecat 发表于 2009-11-4 11:38


这不是C吗?只需把"func = (int (*)(void *))0x8005000;"改成"func = API_FUNC_TABLE;"。当然事先要声明一下void API_FUNC_TABLE(void *);
 楼主| bigfacecat 发表于 2009-11-25 11:13 | 显示全部楼层
非常感谢,可惜我的分数分完了,呵呵,下次看到你多给你分数:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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