Arm存储器
Arm可以引出27根地址线,只能实现128MB的寻址,那么要如何实现1GB的寻址呢?答案就是使用nGCS片选线,nGCSx为低电平为选中相应的外接设备。一共八根片选线,也就是bank1,bank2…以此来实现1GB的寻址。
2440为32位,理论上的寻址范围为4GB,除了这1GB,其他的没有使用。
2440的寄存器范围都处于0x48000000-0x5fffffff之间。
下图是分别从nor flash启动和nand flash启动时地址的映射。

从nor flash启动的时候,程序写入地址零处,从地址零处启动。
从nand flash启动的时候,硬件会将nand flash头4K的数据拷贝到“stepping stone”处。然后从地址0处开始执行。Nand flash是不参与寻址的。
在sdram中执行程序:可以在使用头4K的数据把整体程序拷贝到sdram中,然后再跳转到sdram中。当然这需要在链接器脚本中设置运行地址为0x30000000,然后再使用绝对地址跳转,就可跳转到内存中了。
但是,我们有时候会发现,链接器脚本中设置的地址是多大不是很重要,不论是0x00000000还是0x30000000都能正常执行。那是因为有些程序的执行过程和地址没多大关系,比如他们没有绝对地址跳转等等。正常来说,如果我们想让他们在“stepping stone”中执行,链接器脚本中的地址应设置为0x00000000,如果我们想让他们在内存中执行,应该把链接器脚本地址设置为0x30000000,然后利用“stepping stone”跳转。
Arm存储器的更多相关文章
- ARM指令集(上)
ADuC702x可以用两套指令集:ARM指令集和Thumb指令集.本小节介绍ARM指令集.在介绍ARM指令集之前,先介绍指令的格式. A.2.1 指令格式 (1)基本格式 ...
- [置顶] ARM指令集和常用寄存器
1) ARM指令集 32位的 ARM指令和 16位 的Thumb指令 1,寄存器寻址 MOV R1, R2 //将寄存器R2的值传给寄存器R1 2,立即寻址 MOV R0, #0XFF00 //数据 ...
- ARM寄存器介绍
ARM处理器共有37个寄存器.其中包括:31个通用寄存器,包括程序计数器(PC)在内.这些寄存器都是32位寄存器.以及6个32位状态寄存器.但目前只使用了其中12位.ARM处理器共有7种不同的处理器模 ...
- 常用 ARM 指令集及汇编
ARM7TDMI(-S)指令集及汇编 ARM 处理器是基于精简指令集计算机(RISC)原理设计的,指令集和相关译码机制 较为简单,ARM7TDMI(-S)具有 32 位 ARM 指令集和 16 位 T ...
- ARM系统架构
ARM系统架构 一.ARM概要 ARM架构,曾称进阶精简指令集机器(Advanced RISC Machine)更早称作Acorn RISC Machine,是一个32位精简指令集(RISC)处理器架 ...
- ARM指令集详解--汇编
1. 汇编 1.1. 通用寄存器 通用寄存器 37个寄存器,31个通用寄存器,6个状态寄存器,R13堆栈指针sp,R14返回指针,R15为PC指针, cpsr_c代表的是这32位中的 ...
- 内存管理单元(MMU)和协处理器CP15介绍(转)
内存管理单元(MMU)和协处理器CP15介绍内存管理单元(MMU)介绍嵌入式系统中,存储系统差别很大,可包含多种类型的存储器件,如FLASH,SRAM,SDRAM,ROM等,这些不同类型的存储器件速度 ...
- ARM学习笔记8——通用寄存器和存储器内容交换指令和软中断指令
交换指令将一个存储单元内容与制定的寄存器内容相交换,交换指令为进程间同步提供了一种方便的解决途径.该指令产生一堆原子Load/Store操作,该操作发生在一个连续的总线操作中,在操作期间阻止其他任何指 ...
- ARM的存储器映射与存储器重映射
转:http://www.360doc.com/content/12/1006/00/1299815_239693009.shtml arm 处理器本身所产生的地址为虚拟地址,每一个arm芯片内都有存 ...
随机推荐
- 解决vs2010按ctrl+f5,调试窗口一闪而过的方法
vs2010调试按F5与按Ctrl+F5有什么区别 Ctrl F5测试运行后不自动推出控制台,直接按F5会自动退出去 解决vs2010按ctrl+f5,调试窗口一闪而过的方法 http://hi.ba ...
- flask上传文件到指定路径
flask上传文件到指定路径 项目结构如下: 首先是:视图函数uload_file.py,代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- fro ...
- openresty开发系列31--openresty执行流程
openresty开发系列31--openresty执行流程 我们先看个例子 location /test { set $a 32; echo $a; set $a 56; e ...
- Python - Django - form 组件常用的字段和字段参数
邮箱: views.py: from django import forms from django.forms import widgets class RegForm(forms.Form): e ...
- 【mysql 默认密码】ubuntu 上 初次启动mysql 默认密码
对于debian系的系统,mysql初始默认密码 cat /etc/mysql/debian.cnf
- 【tensorflow基础】ubuntu-tensorflow可视化工具tensorboard-No dashboards are active for the current data set.
前言 今天基于tensorflow训练一个检测模型,本应看到训练曲线的,却只见到一个文件events.out.tfevents.1570520647.hostname,后来发现这个文件可以查看训练曲线 ...
- 基于thrift的node.js rpc服务
1.在node.js 服务下创建node_modules文件,npm install thrift 下载thrift到该文件下. 2.编写idl文件.user.thrift 内容如下: struct ...
- [LeetCode] 602. Friend Requests II: Who Has Most Friend? 朋友请求 II: 谁有最多的朋友?
In social network like Facebook or Twitter, people send friend requests and accept others' requests ...
- 【视频开发】【CUDA开发】FFMPEG硬件加速-nvidia方案
1.目标 <1>显卡性能参数: <2>方案可行性: 2.平台信息 2.1.查看当前显卡信息 命令: lspci |grep VGA 信息: 01:00.0 VGA com ...
- mysql执行计划详解,
一.语法 explain SQL语句 例如: explain ; 二.explain输出解释 +----+-------------+-------+-------+----------------- ...