华大单片机m4内核的滴答定时器_微型实时调度内核

792e194c91697ea0faff256f9cb914fa.png

作者曾经有一年的MCS-51单片机裸机编程经验,没有做过项目,主要围绕一块开发板进行功能设想、验证。裸机编程中,可以采用滴答定时器中断维护一个系统时基,很多有关定时处理的程序模块都基于这个时基。

64424de93d146d6efca6eb748ad073e0.png

工作以后在STM32平台上,也一直采用裸机的方式开发,但是随着系统功能越来越复杂,采用裸机组织程序模块逐渐捉襟见肘。

0d64b2ede63250d6a6fc7908a4912470.png

后面引进了一个轻量级的嵌入式实时操作系统FreeRTOS,它是一款微型实时调度内核。引进操作系统和裸机最大的区别或者说优越性可以从以下三点分析:

任务调度器:FreeRTOS的调度器根据优先级进行任务调度,合理分配处理器计算资源,提高系统实时性。在系统中增加任务时比较简单,只要合理设置优先级及解决好任务间的同步和互斥问题即可。然而在裸机编程中,一般采用时间片轮旬的方式执行任务,或者采用状态机,但是随着系统任务的增加,程序设计将越来越复杂,轮旬方式低效,降低系统实时性。状态机或者说顺序执行方式会导致处理器计算压力很大,每次都要把全部任务执行一遍。

770eff19d8a7186fbd8c1960f64628f9.png

内存管理:实时操作系统提供简单的管理内存的方式,对于内存资源可以动态申请和释放。

任务通信:任务和任务之间,中断和任务之间并非完全独立的运行的,它们需要相互通信传递数据。在裸机编程中采用全局变量便可以实现通信,但是在操作系统中采用这种通信方式便会引起并发问题,为此,实时操作系统提供了一系列的通信方式例如消息队列、消息邮箱,他们解决了任务间的并发问题。

1e396bda7407dae1d6adfd434e96a8c4.png

同步和互斥:在中断检测外部事件,然后通知特定任务进行分析处理,用于同步任务。通知方式可以采用二值信号量、计数信号量、任务告知、事件标志组等。互斥是指系统中两个任务或者任务和中断之间不能同时访问内存资源或者某些外设。内核提供了互斥信号量机制用于解决互斥问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值