FreeRTOS与ARM,FPGA概念梳理
本文默认读者是常见的ARM或者FPGA用户,读完本文他们将对FreeRTOS,ARM,FPGA之间的联系有个初步的了解,后续专栏将会推出实际的部署例程。在以下描述中默认你经常与这俩货打交道,但是没用过也没关系,这是比较典型,普适性也较强的内容,看看一定有好处滴。
觉得有用要记得点赞👍喔。
1 FreeRTOS 概念,特征及应用
1.1 概念解释
Free-Real Time Operation System:
Free: 免费,免费,我们最爱。
Real Time Operation System: 实时操作系统
1.2 特征
多任务调度,FreeRTOS系统可以同步运行多个任务,这些任务有三种状态:
a.阻塞状态,又称为等待状态,属于是定时事件或者是由其他任务引起其中断的同步事件;
b.挂起状态,又称为睡眠状态,操作系统无法管理该状态下的任务,除非该任务调用API去唤醒它;
c.就绪状态,任务当前尚未运行但已经具备了被运行的条件,换而言之,随时准备战斗;
在每个FreeRTOS工作过程中,这些同步运行的任务们共同协作,并且共享一些资源来完成使用者所需要的功能[1] 。
2 应用
嵌入式系统,包括了嵌入式软件和嵌入式硬件。
2.1 嵌入式硬件
常规的嵌入式硬件就有FPGA和以ARM架构为核心的像STM32,GD32这种处理器,当然像手机和MP3这种通常会做ASIC,就是定制化芯片,用来实现你专用的功能。
2.2 嵌入式软件
嵌入式软件呢,根据应用的不同,分为下面几类[2]:
1.基本的传感器数据采集。你给鸡鸭们整个温湿度传感器数据采集电路,这种直接stm32编个程序写个spi,i2c或者串口得了,又不需要你输入鸡和鸭的种类和其他啥复杂操作嘛。
2.娱乐影音。老子要漂亮的界面,给我整个歌曲选择,老子要录音,不够,我还要打游戏和上网!这可得用操作系统啦,像Android/linux这种把界面做的很人性化的操作系统可以搭配上。
3.复杂场景的工业控制。问就是交换机,路由器和移动基站这种复杂的小东西,动不动还要整个用户界面,这种场景下大多用Linux系统,顺便插一句,某城市地铁站台的显示是ubuntu做的。
3 自问自答
为啥会有这个部分捏?
因为有以下部分的疑问
a. 正经人都在比较ARM,DSP,FPGA,嵌入式操作系统算是怎样的存在捏
3.1 我ARM和FPGA编程用的好好的,为什么要部署RTOS?/ARM vs RTOS
1.甲方爹要的很多:
更多更复杂的功能,
还要更专(花)业(哨)的交互界面。
2.完整,能打很多个的系统化应用,可以同步运行多个任务,并且对实时性要求比较高。
下一章节将在Lattice FPGA上部署FreeRTOS系统。
参考文献
[1] 谢鹏程. 基于STM32和FreeRTOS的独立式运动控制器设计与研究[D].华南理工大学,2012.
[2] 任慰. 以实时操作系统为中心的嵌入式系统平台化设计研究[D].华中科技大学,2013.