一、嵌入式是什么
官方的讲嵌入式系统是以应用为中心,以计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。
嵌入式分为软件和硬件两个方向。做嵌入式软件,需要对硬件有一定的基础。下面列一下成为软硬件都会的嵌入式工程师的学习路径吧。
电子设计→PCB设计→C语言→单片机→操作系统
二、嵌入式系统
相信看到这篇文章的同学都已经有基本的c语言编程能力,所以我们就直接从嵌入式系统开始。
现如今我国主要在使用的嵌入式系统有linux、FreeRTOS、LiteOS(华为)、RT-thread、Vmworks、uCos、ucLinux。
对于我们而讲一定是学用的更多的嵌入式系统才更容易与大环境结合,但是基于国内环境的影响,我还是会推荐国内自己研发的系统。其中 RT-Thread 在物联网和嵌入式开发者心目中是非常棒的开源软件,RT-Thread 是国内目前合作和支持芯片和厂商众多、社区开发者踊跃、组件丰富、应用领域广泛的国产物联网操作系统。(如果有想法的同学还可以去研究下LiteOS,可能会融合进入华为的鸿蒙系统)
三、嵌入式系统的基础设计
嵌入式系统的基础来自与线程的创建,我们所有的任务在嵌入式系统里面都会分为一个个线程,通过主程序的调度,来实现任务的完成。
在进行线程的调度时就要考虑那个线程更加的着急,处理后的数据存储在哪,线程在哪。这就引入了建立线程的几大要素,优先级(解决谁更着急),线程栈大小(解决存在哪),线程入口函数(解决线程在哪)。