q515949148 发表于 2024-9-25 22:07:46

如何将汇编中断处理函数直接放在中断向量区?

之前调试的时候,偶然发现,keil在编译时,可以将非常短的函数实现,放置到未使用的中断向量区,用于节约空间。
那么,对于某些高速场景,非常短的中断处理函数,可以直接写到中断向量区,节约一条jmp的时间。还可以手动控制pop/push
当然,主体代码还是用C写的。
这边想咨询下,如何将汇编中断处理函数直接放在中断向量区?目前我这边是在keil编译完成后,手动把机器码写到hex里实现的,非常麻烦。
用keil或者sdcc都行。。。

晓飛飛 发表于 2024-9-25 22:54:57

这个“短”是相对的,如果有相邻的两个中断,那很容易受到影响。非要这样做也简单,直接混编或者直接建个汇编文件,里面用ORG定义到中断向量地址即可。

q515949148 发表于 2024-9-27 08:40:05

晓飛飛 发表于 2024-9-25 22:54
这个“短”是相对的,如果有相邻的两个中断,那很容易受到影响。非要这样做也简单,直接混编或者直接建个汇 ...

试过使用汇编文件了,keil会报错提示与中断向量区重叠了。

ketly 发表于 2024-10-1 09:16:16

c51不是也可以绝对定位代码段吗?
页: [1]
查看完整版本: 如何将汇编中断处理函数直接放在中断向量区?