【全文大纲】 : https://blog.youkuaiyun.com/Engineer_LU/article/details/135149485
1 . 注意
-
有Boot与App之分时,就要考虑中断偏移,而51核的中断偏移可以由C51设置里的interrput vectors at address设置偏移量;

-
若上述 interrput vectors at address 偏移为0x0000, 而A51里又想手动定位跳转到App的中断地址,那么会造成一种地址冲突,上图的 interrput vectors at address 设置意思是把真实定义的interrupt中断服务函数定在前面固定的地址上进行跳转,而下图这里又希望强行固定指向跳转,那么编译器会以第一种作为最高优先级,从而形成最后一张图的结果

- 下图可看到0x001B处指令本该是02101B, 但实际变成 020DF8, 说明被图一设置优先设定,因此若是按这章做法设置中断偏移,那么需要A51 ORG手动偏移地址 和 interrput vectors at address 偏移量设成一样,那么前面固定部分会区分开,从而避免以上问题

2 . 总结
上图可看到0x001B处指令本该是02101B, 但实际变成 020DF8, 说明被图一设置优先设定,因此若是按这章做法设置中断偏移,那么需要A51 ORG手动偏移地址 和 interrput vectors at address 偏移量设成一样,那么前面固定部分会区分开,从而避免以上问题
interrput vectors at address : 将实际的中断服务函数入口地址映射到x地址上跳转
A51 里 ORG定位 : 重新改变跳转指向
例如当51核芯片产生中断,会自动跳到0x03,0x0B, 0x13等地址,然后执行该地址的数据时,首先考虑 interrput vectors at address 的设置,然后才是A51 里 ORG定位。
技术交流群 : 745662457
群内专注 - 问题答疑,技术研究
685

被折叠的 条评论
为什么被折叠?



