关于ARM的内存重映射

发布者:心语乐章最新更新时间:2022-03-17 来源: eefocus关键字:ARM  内存重映射 手机看文章 扫描二维码
随时随地手机看文章

先说说存储器映射:
所谓存储器映射,是指将开发板上不同的存储器映射到开发人员可见的4GB地址空间上,例如,假设开发板上有一个32KB的片内FLASH,16KB的片内SRAM(纯属虚构,如有雷同,纯属巧合),那么,将32KBFLASH映射到地址空间的0x00000000~0x0x00008FFF上,将16KB的SRAM映射到x40000000~0x40004fff上,这样开发者在读写0x00000000~0x00008fff内的地址时,访问的就是片内FLASH,不同开发板的映射规则是开发板厂商事先设定好的。


下面说说什么是重映射:
重映射分为中断向量的重映射和boot的重映射


首先说说中断向量重映射
ARM中中断向量的地址位于0x00000000~0x0000003c(每个向量占4字节,但是为了能够实现4GB范围内的任意跳转,通常在中断向量表后附加一个跳转地址空间,跳转空间占4字节,因此,总的中断向量表大小为64B,不熟悉的自己查查ARM的中断向量吧,不多说了)。注意,这里所说的0x0000000~0x0000003C指的是用户可见的4GB地址空间(也就是上面所说的存储器映射后的地址空间),真正的中断向量位于哪块存贮器的哪个地址上可不一定(不过通常都是为与片内FLASH的底部),因此,需要将不同存储器的中断向量表映射到0x00000000~0x0000003c的地址上。另外,还有一次中断向量的映射,在用户RAM的映射模式(稍后说映射模式)下,需要将中断向量映射到静态RAM的底部(很明显,这样能够提高访问速度)。


下面是boot的重映射
这里所说的boot不是bootloader,而是厂商实现内嵌到板子中的一段代码,用于执行对FLASH的读写,擦除等任务,通常位于片内存储器上,但是不同的板子上存储器的大小不同,为了程序的兼容,通常需要将boottblock重映射到存储空间的顶端。


最后说一下映射模式:
ARM中支持4中映射模式,由存储器控制寄存器控制


四种模式为:
1.boot装载程序模式:在任何复位操作后都会执行Boot装载程序。Bootblock中中断向量映射到存储器的底端以允许处理异常,并在Boot装载过程中使用中断。
2.用户FLASH模式:当在存储器中识别了一个有效的用户程序标识并且Boot装载操作未被执行时,由Boot装载程序启动。中断向量没有重新映射,位于Flash的存储器底部
3.用户Flash:中断向量被映射到静态RAM的底部
4.用户外部模式:中断向量有外部存储器映射到存储空间底部。

关键字:ARM  内存重映射 引用地址:关于ARM的内存重映射

上一篇:linux下S3C2410的DMA驱动程序开发
下一篇:s3c2410_i2c总线驱动及at24c02设备驱动实例

推荐阅读最新更新时间:2024-11-10 07:11

