文档章节

ADS中RO_BASE、RW_BASE以及Image entry point的设置

For_MGP
 For_MGP
发布于 2014/10/31 11:26
字数 741
阅读 73
收藏 0

注意从中体会


资料剪切一

设置完了“Language Settings”后接下来就是“Linker”选项了,在该选项里面有和硬件紧密相关的设置,首先进入“ARM Linker”子选项,在该子选项内需要设置入口地址(entry)、RO地址、RW地址。
首先设置R0/RW地址,RO表示Read Only,RW表示Read Write,RO栏默认是0x8000,需要根据实际硬件进行更改,一般为FLASH地址,RO也可以设置在SDRAM中,启动代码中包含COPY的部分,会将代码移动到SDRAM中运行,这对44B0特别适合,因为SDRAM很大,而且对速度的提升也很明显。entry point必须同RO一致,以提供连接器定位信息
本44B0板的FLASH地址即为0x00000000;RW栏默认为空,一般为SDRAM地址,本44B0板的地址即为0x0C000000(RO也可以设置在SDRAM中但entry point必须同RO一致)。


资料剪切二

RO Base:用来设置程序代码存放的起始地址。 RW Base:用来设置程序数据存放的起始地址。
这两项的地址均由硬件决定,并应该在SDRAM的地址范围内。本实验箱使用的是64M SDRAM,其地址范围是0x30000000—0x33FFFFFF,故采用首地址作为程序代码的存放的首地址,即在RO Base文本框中输入0x30000000, RW Base文本框用户自定义,只要保证在SDRAM地址空间内,并且是字对齐即可,这里我们可以输入0x31000000。
此处的设置也就是说在地址为0x30000000--0x31000000之间是只读区域,用来存放程序代码,从0x31000000开始用来存放程序数据。
本选项卡只对Image entry  point进行设置,该项是程序代码的入口地址。如果程序在SDERAM中运行,针对本试验箱可选择的地址范围0x30000000--0x31000000。通常程序代码的入口地址与RO Base中程序代码的首地址相同,这里为0x30000000。其他默认即可。

资料剪切三

2. 设置程序入口地址
单击Options标签,在Image entry point一栏中设置程序的入口地址。程序的入口地址是指代码通过Multi-ICE仿真器下载到硬件板卡上的存储器之后,用户调试程序之前PC指针所指向的地址。一般将入口地址设置为中断向量表代码的起始地址。中断向量表部分代码被下载到片内RAM,所以入口地址设置为片内RAM的起始地址0x2000,0000,见图10。


资料剪切四

其中set_peri_port函数是必须要添加的,这样才能访问到s3c6410的外设空间。

setup_peri_port:  
            ldr r0,=0x70000013      @base addres:0x70000000,size:256MB  
            mcr p15,0,r0,c15,c2,4  
            mov pc,lr

把外设的基地址告诉CPU对于6410来说,内存(0x00000000~0x60000000),外设(0x70000000-0x7fffffff)

© 著作权归作者所有

For_MGP
粉丝 2
博文 66
码字总数 20576
作品 0
深圳
程序员
私信 提问
对ARM加载域和运行域的理解

一般而言,一个程序包括只读的代码段和可读写的数据段。在ARM的集成开发环境中,只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量和静态变量被称作RW段(ReadWrite);RW段中要被初始...

长平狐
2013/06/03
350
0
【C语言常识】Keil MDK的分散加载文件.sct

出处:http://blog.csdn.net/tracing/article/details/9720157 面对这样一个新东西,先去官网看看,或者看看IDE的帮助,基本上你想要的东西都有了, BAIDU来的都不全面,这是一种学习方法。 ...

wuhenyouyuyouyu
2017/05/04
0
0
KEIL MDK输出map文件分析

转自: http://kmoving.blog.163.com/blog/static/20504919720129241952437/ 一、文件分析流程 1、第一部分:Section Cross References 主要是各个源文件生成的模块之间相互引用的关系。 stm3...

u012408797
2018/05/08
0
0
试图搞懂MDK程序下载到flash(三)--MDK配置选项Linker、Target、Debug的理解分析

在写这一节时,我还是想再重复一下自己写这文章的目的,我的目的就是为了实现将MDK编写的裸机程序可不可以脱机运行,也就是不用调试的方法,因为调试的话程序默认是在SRAM中运行的,掉电丢失...

长平狐
2013/06/17
4.3K
0
armlink 散列文件使用说明, FirstEntry.s堆栈,堆初始化基地址得到

转载于此地址:http://www.guiplus.com/html/60/t-260.html 一、基本概念 一般而言,一个程序包括只读的代码段和可读写的数据段。只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量...

鉴客
2012/03/09
415
0

没有更多内容

加载失败,请刷新页面

加载更多

用原生js对表格排序

本文转载于:专业的前端网站➸用原生js对表格排序 阿里的模拟笔试题,当时时间有限没写出来,其实是因为自己对原生dom操作不熟悉,这里补一下。 题目的大意是有一个表格,如代码所示 <table>...

前端老手
22分钟前
3
0
IT兄弟连 HTML5教程 HTML5表单 HTML5新增表单元素

HTML5有一些新的表单元素:<datalist>、<keygen>、<output>。不是所有的浏览器都支持HTML5新的表单元素,但即使浏览器不支持该表单属性,仍然可以显示为常规的表单元素。 1 <datalist>元素 ...

老码农的一亩三分地
24分钟前
3
0
【朝花夕拾】Android自定义View篇之(一)View绘制流程

https://www.cnblogs.com/andy-songwei/p/10955062.html

shzwork
26分钟前
4
0
Qt编写自定义控件70-扁平化flatui

一、前言 对于现在做前端开发人员来说,FlatUI肯定不陌生,最近几年扁平化的设计越来越流行,大概由于现在PC端和移动端的设备的分辨率越来越高,扁平化反而看起来更让人愉悦,而通过渐变色产...

飞扬青云
35分钟前
2
0
教你玩转Linux—添加批量用户

添加和删除用户对每位Linux系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个、上百个甚至上千个用户时,我们不太可能还使用useradd一个一个地添加,必然要找一种简便的创建大量用户...

Linux就该这么学
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部