学习ARM裸机,是一件复杂事情,入门的概念性和基础性知识必须要了解到,以便于后面的知识的理解。
ARM概念
ARM首先是一个公司,这家公司设计CPU并向各个CPU制造商授权许可,所以ARM公司是一家CPU设计公司。同时,ARM也是ARM公司主导设计的CPU系列的简称。
ARM版本区分
ARM版本号可以分为三类:
- 内核版本号,例如ARMv5,ARMv7,ARMv7a,ARMv8a……
- Soc版本号,例如Cortex-A8,Cortex-A9
- 芯片型号,例如2410,2440,6410,S5PV210
看图:
内核版本 | Soc版本 | 芯片型号 | 芯片型号 | 芯片型号 |
---|---|---|---|---|
ARMv4 | ARM7 | S3C44B0 | ||
ARM9 | S3C2440 | S3C2410 | ||
ARMv5 | ARM9 | |||
ARMv6 | ARM11 | S3C6410 | ||
ARMv7 | Cortex-A8 | S5PV210 | S5PC100 | |
Cortex-A9 | Exynos4412 | |||
Cortex-A7 | 全志A10 | 全志A20 | 全志A31 | |
Cortex-A15 | Exynos5250 | Exynos5450 | ||
Cortex-R | ||||
Cortex-M | ||||
ARMv8 | Cortex-A53 | 骁龙815 | 骁龙410 | |
Cortex-A57 |
Soc
Soc是System on Chip的简写,即片上系统。Soc主要包括了CPU中央处理器以及各种外设模块,CPU和外设通过集成电路被安置在一个芯片中。
九鼎X210开发板
- CPU:三星S5PV210
- Flash:4GiNand
- 内存:512MB,DDR2
单片机和嵌入式的区别
- 平台区别,
- 主流的单片机平台有51,PIC,STM32,AVR,MSP430,
- 主流的嵌入式平台有ARM,PPC,MIPS
- 资源,价格,应用领域
- 单片机片上资源有限,价格低,应用领域大多为小家电,终端设备
- 嵌入式片上资源丰富,价格高,应用领域广泛,基本可以适用于任何领域
- 开发模式
- 单片机一般都是裸机开发,程序规模较小,只有在比较高端的芯片上才会使用RTOS
- 嵌入式开发一般都会使用嵌入式系统
- 技术特征
- 单片机主要使用C语言和简单的汇编,而且C语言和标准C略有不同,很少使用C语言的高级特性,
- 嵌入式比较复杂,一般会进行分层设计和开发,分为底层,应用层,不同的成册可能使用不同的开发语言,例如C++与Java,较多使用C语言的高级特性
CPU设计原理和总线
CPU主要包括运算器,控制器,存储器通过总线与Flash与内存连接。
总线就类似于CPU中的道路,数据通过总线在CPU和外设之间传输,CPU也通过内部总线与SOC中的其他外设连接,例如UART设备,内部总线由于在芯片内部,抗干扰能力强,运算速度更快。
总线分为两种,地址总线和数据总线:
- 地址总线用于传输地址,CPU通过地址总线寻址,告诉设备要取的数据在哪个地址中,地址总线的位数决定了寻址范围,
- 数据总线用于传输数据,CPU通过数据总线与外部交换信息,将设备要的数据通过该总线发送给对方,数据总线的位数决定了CPU单次通信能交换的信息数量
- 总线的速度决定了CPU和外设互换信息的速度
- CPU的地址总线和数据总线的位数可以不同,CPU的位数就指的是数据总线的位数
- 32位CPU的寻址范围是4G所以最多支持4G内存,数据总线是32位的,那么传输一个int和传输一个char的效率是一样的。
- -