概述
起因
好久没来CSDN上发文了,因为最近一直在熟悉新公司,对这边的程序和系统逐渐熟悉起来,也多多少少了解了国内大名顶顶的RTT。
这段时间遇到了不少新问题,也总结了自己过往的经验,觉得有必要将自己的心得体会记录下来,并便于他人查阅资料。
我是做硬件出身的,然后从8位机16位机一直做到32位机,接触过的芯片包含AT89C51系列,AVR系列,MSP430系列,ARM11以及ARM Corte-M系列等,软件则是从汇编到C,从无系统到实时系统再到非实时系统的这么来了一遍,然后从C回归汇编,又从汇编战斗到C++,还有一段时间玩Qt和linux。
不敢说自己经验非常多,也不敢说非常精专,但确实也有不少可以说的,能力有限,有谬误之处,烦请大家批评指正。
本系列文章的结构
因为要说的确实很多,因此打算做成系列连载文章。现将文章结构加以规划,共计分17部分:
- 1.硬件抽象与汇编基础
- 2.C语言
- 3.软件与硬件的联系
- 4.操作系统
- 5.实时系统与非实时系统
- 6.操作系统的保安
- 7.异步与并发
- 8.MCU、CPU、DSP各有千秋
- 9.STM32F4+FreeRTOS开发
- 10.通讯
- 11.Qt与上位机应用开发
- 12.Linux系统应用
- 13.Linux的移植
- 14.更高级的芯片——Intel 32位/64位处理器开发
- 15.嵌入式开发常用算法
- 16.PID自动控制与PID自整定
- 17.图像处理,浮点处理器与DSP
其中,第1部分,硬件抽象将构建一个虚拟的CPU来展示处理器是如何工作的,第2部分与第3部分将打好基础,让大家了解到C语言或更高级语言程序是怎样在真实的处理器上执行的。从第4部分开始,将涉及到操作系统、同步与并发等内容。第8章比较常见的一些MCU或CPU,以便给芯片选型提供参考。第5部分重点介绍STM32F4系列芯片的开发,这里将使用Emblock开发环境,介绍STM32Cube配置工具,FreeRTOS操作系统,emWin嵌入式图形界面等。
第10部分重点阐述常用的一些通讯接口、以及通讯协议的参考设计和设计通讯协议时需重点考虑的方面。第11部分开始涉及上位机应用开发,Linux系统和Linux系统移植,内核配置等内容。第14部分涉及更高级的芯片,我们看下Intel的处理器有哪些特色及精巧之处,并略微讲解无系统时Intel架构的开发工作。第15部分到第17部分阐述一些有用的算法,这些算法是嵌入式开发经常能接触到的,图像处理是更高级的算法,介绍图像处理的相关内容时也将比较有FPU或采用DSP的好处。