ARM裸机入门简介

学习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的效率是一样的。
  • -

你可能感兴趣的:(ARM裸机)