发新帖我要提问
12
返回列表
打印

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

[复制链接]
楼主: bigfacecat
手机看帖
扫描二维码
随时随地手机跟帖
21
bigfacecat|  楼主 | 2009-11-4 21:35 | 只看该作者 回帖奖励 |倒序浏览
因为我文件是用汇编写的,是从ARM7移植过来的
所以没有转为C的形式

使用特权

评论回复
22
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 *);

使用特权

评论回复
23
bigfacecat|  楼主 | 2009-11-25 11:13 | 只看该作者
非常感谢,可惜我的分数分完了,呵呵,下次看到你多给你分数:)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则