ARM储存器介绍

来源:互联网 发布:差分方程matlab编程 编辑:程序博客网 时间:2024/06/06 02:36

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

·为内核启动调用参数




 





0 0
原创粉丝点击