|
RT-Thread 作为第一个成熟的国产RTOS,很自然的就成为中国一颗闪闪的红星。毕竟,对于操作系统软件,中国是有很多痛点的,对于RTOS的发展是国内所希望看到的,所以,相信今后使用RT-Thread的中国用户的会越来越多,会逐渐替代像uC/OS,Free-RTOS等,另外,RT-Thread操作系统软件不仅开源,而且遵循的是GPLv2+许可证,实时操作系统内核以及所有开源组件可以免费在商业产品使用,而不需要公布应用程序源码,没有商业风险。对于电子专业的大学生或者从事电子行业的工程师来说,学好RT-Thread就很符合实际需要。 首先我们来讲一下RTOS,RTOS(Real Time Operating System),顾名思义,就是实时操作系统,就得同时要具备实时的意义和操作系统的功能,所谓实时,实时是指物理进程的真实时间。实时操作系统是指具有实时性,能支持实时控制系统工作的操作系统。其首要任务是调度一切可利用的资源完成实时控制任务,其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制和要求。 《RT-Thread内核实现与应用开发实战指南》是一本关于国产rtos的技术书籍,全书分两部分,第一部分解析RTOS原理以及分析RT-Thread源码,学完这部分,基本就对RTOS有了一个全局的框架,就能了解什么是任务、临界段、任务优先级、任务的切换,信号量、邮箱等等,对于这些从概念到代码怎么实现也基本掌握的七七八八了,这里强调一下,对于别的RTOS来说,实现的方式基本都是类似的,学完RT-Thread第一部分,你再去看别的RTOS的书籍,是非常容易上手的,笔者之前是认真学习过邵贝贝老师翻译的uC/OS书,所以对这一点深有感悟。当然我们学习一个RTOS的主要目标是使用它,原理的东西,个人觉得理解就好,没必要每一个学者都去自己跟着写出一个RTOS出来,这一点对于RT-Thread也是一样的。当你过完第一部分之后,就可以开始认真的学习第二部分了,强烈建议将《RT-Thread内核实现与应用开发实战指南》第二部分的内容亲自动手操作一遍,这样才能真正掌握RT-Thread的移植和使用。 以上就是笔者对于RTOS、RT-Thread、以及《RT-Thread内核实现与应用开发实战指南》这本书的一些简陋的看法,希望对于学习RTOS的朋友有一点帮助。下面我来分享一下对于临界区代码的原理。这里我们就需要理解一下什么是临界段以及临界段什么时候会被使用。 临界段,书中的定义是:一段在执行的时候不能被中断的代码段。那么什么时候才会用到临界段呢,以下举两个栗子进行说明:1.对于全局变量的操作,全局变量就是大家都可以操作的变量,当一个函数对它进行操作时,有时候是不允许其他任务或中断对它进行操作的,不然就会造成混乱的情况,就不知道到底是谁修改了这个变量,也不知道当前的变量值对于当前任务来说是否还有意义。2.当你进行一项通信任务时,比如说模拟的一个完整的IIC时序,如果你在时序中间被中断,mcu跑去执行其他的任务,这样就必然会打断当前的IIC时序,导致IIC通信失败,这里就必须在IIC开始之前关闭中断,当通信完成之后,你才能打开中断,也就是一个临界段。 临界段如何实现,从上一段中,我们基本可以知道,临界段就是通过关开中断来实现的,在RT-Thread中定义了两个函数 关中断函数:rt_hw_interrupt_disable(); 开中断函数:rt_hw_interrupt_disable(); 这两个函数内部都是使用汇编语言编写,为的是快速执行开关中断动作,从而保证系统的实时性,基本就是操作mcu的开关中断的总的寄存器位,这一点在所有的mcu移植中都是这个原理 临界段的使用,这个就是很简单的,调用关中断函数-->临界段代码-->调用开中断函数 /* 临界段代码 */ { /* 临界段开始 */ rt_hw_interrupt_disable(); { /* 用户要执行的不希望被中断操作的代码*/ } /* 临界段结束 */ rt_hw_interrupt_disable(); } 本次关于RT-Thread的一些粗陋讲解就到这里了,有兴趣的可以看我以后的分享。 RT-Thread是一个非常好用的RTOS,未来大有可为,工程师以及大学生们可以抓紧学习 |
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
【银杏科技ARM+FPGA双核心应用】STM32H7系列56——CAN
【银杏科技ARM+FPGA双核心应用】STM32H7系列25——IWDG
如何在 Vitis 中使用 UIO 驱动框架创建简单的 Linux 用户应用
STM32 IAP应用中的几个常见问题
TFT LCD 控制接口FSMC/LTDC/DSI 应用文档
介绍FreeRTOS基础及其应用
【银杏科技ARM+FPGA双核心应用】STM32H750福利
微信公众号
手机版
谢谢支持