fanxsp 发表于 2024-5-8 10:27:01

奇怪了,你的优化等级?

tzz1983 发表于 2024-5-8 10:31:19

fanxsp 发表于 2024-5-8 10:27
奇怪了,你的优化等级?

8级, 我刚才试了一下 变量类型 char, 更加不对付

fanxsp 发表于 2024-5-8 10:32:55

tzz1983 发表于 2024-5-8 10:13
不一样的,==0 因为是整形变量, 会用JZJNZCJNE   ADD,0XFF 等手段
你看一下编译结果:



奇怪了,和优化等级也没关系啊

tzz1983 发表于 2024-5-8 10:33:45

fanxsp 发表于 2024-5-8 10:32
奇怪了,和优化等级也没关系啊

那不管它了吧

fanxsp 发表于 2024-5-8 10:45:29

tzz1983 发表于 2024-5-8 10:33
那不管它了吧

好吧,最好是,能找一下原因,你刚才的编译结果是 51 还是 251?

CosyOS 发表于 2024-5-8 10:45:55

杨为民 发表于 2024-5-8 09:36
很多现有的 RTOS,都是墨守陈规,一致采取了 古老的 临界区保护技术(关闭总中断),
并未吸取 Arm 为 OS ...

杨老师,我并没有指名道姓说谁是墨守陈规。

tzz1983 发表于 2024-5-8 10:56:50

fanxsp 发表于 2024-5-8 10:45
好吧,最好是,能找一下原因,你刚才的编译结果是 51 还是 251?

编译了你的代码演示1


结果, 无论是SRC, 还是访真窗口的反汇编都是一样的结果:




CosyOS 发表于 2024-5-8 11:03:12

本帖最后由 CosyOS 于 2024-5-8 12:00 编辑

杨为民 发表于 2024-5-8 10:20
你在168楼说:“Keil 在此基础上进一步发展出了新一代的 OS模型,可实现“零中断延迟”。”

你在169楼说 ...
Keil RTX 4/5 是完全继承并发展了 Arm 对 OS 的设计思想,
其它许多 RTOS 都仅是部分借鉴,如在 PendSV 中切换任务。

如何知道是否是完全继承 ?
一是看:大部分内核服务 是否都是通过 SVC、PendSV,来间接执行?
二是看:任务是否可以运行在 “用户级” ?而不是 “特权级” !

CosyOS-II 也仅是部分借鉴了 Arm 的思想,所以 “很多现有的RTOS” 也包括 CosyOS 在内。

1、我敢说,大部分 RTOS 在 Cortex-M 中,都未使用 SVC 来间接执行服务,
   即使使用了 PendSV,也仅是用于任务调度/切换;
2、我敢说,大部分 RTOS 在 Cortex-M 中,任务都只能运行在 “特权级”,而无法运行在 “用户级”;

这些在 “新思想” 中,都是不符合 “安全关键” 的,也就是说,
从“新思想”的角度来看,都是不安全的。
当然,上述的 “大部分 RTOS” 也包括 CosyOS 在内。
所以,CosyOS 也是在 “墨守陈规”。

关于 Arm 对 OS 的设计思想,是否先进、好还是不好,暂且不论。
但是,真正的继承了该思想的 RTOS,除了 RTX 外,恐怕是少而又少。



fanxsp 发表于 2024-5-8 11:08:24

本帖最后由 fanxsp 于 2024-5-8 11:13 编辑

tzz1983 发表于 2024-5-8 10:56
编译了你的代码演示1



奇怪了,版本是一样的,应该是和版本没有关系,我之前用的 5.6的,结果也是DJNZ, 有空的时候,我再试试

fanxsp 发表于 2024-5-8 11:43:05

tzz1983 发表于 2024-5-8 10:56
编译了你的代码演示1




昨天我仔细梳理了一下,上下文切换,不关总中断,只关PendSV, 应该是可以的,要做个程序测试一下,你也是这样处理的吗?
页: 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28
查看完整版本: 原创极简的51-MCU专用RTOS TinyRTOS51