1.ARM储存器概述
ARM授权给芯片厂商的ARM的IP核主要有AHP和APB两条总线,各厂商在这两条总线上添加各种外设和存储器。
2.ARM储存格式
大端:
小端:
3.FLASHI和RAM组织形式
目前几乎所有的MCU的程序储存都是FLASH,分为片内和片外。而片内的RAM为SRAM,速度较SDRAM快。
二.FLASH组织形式
外扩FLASH种类
(1)NOR FLASH
NOR FLASH 读取速度快,但是擦除和写入速度慢
(2)NAND FLASH
读取速度比NOR慢,但擦除和写入速度很快
三.RAM的组织形式
(1)外扩RAM的种类
外扩RAM一般都是SDRAM和DDR RAM,极少数使用SRAM的接口,因为SRAM的价格相对较贵,但是SRAM的速度要比动态的快。
(2)外扩RAM的使用
1)SRAM:只要在IDE中设置好地址就可以了。
2)SDRM,DDR RAM:不仅要在IDE中设置好起始地址,而且要在程序中初始化操作才可以正确使用,如果是使用仿真器,那么在仿真运行程序前,要执行一个初始化脚本文件, 或者一系列命令对SDRAM和DDR RAM进行初始化,否则会运行不起来。3)注意SDRAM和DDR RAM的LAYOUT
四.ISP和IAP原理及其应用
(1)ISP概念
ISP-在线系统可编程,指电路板上的芯片可以先在线擦除后再编程,一般通用做法是内部的储存器可以由上位机的软件通过串口来改写,对于MCU来讲,可以通过SPI或者其他串行接口接受上位机传来的数据并写入储存器中。
( 2 )在线应用编程,就是采用一系列机制,使芯片在程序运行的可以提供一种更新方法,典型方式是用一小段程序来实现IAP。
工作原理:用一段程序,里面有带有你的使用接口(如SPI,UART,CAN,USB等)的驱动和你所使用的MCU的FLASH擦写驱动,通过接口读取PC端的机器代码,然后写入MCU的FLASH.
(2)Bootloader
boot(引导)+loader(加载) ,它是嵌入式MCU的地址0处的一小段程序,它一般初始化硬件设备,建立内存映射,搬移ROM中的代码到RAM,为操作系统建立一个合适的环境,然后就启用相应的操作系统。也可用其实现IAP功能。
A)启动加载模式:从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程没有用户的介入。
B)下载模式:通过用户介入可通过串口,网络或USB等接口从PC机上将代码(操作系统或者文件系统)下载到目标RAM中,并通过交互命令等形式将RAM中的代码烧写到某种固态储存设备中,并通过交互命令等形式将RAM中代码烧写到某种固态设备上,此模式包含启动加载模式,一般调试模式使用此模式。
BootLoader的一般启动过程
BootLoader启动多分为两个阶段
第一阶段包括依赖于CPU体系结构的硬件初始化代码,通常用汇编来实现,该阶段主要任务:
·基本的硬件初始化(屏蔽中断,关闭CACHE)
`为第二阶段准备RAM空间
·复制BootLoader第二阶段代码到ram中
·设置堆栈
·跳转到第二阶段C程序入口
第二阶段通常用C语言完成,容易实现复杂的功能,且可移植性好,主要任务:
·初始化本阶段使用到的硬件设备,并检测系统的内存映射
·将内核映像和根文件系统映像从ROM加载到RAM
·为内核启动调用参数