ARM NEON 编程系列1 - 导论
前言 本系列博文用于介绍ARM CPU下NEON指令优化。 博文github地址:github 相关代码github地址:github NEON历史 ARM处理器的历史可以阅读文献 ,本文假设读者已有基本的ARM CPU下编程的经验,本文面向需要了解ARM平台下通过NEON进行算法优化的场景。 ARM CPU最开始只有普通的寄存器,可以进行基本数据类型的基本运算。自ARMv5开始引入了VFP(Vector Floating Point)指令,该指令用于向量化加速浮点运算。自ARMv7开始正式引入NEON指令,NEON性能远超VFP,因此VFP指令被废弃。 NEON用途 类似于Intel CPU下的MMX/SSE/AVX
[单片机]
ARM汇编指令集之十——异常产生指令
1、SWI指令 SWI指令的格式为: SWI{条件} 24位的立即数 SWI指令用于产生软件中断,以便用户程序能调用操作系统的系统例程。操作系统在SWI的异常处理程序中提供相应的系统服务,指令中24位的立即数指定用户程序调用系统例程的类型,相关参数通过通用寄存器传递,当指令中24位的立即数被忽略时,用户程序调用系统例程的类型由通用寄存器R0的内容决定,同时,参数通过其他通用寄存器传递。 指令示例: SWI 0x02 ;该指令调用操作系统编号位02的系统例程。 2、BKPT指令 BKPT指令的格式为: BKPT 16位的立即数 BKPT指令产生软件断点中断,可用于程序的调试。
[单片机]
ARM的体系结构与编程系列博客——ARM的历史与应用范围
前言 最近我感觉自己比较浮躁,重来没有好好地沉下心来做一件事情,而且针对自己在专业水平上仍然还有很多欠缺,于是我想我应该为自己做些什么来证明一下自己真的是潜心研究东西的人,于是我萌生了一个想法,真正地写一系列的博客,将ARM的结构体系完完全全地梳理一遍!虽然是学过了,但是学得应该仅仅是皮毛吧!正好趁着自己还有时间,为什么不做一个自己想认真做的事情呢? 回到顶部 系列博客的介绍 博客园里面的大神们都很多,有许多人对Linux、ARM等都有相应的了解,因而,如果你是老鸟的话,就当飘过啦,如果你是新手的话,哈哈,那么现在正是为你而准备的大餐了! 准备的博客如下: ARM概述 ARM指令系统分类及其寻址方式 掌握ARM指令集
[单片机]
Atmel AT91SAM9x5系列ARM9
Atmel最新的AT91SAM9x5系列包括了5个型号的低功耗ARM926EJ-S处理器, 公共的特性: 400MHz ARM926EJ-S core / 16KB Data/Instruction Cache / DDR2 / MLC NAND / 3xHS USB HOST 1xHS USB DEVICE / HS SDIO SD MMC / Software Modem / BGA217 差异化的外设主要针对不同的应用场合: AT91SAM9G15 (LCD) 适合手持式人机界面的应用,AT91SAM9261,AT91SAM9G10升级版 AT91SAM9G25 (Et
[单片机]
Atmel AT91SAM9x5系列<font color='red'>ARM</font>9
ARM的“小公司,大生态“生存哲学
 “你知道ARM吗?” “arm,知道,胳膊麽” 这是笔者办公室里流行的一个经典笑料,这段对话放在电子圈,如果在5年前,听者也许云里雾里没有任何笑点可言,而如今必然是哄堂捧腹的结果。不可否认,这也印证了ARM的成功和迅速崛起。 作为IP授权模式的代表,ARM成功的背后,是IC产业发展大趋势的必然,即逐渐降低厂商进入IC设计领域的门槛,让产业生态越来越多元化、差异化,Fabless模式的产生是推动这种趋势的第一次变革,IP授权可称为第二次。 而在所有IP授权厂商中,究竟是什么成就了ARM的今天,ARM的明天又将向哪里去?带着这些问题,记者采访了ARM大中华区总裁吴雄昂,听他给出怎样的答案。 ARM大中华区总裁
[单片机]
ARM中的MOV指令
ARM中的MOV指令格式是这样的 op2是占了12位,其中bit11-bit8是移位数(rotate),bit7-0是一个8位的立即数(imm),MOV Rn, op2,执行之后,Rn=op2 (rotate * 2),这里的移位是循环右移,这就决定了MOV指令不是所有的立即数都能表示的,以下是几个例子: 1、mov r3, #0x56000000 虽然0x56000000是一个32位的数,但是可以找到这么一个8位立即数,通过右移得到,看下机器码e3a03456,展开成二进制,对照下格式 1110 0011 1010 0000 0011 0100 0101 0110 cond =1110 =00
[单片机]
<font color='red'>ARM</font>中的MOV指令
Arm与Unity携手合作,使3D随处可见
Arm将与Unity Technologies合作,以确保3D应用程序(例如游戏和娱乐)在使用Arm架构的硬件上流畅运行。该公告是Arm硬件和软件设计中更大的全面计算(Total Compute)协作方法的一部分。 Arm客户业务部门市场营销副总裁Ian Smythe在加利福尼亚州圣何塞举行的Arm TechCon 2019活动上宣布了该计划。 他说,Arm Total Compute代表了一种IP设计的新方法,重点是用例驱动的优化系统解决方案。在这种情况下,开发人员将为其软件编写软件开发套件,从而找出在中央处理器(CPU),图形处理单元(GPU)或机器学习(ML)硬件上处理该软件的最佳方法。Arm的客户小组副总裁Paul Wil
[手机便携]
arm学习笔记一(arm概述及其基本编程模型)
arm概述及其基本编程模型 arm体系结构的版本及命名方法 arm体系统构的6个版本的特点 arm体系的变种 1 thumb指令集(t变种) 2 长乘法指令(M变种) 3 增强型dsp指令(E变种) 4 java加速器jazelle(J变种) 5 arm媒体功能扩展(SIMD变种) arm/thumb体系版本的命名格式 1 字符串ARMv 2 ARM指令的版本号 1-6 3 表示变种的字符 版本4之后M变种成为标准功能,不需要列出来 4 使用x表示排除某种写功能 arm处理器系列 arm7 arm9 arm9e arm920T ARM922T ARM9440T arm10e securCore intel的Xscale intl
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved