嵌入式RTOS代码底层关键设计

        前言:写在最前面

        其实RTOS的精华在于上层,像线程管理、时钟管理、中断管理、任务间通信管理与内存管理 。一般嵌入式的内存都不是特别大,所以嵌入式的RTOS的内存管理设计的都比较简陋。而上层的设计多个操作系统之间其实区别不大,多一点少一点的,核心的东西都没有变。而RTOS一般有一部代码是用汇编设计的,一般是指任务切换,任务的初始化等等,我觉得这是我们学RTOS必须要自己掌握的一门东西,这部分涉及到你对内核架构的了解,了解这一部分后你才能自己游刃有余的去移植一个操作系统。

        我准备以CORTEX-M0为代表,结合CORTEX-M0的文档,再结合rt-thread这个国产操作系统为例,详细讲解每一段关键部分的代码。为什么操作系统比较占内存,怎样去获取任务中内存占用的大小。可剥夺的os和不可剥夺的os,不可剥夺的OS可以占用极少的内存,如何设计程序才能减少任务栈的使用等等,这一系列的东西其实有连贯能够讲明白的。

        底层代码关键:任务切换

        其实任务切换很简单,你可以想像一下中断,其实中断本身就是一个任务切换。不过这个过程是mcu自动完成的,发生中断->保留现场->获取断点地址->执行中断任务->恢复现场->继续中断前的任务。其实就是这么一个回事,而所谓的保留现场都是要保留什么呢,这个真得借用ucos那个创始人,就是不停保留寄存器和恢复寄存器吗。???是不是一下明白了,其实就是如此,所谓的现场对于cortex-m0来说,不就是r0-r15吗,没错吧。但是一般中断是自动完成的,所以我们要非常熟中断时到底发生了什么,才能模仿这个过程来设计任务切换。

        这会23点了,体检结果不好,明天再更。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值