ARM IMPORT |Image$$RO$$Limit| 的含义

发布者:花开堂前最新更新时间:2015-11-13 来源: eefocus关键字:ARM  IMPORT 手机看文章 扫描二维码
随时随地手机看文章
IMPORT |Image$$RO$$Base| ; Base of ROM code
IMPORT |Image$$RO$$Limit| ; End of ROM code (=start of ROM data)
IMPORT |Image$$RW$$Base|   ; Base of RAM to initialise
IMPORT |Image$$ZI$$Base|   ; Base and limit of area
IMPORT |Image$$ZI$$Limit| ; to zero initialise

IMPORT MMU_SetAsyncBusMode
IMPORT MMU_SetFastBusMode ;

IMPORT Main    ; The main entry of mon program

............

对于刚学习ARM的人来 说,如果分析它的启动代码,往往不明白下面几个变量的含义:|Image$$RO$$Limit|、|Image$$RW$$Base|、|Image$$ZI$$Base|。

首先申明我使用的调试软件为ADS1.2, 当我们把程序编写好以后,就要进行编译和链接了,在ADS1.2中选择MAKE按钮,会出现一个Errors and Warnings 的对话框,在该栏中显示编译和链接的结果,如果没有错误,在文件的最后应该能看到Image component sizes,后面紧跟的依次是Code,RO Data ,RW Data ,ZI Data ,Debug 各个项目的字节数,最后会有他们的一个统计数据:

Code 163632 ,RO Data 20939 ,RW Data 53 ,ZI Data 17028

Tatal RO size (Code+ RO Data)             184571 (180.25kB)

Tatal RW size(RW Data+ ZI Data)           17081(16.68 kB)

Tatal ROM size(Code+ RO Data+ RW Data)   184624(180.30 kB)

后面的字节数是根据用户不同的程序而来的,下面就以上面的数据为例来介绍那几个变量的计算。

在ADS的Debug Settings中有一栏是Linker/ARM Linker,在output选项中有一个RO base选项,下面应该有一个地址,我这里是0x0c100000(不是每个都一样的),后面的RW base 地址是0x0c200000,然后在Options选 项中有Image entry point ,是一个初始程序的入口地址,我这里是0x0c100000 。

有了上面这些信息我们就可以完全知道这几个变量是怎么来的了:

|Image$$RO$$Base| = Image entry point = 0x0c100000 ;表示程序代码存放的起始地址

|Image$$RO$$Limit|=程序代码起始地址+代码长度+1=0x0c100000+Tatal RO size+1

= 0x0c100000 + 184571 + 1 = 0x0c100000 +0x2D0FB + 1

= 0x0c12d0fc

|Image$$RW$$Base| = 0x0c200000 ;由RW base 地址指定

|Image$$RW$$Limit| =|Image$$RW$$Base|+ RW Data 53 = 0x0c200000+0x37(4的倍数,0到55,共56个单元)

=0x0c200037

|Image$$ZI$$Base| = |Image$$RW$$Limit| + 1 =0x0c200038

|Image$$ZI$$Limit| = |Image$$ZI$$Base| + ZI Data 17028

                            =0x0c200038 + 0x4284

                            =0x0c2042bc

也可以由此计算:

|Image$$ZI$$Limit| = |Image$$RW$$Base| +TatalRWsize(RWData+ZIData) 17081

                            =0x0c200000+0x42b9+3(要满足4的倍数)

                            =0x0c2042bc

关键字:ARM  IMPORT 引用地址:ARM IMPORT |Image$$RO$$Limit| 的含义

上一篇:简单的启动代码(Startup.s)分析
下一篇:ST宣布预置DSI控制器的先进STM32微控制器已投入量产

推荐阅读最新更新时间:2024-03-16 14:39

