一、版本号
ARM内核版本号:ARM设计出来卖的版本号。如:ARMv7。
ARM Soc版本号:Soc的版本号。如:Cortex-A8。
芯片型号:加工出来芯片的型号。如:S5PV210。
M-microcontroller(微型处理器): 应用于单片机,例如STM32(ST公司的M3处理器)。
A-application (应用级处理器): 应用于手机平板。
R-realtime( 实时处理器): 处理器相应速度比较快,应用于工业、航天等领域。
实时操作系统:RTOS。Linux,windows不是实时操作系统。
M系列(现有M3,再推出的M0、M4):
Cortex-M0系列:一般工作频率为48M。基础版本,主要用于低功耗产品。
Cortex-M3系列:一般工作频率为72M。目前最主流的设计内核选型,应用范围广。
Cortex-M4系列:一般工作频率为168M。增加了DSP处理,用于电源管理和嵌入式音频。
Cortex-M7系列:一般工作频率为300M。性能好和功耗高兼具,适合追求极致性能项目。
A系列(A8、A9、A7、A15):
A7比A9的功耗低,性能要差一点,特点就是功耗低。A15是把A9的性能发挥到了极致。
二、SOC和CPU的区别和外设概念的引入
CPU里面由运算器(运算)和控制器(判断)
SoC = System on Chip
早期的CPU因为集成度比较低,所以这些外设都是一个外设一个芯片,然后通过PCB走线和CPU连接起来,例如图中的CPU就有4个芯片。后来随着集成度提高,这些外设集成到了CPU里面,然后给外部提供芯片内部的总线。例如图中的SoC就只有一个芯片。而ARM公司卖给半导体厂商的方案就是CPU和芯片的总线,各厂商可以根据自己需求添加外设。所以现在接触到的,大部分其实都是SoC。
裸机学习就是学习SoC的内核(CPU,表现为汇编指令集)和各种外设(如串口)。
三、嵌入式和单片机的区别
1.芯片平台:
(1)主流的单片机平台:51、PIC、STM32、AVR、MSP430等。
(1)主流的嵌入式平台:ARM、PPC、MIPS(路由器)。
2.资源、价格、应用领域:
单片机上的资源有限、价格低、应用场景多为小家电、终端设备等。
嵌入式系统片上资源丰富、价格较高、应用领域广泛,比如智能手机、平板电脑、游戏
机、路由器、摄像机、智能电视机、广告机、智能手表、收银机等。
3.开发模式:
单片机开发多为裸机,程序规模小,多为单个程序员独立开发。有些复杂产品也会使用
高端单片机如STM32之类,并使用RTOS (uCoS、freeRTOS等)。
嵌入式开发几乎全部基于嵌入式操作系统,目前使用最多的是linux和Android.
4.技术特征:
单片机主要使用C语言,很少用结构体、函数指针等C语言高级特性。而嵌入式开发比较
复杂,一般分底层和应用层。底层使用C语言,应用层使用C、C++、Java等语言均有。
使用结构体、算法、函数指针,面向对象等高级特性较多。单片机的涉及外设比较简单
、少;嵌入式系统涉及更多复杂外设。
四、嵌入式系统构成特点和演进方向
嵌入式系统的特点:
(1)专用、软硬件可裁剪可配置
(2)低功耗、高可靠性、高稳定性
(3)软件代码短小精悍
(4)代码可固化(烧录后,再开机还代码存在)
(5)实时性
(6)弱交互
(7)专用开发工具及开发环境,专业开发人员
嵌入式系统的组成:
硬件:微处理器、存储器、I/O接口、输入输出设备等等。
软件:嵌入式操作系统(驱动属于操作系统)、BSP(板级支持包)、应用软件。
嵌入式系统的分层:
嵌入式系统的发展演进:
单芯片位核心、可编程控制器存在形式---->嵌入式CPU为基础、简单操作系统为核心。
----->以嵌入式操作系统为标志------>以物联网为标志。(硬件的性能越来越强,设备越
来越多,交互性越来越强,低功耗)
五、CPU的设计原理、数据总线和地址总线
1.CPU的设计原理
CPU里面主要有运算器、控制器和寄存器。
运算器:主要起运算的的作用,比如:加、减、乘等等。
控制器:用来控制CPU的运行的,比如读取指令代码等等。
寄存器:临时内存。
CPU里面一般是不包含内存的,内存一般都在CPU的外部,有Flash(硬盘)和DDR(内存条),通过总线接口和CPU连接。程序平时是在Flash中放着的,而运行是要在内存里运行的,但Flash和DDR之前必须通过CPU的寄存器(先把程序放到寄存器,再放到DDR),才能把程序放到DDR。
图中的串口已经集成到CPU里面了,所以Uart是通过内部总线和CPU连接的,再CPU里面,然后给外部提供了一个SoC串口接口。
2.地址总线和数据总线
(1)CPU通过地址总线寻址,然后通过数据总线与外部设备互换信息。
(2)地址总线的位数决定CPU寻址范围;数据总线的位数决定CPU单次通信能交换的信息数量。比如说:有32跟地址总线,那么能访问的范围就是0~2^32-1;有32跟数据总线,那每次就能取出32为的二进制数,也就是4个字节大小的数据,比如int。我们平时将CPU的位数就是讲的数据总线。
(3)总线的速度决定CPU和外设互换信息的速度。
之所以要用两条线来操作,是为了速度快。
3.注意
(1)CPU的地址总线位数和数据总线可以不同(典型代表就是51单片机),但是一般都相同。
(2)CPU的位数指的是数据总线的位数。
(3)32位地址总线CPU寻址的范围是4G,所以最多支持4G内存;
(4)数据总线是32位的,所以内存是32位的好。
六、Jlink、SD卡
1.Jlink
(1)下载可执行程序到目标及。
(2)在目标机上实现单步调试,便于开发bootloader。
2.SD卡
作为启动介质。工作方式是:事先用读卡器将SD卡连接到开发机(一般是Windows电脑),通过写卡软件将交叉编译得到的可执行程序镜像烧录到SD卡,然后将SD卡插入嵌入式目标机卡槽,设置正确的启动方式启动,则系统可以从SD卡中烧录的镜像处启动。