- 首先说下我对嵌入式系统的理解,常用工控,物联网嵌入式操作系统90%时间都是空闲状态,剩下时间需要即时响应外部输入事件;如:IO外部输出,通信口数据输入等。对于这些原始数据的流向链路:硬件驱动采集-》源数据-》发布消息事件-》系统响应,分发消息给应用层订阅者-》处理数据-》执行决策【展示数据/运动控制等】。这个模型下我们思考整个系统模块间实现高聚合,低耦合最少需要定时器任务和消息事件两个组件。这两个组件使用更为安全的静态内存数组方式进行分配,根据不同底层芯片ram大小扩展。
- 定时器任务分为周期性任务和单次任务,使用系统tick时钟中断更新定时器任务计数器;并且具备任务状态包括:就绪态,挂起态,执行态,退出态。当若干个任务定时器触发超时机制,排序在数组前面的任务先执行【即拥有最高优先级,把系统最重要任务排在前面】。支持创建任务,删除任务,挂起任务,唤醒任务,设置超时时间。
- 消息事件支持订阅事件,发布事件,取消发布事件,屏蔽非关键事件【定制化开发】
4.使用例子
开源代码链接:jiaqiang.Li/stm32-task-timer-event - 码云 - 开源中国 (gitee.com)