基于ARM 内核的SoC已经成为嵌入式处理器的开发实现
ARM是目前全球最大的嵌入式芯片技术的IP提供商,其所拥有的IP已经成为众多芯片设计公司采纳的一种技术标准和开发平台。所以基于ARM 内核的SoC已经成为嵌入式处理器的开发重点,可通过ARM实现LCD控制器来完成对嵌入式LCD屏的控制。如果利用TFT屏支持显示,其图像分辨率存在局限性,因此通过搭建一个FPGA平台实现图像缩放器功能外接LCD显示器,完成ARM信号的扩展显示。同时FPGA也能完成对ARM平台产生的图像信号进行验证和仿真,以测试其功能和时序的正确性。XGA显示器因其显示量大,输出形式多样等特点已经成为目前大多数设计中的常用输出设备,因此本文针对ARM产生的VGA信号通过插值算法对其扩展为XGA标准信号。 1 V
[单片机]
基于<font color='red'>ARM</font> 内核的SoC已经成为嵌入式处理器的开发实现
如何使用ARM7-LPC2148微控制器中的PWM控制LED的亮度
众所周知,微控制器从模拟传感器获取模拟输入,并使用ADC(模数转换器)来处理这些信号。但是,如果微控制器想要产生模拟信号来控制伺服电机、直流电机等模拟操作设备怎么办?微控制器不会产生像 1V、5V 这样的输出电压,而是使用一种称为 PWM 的技术来操作模拟设备。PWM的一个例子是我们笔记本电脑的冷却风扇(直流电机)需要根据温度进行速度控制,这也是通过在主板中使用脉宽调制(PWM)技术来实现的。 在本教程中,我们将使用 ARM7-LPC2148 微控制器中的 PWM 控制 LED 的亮度。 PWM(脉冲宽度调制) PWM 是一种使用数字值控制模拟设备的好方法,例如控制电机的速度、LED 的亮度等。虽然 PWM 不提供纯模拟输
[单片机]
如何使用<font color='red'>ARM</font>7-LPC2148微控制器中的PWM控制LED的亮度
ARM裸机开发bootloader时钟初始化ARM跑快了
一、概念解析 1、什么是时钟脉冲信号,起什么作用? 时钟脉冲信号时有一定电压幅度和一定的时间间隔并连续发出的脉冲信号。时钟脉冲信号是时序逻辑的基础,它用于决定逻辑单元中的状态何时更新。数字芯片中的众多晶体管都工作在开关状态,它们的导通和关断动作都是按照时钟信号的节奏进行的。也就是说嵌入式系统是按照时钟来安排CPU的任务。 2、时钟脉冲信号的频率是指单位时间内产生的时钟脉冲个数。 3、如何产生时钟信号? 时钟信号一般有晶振或晶振与PLL产生。 晶振的制造就是用石英晶体经精密切割磨削并镀上电极焊上引线就做成了。这种晶体如果给它通上电,它就会产生机械振荡,其频率和他们的形状,材料,切割方向等密切相关。 由于石英晶体化学性能非常
[单片机]
<font color='red'>ARM</font>裸机开发bootloader时钟初始化<font color='red'>ARM</font>跑快了
基于ARM—LINUX平台的物联网服务器设计
0 引言 物联网是互联网应用的扩展,是一种新兴的联网技术,其核心是物与物之间的信息通信交流,也是物与人之间的交互控制。物联网技术,主要是利用各种传感器设备,例如:无线技术、射频识别(RFID)技术,各类传感器等技术设备将物理世界中的各种信息,如温度、光强、位置等信息通过网络传输,达到物与物之间、物与人之间的信息交互目的。 要使人们能方便地访问物联网信息,监测和控制各类传感节点和电气设备,一个友好的用户界面是前提。基于B/S架构的解决方案以其客户端通用性成为构建系统的首选。本文将设计开发一个通用的基于ARM处理器平台和Linux嵌入式操作系统的物联网服务器,在硬件平台上,将使用基于XSCALEPXA270处理器的UPTECH
[单片机]
基于<font color='red'>ARM</font>—LINUX平台的物联网服务器设计
数据中心时代,Arm和RISC-V将崛起
据量子位报道,因为连续押中特斯拉、Zoom和比特币,Catherine Wood被人称为“牛市女皇”,而她对科技趋势的预测也备受关注。 在其最新发布的2021年技术趋势中。列出了涉及深度学习、比特币、电动汽车、航空航天、生物医学等数十个机会领域。其中,他指出,Intel时代将终结,ARM、RISC-V和GPU将成为主流的处理器。 以ARM与x86为例。首先在市场份额上。 2020年,ARM处理器市占率仅0.1%,但到2030年,ARM处理器则将直接跃升至82%。 目前,苹果、微软等PC都在加紧努力支持ARM处理器。 然后在营收上。 2030年,ARM服务器的营收可能会增长100倍。从2020年的不到1
[物联网]
数据中心时代,<font color='red'>Arm</font>和RISC-V将崛起
基于ARM与μClinux的RTU设计
在电力系统变电所以及电气化铁道牵引变电所远动控制系统中,远程数据采集与监控终端(RTU)是关键设备,实现遥控、遥测、遥信等功能。 采用工业控制计算机,扩展测控硬件接口电路,是RTU设计常见的方法,但是这种方法设计的RTU成本高、体积大、耗电大。采用80C196等单片机设计RTU,由于单片机的运算处理和硬件扩展等能力较低,影响RTU的性能。而基于ARM处理器设计的RTU,硬件上具有成本低、体积小、耗电省、处理能力强等优点;软件上由于采用μClinux操作系统,有许多优秀的应用程序成果可以利用。正是由于这些优势,采用ARM和μClinux设计RTU已经成为一个热点。 1 RTU硬件电路设计 1.1 RTU总体结构 RTU的核心
[单片机]
基于<font color='red'>ARM</font>与μClinux的RTU设计
服务器巨头纷纷力挺ARM,专家表示并不看好
当ARM刚刚宣布进军服务器之时,业界并不以为意,毕竟在高端领域,X86、MIPS、甚至是SPARC、PowerPC架构,都会比ARM拥有更多的经验,然而,最近IBM DELL等公司纷纷宣布推出ARM处理器架构的服务器。这家被炒得越来越火的公司,在FPGA领域打败了PowerPC,在手机嵌入式领域击溃Intel,但业界一直在强调ARM的低功耗,因此ARM急需在高端领域,与众多处理器一决高下,而服务器,显然是这场战役的主战场。 作为目前世界上最大的服务厂商之一,DELL公司在正计划推出一款基于多核ARM处理器的服务器。此款服务器将会成为DELL公司首款采用非X86架构的服务器产品,此款服务器与DELL在一年前推出的基于威
[嵌入式]
Nordic Semiconductor 与 Arm 扩展合作关系
签署最新低功耗处理器设计、软件平台和安全 IP 许可协议 Nordic签署 Arm Total Access 授权许可协议,确保其现有和未来的多协议、Wi-Fi、蜂窝物联网和DECT NR+ 产品具备业界领先的处理器和安全技术 挪威奥斯陆 – 2024年2月20日 – Nordic Semiconductor宣布与世界领先的半导体设计和软件平台企业Arm签署一项多年期Arm Total Access (ATA)授权许可协议 。ATA 保证为Nordic当前和未来的产品 (包括多协议、Wi-Fi、蜂窝物联网和 DECT NR+ 解决方案) 提供广泛的Arm® IP、工具、支持和培训。 两家企业的合作始于 2012
[物联网]
Nordic Semiconductor 与 <font color='red'>Arm</font> 扩展合作关系
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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