ARM裸机开发

1. ARM版本号:

  • ARM 内核版本号 — ARMv7
  • ARM Soc版本号 — Cortex-A8 
  • 芯片型号 — S5PV210
内核版本号 Soc版本号 芯片型号(三星)
ARMv1    
...    
ARMv4 ARM7 S3C44B0
ARMv4 ARM9 S3C2440 S3C2410
ARMv5 ARM9+xScale  
ARMv6 ARM11 S3C6410
ARMv7 Cortex-M/A/R  

说明:编程

  • Cortex-M Microcontroller,单片机使用
  • Cortex-A  application 手机,平板电脑使用
  • Cortex-R  real time,实时操做系统

Soc :System on chip (将一部分外设和CPU集成的芯片)安全

外设(Peripherial) : 外部设备(除了CPU之外的设备)架构

BSP :board support package 板级支持包(支持硬件的相关软件,官方给的硬件包/驱动,根据板子移植过的)app

地址总线和数据总线dom

    CPU经过地址总线寻址,而后经过数据总线与外部设备互换信息,地址总线的位数决定CPU的寻址范围;数据总线的位数决定CPU单次通讯能交换的信息数量。总线的速度决定CPU和外设互换信息的速度。CPU的地址总线位数和数据总线能够不一样,但通常都相同,CPU的位数指的是数据总线的位数,32位CPU寻址范围是4G,因此最多支持4G内存,数据总线是32位的,因此内存32位的好,因此编程最好用int工具

2. 可编程器件

可编程逻辑器件 英文全称为:programmable logic device 即 PLD。测试

对于可编程逻辑器件,设计人员可利用价格低廉的软件工具快速开发、仿真和测试其设计。 而后,可快速将设计编程到器件中,并当即在实际运行的电路中对设计进行测试。spa

3.RISC和CISC

CISC: complex instruction set computer复杂指令集CPU操作系统

  • 用最少的指令来完成任务
  • 设计复杂、工艺复杂
  • 编译器好设计

RISC: Reduced Instruction-Set Computer精简指令设计

  • 让软件来完成具体的任务,CPU自己仅提供基本功能指令集
  • CPU的设计和工艺简单
  • 编译器的设计变难

4. 统一编址&独立编址

  内存 IO  
定义 程序的运行场所,和CPU之间经过总线链接,内存经过CPU的地址总线来寻址定位,而后经过CPU数据总线来读写。 输入输出接口,是CPU和其余外部设备之间通讯的道路。通常的,IO就是指CPU的各类内部或外部外设。  
与CPU的链接方式 直接链接 IO与内存统一编址方式 : 相似于访问内存的方式,即把外设的寄存器看成一个内存地址来读写,从而以访问内存相同的方式来操做外设

IO与内存独立编址 : 使用专用的CPU指令来访问
某种特定外设

优势 效率高访问快 IO看成内存来访问,编程简单 不占用CPU地址空间
缺点 资源有限,扩展性差。 IO也须要占用必定的CPU地址空间,而CPU的地址空间是有限资源。 CPU设计变复杂了
  冯诺依曼结构 哈佛结构
定义 程序和数据都放在内存中,且不彼此分离 程序和数据分开独立放在不一样的内存块中,彼此彻底分离
优势 处理起来简单 安全和稳定性高
缺点 安全和稳定性低 软件处理复杂一些

5.寄存器

寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果, 是CPU的硬件设计者制定的,目的是留做外设被编程控制的“ 活动开关 ”,正如汇编指令集是CPU的编程接口API同样,寄存器是外设硬件的软件编程接口API。使用软件编程控制某一硬件,其实就是编程读写该硬件的寄存器。
编程操做寄存器相似于访问内存,每一个bit位都有特定含义,所以编程操做时须要位操做。单个寄存器的位宽通常和CPU的位宽同样,以实现最佳访问效率。
SoC中有2类寄存器:
    •  通用寄存器(ARM中有37个)是CPU的组成部分,CPU的不少活动都须要通用寄存器的支持和参与。
    •  SFR(special function register,特殊功能寄存器)不在CPU中,而存在于CPU的外设中,咱们经过访问外设的SFR来编程操控这个外设,这就是硬件编程控制的方法。

6. ARM体系结构

  • ARM是RISC架构
  • 经常使用ARM汇编指令只有二三十条,是低功耗CPU
  • SoC中的各类内部外设经过各自的SFR编程访问,这些SFR的访问方式相似于访问普通内存,这叫IO与内存统一编址。
  • ARM是哈佛结构的,保证了ARM CPU运行的稳定性和安全性,所以ARM适用于嵌入式领域,哈佛结构也决定了ARM裸机程序(使用实地址即物理地址)的连接比较麻烦,必须使用复杂的连接脚本告知连接器如何组织程序;对于OS之上的应用(工做在虚拟地址之中)则不需考虑这么多

7.S5PV210的内存映射

ROM:read only memory 只读存储器。ROM所存数据,通常是装入整机前事先写好的,整机工做过程当中只能读出,而不像随机 存储器那样能快速地、方便地加以改写。ROM所存数据稳定,断电后所存数据也不会改变;
RAM:ramdom access memory 随机访问存储器,CPU直接交换数据,也叫 主存(内存)。它能够随时读写,并且速度很快,一般做为 操做系统或其余正在运行中的程序的临时数据存储媒介。当电源关闭时RAM不能保留 数据。若是须要保存数据,就必须把它们写入一个长期的存储设备中(例如 硬盘)。

  通常来讲会比较难以理解RAM与ROM和平时所说的运行内存和硬盘容量有什么关系,其实从通常意义上来讲是同样的,但从计算机和手机的角度来讲又有一些区别。

从电脑来讲通常比较好理解,RAM就是咱们平时所说的运行内存,它的确是随时可读写的。由于CPU处理的数据都是以运行内存为中介的。断电后信息是不保存的。那么对于ROM来讲,是否是就是硬盘呢?不是说ROM只能够读吗?硬盘倒是能够修改的。的确,必须明确一点,RAM与ROM都是内存,而硬盘是外存,因此ROM不等于硬盘。计算机中的ROM主要是用来存储一些系统信息,或者启动程序BIOS程序,这些都是很是重要的,只能够读通常不能修改,断电也不会消失。

      那么对于手机来讲呢?其实不少困惑都来自于手机厂商的宣传信息的误导。由于通常手机厂商都会说有多少G的RAM,多少G的ROM;在手机里面,RAM就是跟电脑同样的运行内存同样;而ROM就不同了,你想一想看,若是只用来存储一些系统信息和开机引导程序,须要几个G的容量?其实手机的ROM就跟硬盘挂上钩了,手机中的ROM有一部分用来存储系统信息,还有一些装机软件,剩余的大部分容量都是就是拿来做为硬盘用的,可读可写。

IROM:internal rom 内部ROM,指的是集成到SoC内部的ROM
IRAM:internal ram 内部RAM,指的是集成到SoC内部的RAM
DRAM动态RAM,须要刷新,容量大。

SRAM静态RAM,不用刷新,速度能够很是快,像CPU内部的cache,都是静态RAM,缺点是一个内存单元须要的晶体管数量多,于是价格昂贵,容量不大。

ONENAND/NAND:
SFR:special function register
相关文章
相关标签/搜索