嵌入式系统(Embedded System)

嵌入式系统可以理解为为特定设备服务的软件,硬件可裁剪的计算机系统,ARM(Advanced RISC Machines)嵌入式系统是其中有代表性的体系结构。

嵌入式系统有软件和硬件部分,硬件包括嵌入式微处理器,外部设备,软件包括嵌入式操作系统和应用软件。 操作系统可以通过驱动程序操作外部设备。

嵌入式微控制器 vs 嵌入式微处理器

嵌入式微控制器,或者称为单片机,处理能力低,只能用在相对简单的控制领域,但是体积小,很难拥有操作系统,设计较简单。

嵌入式微处理器,将外部设备控制器集成到芯片内部,它可以拥有操作系统。

嵌入式系统组成

和其他计算机系统一样,嵌入式系统由指令系统,主要是中央处理器(CPU),存储系统,总线系统和输入输出系统(I/O)。

计算机体系结构

指令系统,存储系统和I/O系统是计算机的主要组成系统。从存储系统的角度,流行的系统结构设计方法包括冯诺依曼结构和哈佛结构。

–冯诺依曼结构

运算器,控制器,存储器,输入设备和输出设备5部分。工作时,指令存储在存储器中,从中取出指令,由运算器执行指令,控制器处理输入输出。

–哈佛结构

冯诺依曼结构在运算器取指令时,不能同时取数据,导致效率降低。哈佛结构将指令和数据分开存储,使用不同的数据宽度。ARM处理器采用哈佛结构。

–CPU

组成:运算器、控制器、寄存器和内部总线 关键参数:工作频率、字长、指令集和缓存大小 . 工作频率,主频、外频和外部总线频率 . 字长,一个CPU周期内能处理的数据宽度,32bit . 指令集,复杂指令集(CISC)和精简指令集(RISC) . 缓存,暂存数据和指令,CPU和外部设备的处理速度差别

–存储系统

硬盘/Flash -> 内存RAM -> 高速缓存Cache -> CPU寄存器

–总线系统

总线标准包括$I^2C$,SPI和PCI等。总线种类包括, . DataBus, 从外部设备读写数据 . AddressBus, 向外部设备发送地址 . CtrlBus,向外部设备发送控制信息

–输入输出系统

CPU访问外部设备的方式, . 轮询,影响指令执行,效率低 . 中断控制,响应中断信号,效率高 . DMA(Direct Memory Access),适合大量数据传输

ARM处理器与Raspberry Pi

ARM体系结构命名

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux

开发环境构建

–安装/卸载软件

更新apt软件源

sudo apt-get update
sudo apt-get upgrade -y

安装主要打包工具

sudo apt-get install build-essential
gcc --version
gdb --version

shell指令