迪文科技论坛

 找回密码
 立即注册
搜索
查看: 318|回复: 5

【提问】T5L中断优先级的问题

[复制链接]

4

主题

37

回帖

201

积分

中级会员

Rank: 3Rank: 3

积分
201
发表于 2023-9-15 16:19:47 | 显示全部楼层 |阅读模式
资料上说:



这个中断,虽然迪文官方不建议使用嵌套,但我有其它要求需要确定底层的逻辑。
从我个人的经验来看,系统12个中断的默认优先级,恐怕是“查询优先级”,真正的嵌套优先级由IP1+IP0来确定,只有4级。

PS:所谓“中断优先级”指的是:当两个相同嵌套优先级的中断同时产生(最典型的例子是在一个高优先级的中断产生并且在执行中断service程序时又产生了两个低优先级的中断,高优先级程序退出的瞬间),优先执行哪一个。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

4

主题

37

回帖

201

积分

中级会员

Rank: 3Rank: 3

积分
201
 楼主| 发表于 2023-9-15 16:25:16 | 显示全部楼层
我想知道这个中断优先级的主要原因有两个:
第一个是:using 关键字(DDDD)
第二个是:中断服务程序中 EA=0 + EA=1是否必要
回复

使用道具 举报

4

主题

37

回帖

201

积分

中级会员

Rank: 3Rank: 3

积分
201
 楼主| 发表于 2023-9-16 12:25:43 | 显示全部楼层
有没有迪文内部资深老鸟来解答一下?我问自己的FAE,他明确表示自己不确定。
回复

使用道具 举报

15

主题

112

回帖

1724

积分

金牌会员

Rank: 6Rank: 6

积分
1724
发表于 2023-9-20 13:18:29 | 显示全部楼层
幽游梦蝶 发表于 2023-9-16 12:25
有没有迪文内部资深老鸟来解答一下?我问自己的FAE,他明确表示自己不确定。 ...

中断中EA=0+EA=1,可以开启,执行指令的速度是足够快的。
回复

使用道具 举报

4

主题

37

回帖

201

积分

中级会员

Rank: 3Rank: 3

积分
201
 楼主| 发表于 2023-9-20 14:32:47 | 显示全部楼层
cuijia 发表于 2023-9-20 13:18
中断中EA=0+EA=1,可以开启,执行指令的速度是足够快的。

从理论上说,开启 "EA=0" + "EA=1",前后其实还有PUSH/POP的一些动作,也就是说,还是不够安全。

其实我自认为自己的推测八九不离十,但还是想要迪文官方肯定。当然我现在的程序中断中还是加了  "EA=0" + "EA=1" 的。
另外,以前标准的8051只有两级中断,因为8051内核有4组寄存器,我们可以使用 using 这个扩展关键字使得中断程序更快,同级中断可以使用相同的寄存器组。这个我测试没有问题(不过中断调用的函数也必须使用相同的寄存器组),但因为怕其他小弟在我程序的基础上加东西不小心引起bug最后就删除掉了。
回复

使用道具 举报

0

主题

1245

回帖

5074

积分

论坛元老

Rank: 8Rank: 8

积分
5074
发表于 2023-9-27 09:22:36 | 显示全部楼层
感谢分享
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-5-24 01:57 , Processed in 0.094826 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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