找回密码
 立即注册
楼主: tzz1983

关于"访问"的表达是否准确?

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:432
  • 最近打卡:2025-05-01 16:19:56

5

主题

1127

回帖

4263

积分

荣誉版主

积分
4263
发表于 2023-9-19 15:19:21 | 显示全部楼层
eda*** 发表于 2023-9-19 15:04
这样会改变PSW,会有问题

POP PSW对应PUSH IE,是要把入栈的IE放到PSW里,恢复EA后会再次POP PSW(对应PUSH PSW)。

点评

谢谢  发表于 2023-9-19 16:05
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2023-9-19 15:24:03 | 显示全部楼层
熊*** 发表于 2023-9-19 15:13
不会,PSW,ACC都是可以操作的。判断的时候才用到。

之前想到过,PSW关系到寄存器组, 这里用的都是DRx, 应该没有问题,暂不确定, 先搁置.
用在别的地方就没有仔细研究,我现在不知道非兼容51模式下, 会不会用到寄存器组这个概念, 你去研究吧, 哈哈
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:432
  • 最近打卡:2025-05-01 16:19:56

5

主题

1127

回帖

4263

积分

荣誉版主

积分
4263
发表于 2023-9-19 15:25:12 | 显示全部楼层
1、关于中断响应的细节可以研究,但不要过分依赖,正所谓人算不如天算。我们应尽量采用100%可靠的方法,如JBC指令。
2、我也认为不会有人会在中断中关闭中断,而后不再开启,如果有也是忘了开启。然而我们不必过于纠结这一点@熊仔,

JBC原子指令要做的事情就是条件判断与执行分支不可分割。如果不是EA,换做是一个事件标志,
在任务和中断中都会查询这个事件标志来执行,如果不用JBC指令就会有出问题的机会。
3、我认为先读EA,再写EA还是可以被打断的,原因是读EA不是特殊指令,读EA之前的指令为当前指令时。





点评

按照STC最新出的流程图,不会出问题。除非他们出的图有问题。 按照传统8051,肯定有问题。  详情 回复 发表于 2023-9-19 15:47
EA算的, 之前我测试时一同试过. 也同意你的说法, 有时候就是想弄清楚机制, 不一定采用, 最好的办法肯定是通用的办法, 换个机器也行那是最好的  发表于 2023-9-19 15:47
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2023-9-19 15:32:26 | 显示全部楼层
手上东西出BUG, 时好时不好, 唉呀, 愁死我了, 4天了, 还没找出来, , 就怕这种时好时坏的东西, 要么死透了, 总归有个死的点可以找到, 这种半死不活的太愁了
回复 支持 反对

使用道具 举报 送花

11

主题

340

回帖

929

积分

荣誉版主

积分
929
发表于 2023-9-19 15:47:56 | 显示全部楼层
本帖最后由 熊仔 于 2023-9-19 15:53 编辑
Cos*** 发表于 2023-9-19 15:25
1、关于中断响应的细节可以研究,但不要过分依赖,正所谓人算不如天算。我们应尽量采用100%可靠的方法,如J ...

3、我认为先读EA,再写EA还是可以被打断的,原因是读EA不是特殊指令,读EA之前的指令为当前指令时。
按照STC最新出的流程图,不会出问题。除非他们出的图有问题。
按照传统8051,肯定有问题。

当前:     MOV C,EA
下一条 : CLR EA
截图202309191553005549.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:432
  • 最近打卡:2025-05-01 16:19:56

5

主题

1127

回帖

4263

积分

荣誉版主

积分
4263
发表于 2023-9-19 16:28:38 | 显示全部楼层
本帖最后由 CosyOS 于 2023-9-19 16:39 编辑

20230919_01.jpg

当前指令:MOV C, EA 的上一条指令
下一条指令:MOV C, EA
再下一条指令:CLR EA

可见,MOV C, EACLR EA 可被中断,除非 MOV C, EA 的上一条指令为特殊指令





点评

服了, 这个结论正确, 起点不一样, 真的是有太多的想不到了  发表于 2023-9-19 16:41
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2023-9-19 16:42:31 | 显示全部楼层
熊仔, 断了念想了, JBC吧
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2023-9-19 16:51:34 | 显示全部楼层
CosySO真厉害, 有空去拜访你的OS

点评

我只是恰巧想到的  发表于 2023-9-19 16:53
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:432
  • 最近打卡:2025-05-01 16:19:56

5

主题

1127

回帖

4263

积分

荣誉版主

积分
4263
发表于 2023-9-20 10:23:20 | 显示全部楼层
这个问题熊仔的说法也非常有道理,所以真相究竟如何坐等STC的工程师一锤定音。
所以,我的建议就是不要用拿不准的方法,而应该采用100%可靠的方法。

其实不差几个指令周期,RTOS应可靠性第一、性能第二。


回复 支持 反对

使用道具 举报 送花

11

主题

340

回帖

929

积分

荣誉版主

积分
929
发表于 2023-9-21 12:59:18 来自手机 | 显示全部楼层
本帖最后由 熊仔 于 2023-9-21 13:03 编辑

中段发生后能执行两条指令,如果两条都不是特殊指令,那就进入中断服务程序,分析确实能打断。
讨论:是不是只要执行中断能返回的,并且返回来肯定是开中断的,也就是退出中断前必须开中断,这种情况就没问题呢?如果能打断读到的状态是1,返回后也是1,返回后马上执行清零操作。这样分析这种情况貌似是没啥问题的。

我一直认为,中断退出前关闭中断开关的,那是程序员的bug

点评

我认为你的分析是对的,如果有人在中断中EA = 0,那也是临时的关闭,是要保护一段代码,退出中断前会再次开启的,否则也是忘了开启(bug)。如果他忘记了开启,当返回后你又关了中断,最后又恢复原状态(开启),还  详情 回复 发表于 2023-9-21 14:26
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:23 , Processed in 0.144995 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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