【百问网智能家居】学习嵌入式,了解裸机与RTOS的开发模式

本人是在假期自学,该博客是为了记录学习过程及一些心得。所以内容可能有些错误,欢迎大家纠正。

一、了解嵌入式学习的基本路线和方向

通过观看百问网的视频,我了解到了嵌入式的发展方向,知道了相关工作的空间及薪资水平,还有学习的参考路线。
【百问网智能家居】学习嵌入式,了解裸机与RTOS的开发模式_第1张图片
裸机方向的难度较低,岗位多,待遇一般;RTOS难度上升,程序复杂而且要求多,岗位也多,待遇高点;linux驱动比较底层一点,需要一定的知识储备,知道如何移植和编写驱动,理解linux驱动框架和部分机制,岗位大多分布在一线城市,待遇也比较高;linux应用就是写业务逻辑和一些小程序,岗位多,待遇佳;DSP和FPGA一般作为项目补充来学习,比较难,有特殊项目要求时才要求具备这项技能。

二、ARM架构介绍

现在我了解的大多芯片架构的主流都是ARM,A系有MMU功能,适合跑高级操作系统,实现多任务多进程,例如Windows、MacOS、Linux、Android;R系适用于高性能,高实时性的应用;M系适用于低功耗低成本的产品,不具有MMU功能,可以运行FreeRTOS、VxWorks、ucLinux、uc/OS。
【百问网智能家居】学习嵌入式,了解裸机与RTOS的开发模式_第2张图片
MPU和MCU的区别是应用场景不同,MPU的运算和处理的性能强,MCU的功能较单一,主要用于控制和管理其他设备。

【百问网智能家居】学习嵌入式,了解裸机与RTOS的开发模式_第3张图片
此外还有DSP和FPGA的芯片,DSP芯片用于数字信号处理方面,算力强;FPGA就是可编程的硬件,可以用来编成常用的硬件电路。

三、开发流程

主要是程序编译的过程文字描述。
【百问网智能家居】学习嵌入式,了解裸机与RTOS的开发模式_第4张图片

四、RTOS的引入

裸机的开发模式一般分为轮询方式和事件驱动方式。轮询方式即按顺序执行函数,这种方式函数之间会影响到相互的执行时间;事件驱动方式即用相应的时间来触发函数执行,常见的有中断,设置全局变量为事件标志位等。没有多任务、线程的概念。在运行功能多的情况下,裸机程序实时性不高。
操作系统中引进任务的概念,每个任务都可以写成死循环,操作系统根据任务的优先级来调度,使CPU分时执行每个任务,只要调度的方法优良,每个任务看起来就像是并行执行,提高了CPU的利用率。
通过韦东山老师生动的讲诉,理解了操作系统的必要性。比如在判断按键是否长按时,同时进行灯的闪烁;但只要写成两个任务,在短暂的时间里快速执行就会像并行执行一样达到想要的效果。也就是分时复用。

在引入了RTOS后,韦老师介绍了RTOS中的常用的程序框架,也就是把要实现的总体功能进行不断拆分成尽可能独立的子系统,然后进行层层调用。这样既方便维护,也为后续的业务扩展增添了便利。

在《代码大全》第5章中,把程序设计分为这几个层次:
第1层:软件系统,就是整个系统、整个程序
第2层:分解为子系统或包。比如我们可以拆分为:输入子系统、显示子系统、业务系统
第3层:分解为类。在C语言里没有类,可以使用结构体来描述子系统。
第4层:分解成子程序:实现那些结构体(结构体中有函数指针)。

你可能感兴趣的:(操作系统,freedos,stm32,arm)