1. 嵌入式基本概念
1.1 什么是嵌入式
嵌入式系统(embedded system),是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。[1][2]嵌入式系统常被用于高效控制许多常见设备,被嵌入的系统通常是包含数字硬件和机械部件的完整设备,例如汽车的防锁死刹车系统。相反,通用计算机如个人电脑则设计灵活,可以智能处理各式各样的运算情况,以满足广大终端用户不同的需要。
简单来说嵌入式设计来专门干一件事情,通用计算机可以用来或者学习,或者打游戏,或者直播等等不确定的用途相区别。随着时间的推移这两者的区分度不是很大,譬如树莓派用的是嵌入式的硬件(嵌入式的特性是软硬可裁剪的控制系统),但是它可以用来完成通用计算机的任务。当然你如果愿意也可以用台式机器的主板装入冰箱去控制冰箱的运动。
1.2 学习的内功
- C语言、数据结构
- 模拟电路、数字电路
- 逻辑分析仪器、万用表等等
1.3 什么是ARM
ARM架构,过去称作高级精简指令集机器(英语:Advanced RISC Machine,更早称作艾康精简指令集机器,Acorn RISC Machine),是一个精简指令集(RISC)处理器架构家族,其广泛地使用在许多嵌入式系统设计。由于节能的特点,其在其他领域上也有很多作为。ARM处理器非常适用于移动通信领域,符合其主要设计目标为低成本、高性能、低耗电的特性。另一方面,超级计算机消耗大量电能,ARM同样被视作更高效的选择[3]。安谋控股(ARM Holdings)开发此架构并授权其他公司使用,以供他们实现ARM的某一个架构,开发自主的系统单片机和系统模块(system-on-module,SoC)。
- 精简指令集:RISC
- 复杂指令集:CISC复杂指令集的特点是指令数目多而复杂,每条指令字长并不相等,电脑必须加以判读,并为此付出了性能的代价。但是相对比同主频的手机SOC来说,复杂指令集性能依旧强悍。
1.4 区分概念
- MCU和MPU:前者集成内存和FLASH,后者没有需要外挂类似手机。
- DSP和FPGA:DSP两层含义一种代表技术,一种代表含有这种功能的芯片,FPGA可以看作是万能的芯片可以DIY串口个数等等。
2. 嵌入式开发流程
2.1 交叉开发
程序的编写在PC,程序的运行在另一个平台。
2.2 集成开发环境
集合编辑器、编译器以及下载调试功能于一体的IDE
2.3 调试和下载器
- JLINK:只要是ARM架构就可以使用。
- ST-LINK:ST生产的芯片的下载调试器
2.4 打印输出
因为嵌入式开发设备简陋,因此不能像电脑一样在屏幕上打印输出调试信息,因此可以通过重写printf函数定义到串口输出调试信息找BUG。这里就设计电平转换的问题。
3. 开发板简单介绍
|