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

原创极简的51-MCU专用RTOS TinyRTOS51

  [复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-05-01 14:43:21

1

主题

183

回帖

1863

积分

金牌会员

积分
1863
发表于 2024-5-8 10:27:01 | 显示全部楼层
奇怪了,你的优化等级?

点评

8级, 我刚才试了一下 变量类型 char, 更加不对付  详情 回复 发表于 2024-5-8 10:31
回复 支持 反对

使用道具 举报 送花

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

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-5-8 10:31:19 | 显示全部楼层
fan*** 发表于 2024-5-8 10:27
奇怪了,你的优化等级?

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-05-01 14:43:21

1

主题

183

回帖

1863

积分

金牌会员

积分
1863
发表于 2024-5-8 10:32:55 | 显示全部楼层
tzz1*** 发表于 2024-5-8 10:13
不一样的,==0 因为是整形变量, 会用JZ  JNZ  CJNE   ADD,0XFF 等手段
你看一下编译结果:

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

点评

那不管它了吧  详情 回复 发表于 2024-5-8 10:33
回复 支持 反对

使用道具 举报 送花

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

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-5-8 10:33:45 | 显示全部楼层
fan*** 发表于 2024-5-8 10:32
奇怪了,和优化等级也没关系啊

那不管它了吧
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-05-01 14:43:21

1

主题

183

回帖

1863

积分

金牌会员

积分
1863
发表于 2024-5-8 10:45:29 | 显示全部楼层

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

点评

编译了你的代码演示1 结果, 无论是SRC, 还是访真窗口的反汇编都是一样的结果: [attachimg]43449[/attachimg] [attachimg]43450[/attachimg]  详情 回复 发表于 2024-5-8 10:56
我去编一下你的代码试一下  发表于 2024-5-8 10:48
51的  发表于 2024-5-8 10:47
回复 支持 反对

使用道具 举报 送花

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

5

主题

1127

回帖

4263

积分

荣誉版主

积分
4263
发表于 2024-5-8 10:45:55 | 显示全部楼层
杨*** 发表于 2024-5-8 09:36
很多现有的 RTOS,都是墨守陈规,一致采取了 古老的 临界区保护技术(关闭总中断),
并未吸取 Arm 为 OS ...

杨老师,我并没有指名道姓说谁是墨守陈规。
回复 支持 反对

使用道具 举报 送花

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

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-5-8 10:56:50 | 显示全部楼层
fan*** 发表于 2024-5-8 10:45
好吧,最好是,能找一下原因,你刚才的编译结果是 51 还是 251?

编译了你的代码演示1


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

666.JPG

回复 支持 反对

使用道具 举报 送花

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

5

主题

1127

回帖

4263

积分

荣誉版主

积分
4263
发表于 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 中切换任务。


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


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


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

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

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



点评

要不你也把你的“零中断延迟”的M3/M4上的CosyOS-II的测试程序也放上来,和我移植的uC/OS-II比较一下? 不争RTX4/5的理念和方法是不是创新,不争别人的RTOS是不是“墨守成规”。 只具体比较一下你的CosyOS-II是否实  详情 回复 发表于 2024-5-8 12:12
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-05-01 14:43:21

1

主题

183

回帖

1863

积分

金牌会员

积分
1863
发表于 2024-5-8 11:08:24 | 显示全部楼层
本帖最后由 fanxsp 于 2024-5-8 11:13 编辑
tzz1*** 发表于 2024-5-8 10:56
编译了你的代码演示1

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-05-01 14:43:21

1

主题

183

回帖

1863

积分

金牌会员

积分
1863
发表于 2024-5-8 11:43:05 | 显示全部楼层
tzz1*** 发表于 2024-5-8 10:56
编译了你的代码演示1

昨天我仔细梳理了一下,上下文切换,不关总中断,只关PendSV  , 应该是可以的,要做个程序测试一下,你也是这样处理的吗?

点评

但是还是得实践,我对你的代码也不是很熟悉,你是用链来处理优先级的,这个PendSV和高优中断就可能有交叉访问,实际上访问核心全局变是时还是得关中断,只是搬运的时候可以免  详情 回复 发表于 2024-5-8 12:05
我是任务级也在PendSV里切换,所以不存在切换重入,也不存在关PendSV. 我没有你做的效率那么高, 就是不管任务级还是中断级, 都会全寄存器入栈,统一处理 这样的好处是代码不用搞几份,缺点是牺牲了一些效率, 所  详情 回复 发表于 2024-5-8 11:57
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 13:23 , Processed in 0.307602 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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