找回密码
 立即注册
查看: 355|回复: 0

问一下,在众多RTOS中,哪一款占用内存最小?

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-30 15:53:34

7

主题

48

回帖

231

积分

中级会员

积分
231
发表于 2024-5-29 16:43:00 | 显示全部楼层 |阅读模式
我有一个程序,使用的是STC32G12K128芯片,35M频率,程序编译后占用的资源比较多,如下

Program Size: data=13.7 edata+hdata=3737 xdata=7684 const=1609 code=31953
creating hex file from ".\Obj\main"...
".\Obj\main" - 0 Error(s), 12 Warning(s).

edata使用了3737,xdata使用了7684,因为要驱动一个P3.75的LED大屏,35张模组,所以30张模组在xdata在,5张在edata中,以二维数组方式声明的内存

在这种情况下,还能上哪一款实时操作系统呢?

目前来说,刷新1次屏幕的函数需要9ms,那么每秒60HZ的话,需要每16ms执行1次刷新函数,如果刷新函数不到60,则肉眼可见的屏闪,有时虽然频率达到60hz,但有刷新时快时慢也不行,屏也会闪,所以要想屏不闪,必须准时执行该任务!!

有3个任务,执行时间需要4ms,执行间隔100ms左右不影响
有1个任务,执行时间为0~2ms时间不定,间隔必须10ms
还有几个执行时间为0ms的任务,不影响

如果采用普通的 while(1){}的方式来写的话,9+4*3+2=23ms,1000/23=43HZ,明显不够,屏幕1闪1闪的

我目前使用的是官方的至简无错 改进版 调度方案,优先级最高的刷新任务,每16ms执行1次,3个需要4ms的任务,每80ms执行1次,但不是同时执行,也就是说分别计数到25,41,57时执行
虽然 这样改进后,屏幕稳定多了,但是碰到那个10ms间隔的任务就完蛋了,因为必须10ms执行1次,且执行的时间不确定,有时需0ms,有时需1ms,有时需2ms,导致刷新任务偶尔不及时,屏偶尔闪烁

请问这种情况下,有没有一种占用内存在1k左右的抢占式RTOS呢?只要有最简本的抢占式调试就行了,不需要任务间的通信功能。。。
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 18:07 , Processed in 0.114918 second(s), 45 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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