- 打卡等级:初来乍到
- 打卡总天数:5
- 最近打卡:2025-04-30 07:46:22
荣誉版主
- 积分
- 2319
|
发表于 2024-5-6 21:10:38
|
显示全部楼层
本帖最后由 tzz1983 于 2024-5-6 21:12 编辑
你的需求, 是比较合适用 RTOSTiny, RTOSTiny基本上已经把51压榨到了极限, 切换效率很高的.
作者说只用协作式时, 代码仅850字节左右. 开抢占时, 也就1K多代码.
别被RTOS吓到, 那么多的C文档, 想当然就会以为很大,
其实, 通过适当的裁剪以后, 不太的, 也不会占用很多资源.
关键是它好用呀, 就像你说的, 用一个OSTimeDly() 代替无效的 _nop_()循环, 可以节省多少资源?
再者就是这个任务断点继续, 比起祼机的状态机, 不要舒服太多, 习惯了跟本就放不下!
小型RTOS都不会占用太多的资源, 我用数据来说明一下RTOS的资源占用情况:
uC/OS:
仅用基本功能时也就5KB左右的代码, 对于64KB的51机型来说, 毫无压力.
DATA=30, XDATA=1K左右, 对于8K的51机型来说也没有压力.
OS自身的CPU占用率, 合理的设置可以降低到 1%以内.
RTOSTiny:
我编译了一下例程: CODE=1404 DATA=42 XDATA=63 这么低的RTOS还有谁?
相信CosyOS只用基本功能时代码量也不高, 否则那就是裁剪做的不够到位.
因为他的代码开了很多测试功能, 我没有去尝试.
当然了, 不论多少, RTOS总会一些资源占用, 如果说小鱼小虾也是肉的话, 那就不怎么好跟话了.
总结, 当你真的了解RTOS后, 就是发现, RTOS的弊端跟本不是什么占用资源.
RTOS最大的弊端就是比祼机的入门门槛稍高了些,需要一定的时间去理解和熟悉!
|
|