硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1034|回复: 7
收起左侧

关于RTOS任务设计的一些疑惑

[复制链接]

1

主题

3

回帖

6

积分

新手上路

积分
6
发表于 2024-10-14 10:53:25 | 显示全部楼层 |阅读模式
最近搞完量产了一个项目,就是笔记本电脑的EC(不是X86的,是国产的Arm处理器的,CPU厂家有提供Demo代码,但是由于PD芯片,充电IC代码闭源且公司考虑成本更换了,以及扯皮无交接,不得不自己编写),自认为搞的一般。

大概讲一下任务模块,大概有3个部分,电源管理,键盘扫描,BIOS I2C-HID通信(包括108键键盘扫描,BIOS信息获取和IAP升级)。
任务一,BIOS消息处理,这里是硬件IIC SLAVE 接受完成后copy rxbuf,发送信号量触发。根据协议内容处理后copy txbuf由i2c中断发送,最高优先级6。
任务二,BMS扫描,读取BMS的记电器IC,获取电量和充电状态等内容,优先级2。
任务三,键盘扫描,就是矩阵键盘扫描,获得键值之后拉低一个IO,会触发BIOS来读取键值,触发任务一,优先级1。
任务四,时序控制,消息队列,包括开关机,充电IC(比如适配器接入后过50ms配置充电IC),但是处理时序的时候,只是直接Delay,因为我不知道应该如何在不使用Delay,阻塞其他任务的情况下设计处理时序,属实是菜了。

整体设计我感觉虽然使用了RTOS但是和裸机没有太大区别,相比裸机,任务依赖的改善也只有一点点,望各位大佬不吝赐教提供一点思路,应该如何处理时间周期任务和事件驱动触发任务的关系,
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2024-10-14 11:11:09 | 显示全部楼层
补充一下,这里用的FreeRTOS
回复

使用道具 举报

4

主题

1459

回帖

1471

积分

至尊会员

积分
1471
发表于 2024-10-14 12:30:43 | 显示全部楼层
只能说你的应用场景比较简单,RTOS的优势没有发挥出来。
回复

使用道具 举报

14

主题

260

回帖

302

积分

高级会员

积分
302
发表于 2024-10-14 13:37:33 | 显示全部楼层
你把事件周期任务的周期性触发作为一个事件来触发相关执行不就可以了吗?
这样就统一到事件驱动触发任务架构下了。
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2024-10-14 13:43:40 | 显示全部楼层
zhang0352505 发表于 2024-10-14 13:37
你把事件周期任务的周期性触发作为一个事件来触发相关执行不就可以了吗?
这样就统一到事件驱动触发任务架 ...

用定时器来触发事件吗?确实没想到
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2024-10-14 13:54:05 | 显示全部楼层
morning_enr6U 发表于 2024-10-14 12:30
只能说你的应用场景比较简单,RTOS的优势没有发挥出来。

其实还好,因为整体很多内容我写的比较简化啦,当然总的来说的确不算特别复杂,主要是考虑到后期维护和一些潜在的功能添加,所以用了rtos
回复

使用道具 举报

4

主题

1459

回帖

1471

积分

至尊会员

积分
1471
发表于 2024-10-14 15:51:29 | 显示全部楼层
kkbbDDS 发表于 2024-10-14 13:54
其实还好,因为整体很多内容我写的比较简化啦,当然总的来说的确不算特别复杂,主要是考虑到后期维护和一 ...

回复

使用道具 举报

14

主题

260

回帖

302

积分

高级会员

积分
302
发表于 2024-10-14 18:35:18 | 显示全部楼层
kkbbDDS 发表于 2024-10-14 13:43
用定时器来触发事件吗?确实没想到

对啊,软定时器啊。
架构起来了,rtos比较好维护,不用想场景复杂不复杂。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-13 12:14 , Processed in 0.040815 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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