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

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

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

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

二、ARM架构介绍

现在我了解的大多芯片架构的主流都是ARM,A系有MMU功能,适合跑高级操作系统,实现多任务多进程,例如Windows、MacOS、Linux、Android;R系适用于高性能,高实时性的应用;M系适用于低功耗低成本的产品,不具有MMU功能,可以运行FreeRTOS、VxWorks、ucLinux、uc/OS。
ARM架构分类
MPU和MCU的区别是应用场景不同,MPU的运算和处理的性能强,MCU的功能较单一,主要用于控制和管理其他设备。

基于ARM架构的STM32处理器分类
此外还有DSP和FPGA的芯片,DSP芯片用于数字信号处理方面,算力强;FPGA就是可编程的硬件,可以用来编成常用的硬件电路。

三、开发流程

主要是程序编译的过程文字描述。
集成开发环境的具体流程

四、RTOS的引入

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pupuhetu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值