打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
简单的启动代码(Startup.s)分析
以下启动代码是从《ARM嵌入式系统实验教程()》中提取出来的。

 1 启动文件,初始化C程序的运行环境,然后进入C程序代码。
 2
 3         IMPORT    |Image$$RO$$Limit|  
 4         IMPORT    |Image$$RW$$Base|   
 5         IMPORT    |Image$$ZI$$Base|   
 6         IMPORT    |Image$$ZI$$Limit|  
 7
 8         IMPORT    Main      声明C程序中的Main()函数
 9
10         AREA      Start,CODE,READONLY   声明代码段Start
11         ENTRY      标识程序入口
12         CODE32     声明32ARM指令    
13            
14 Reset   LDR       SP,=0x40003F00     ; 设置堆栈
15
16         初始化C程序的运行环境
17         LDR       R0,=|Image$$RO$$Limit|
18         LDR       R1,=|Image$$RW$$Base|    
19         LDR       R3,=|Image$$ZI$$Base|    
20             
21         CMP       R0,R1
22         BEQ       LOOP1
23 LOOP0   CMP       R1,R3      
24         LDRCC     R2,[R0],#4     
25         STRCC     R2,[R1],#4 
26         BCC       LOOP0
27         
28 LOOP1   LDR       R1,=|Image$$ZI$$Limit| 
29         MOV       R2,#0
30 LOOP2   CMP       R3,R1
31         STRCC     R2,[R3],#4
32         BCC       LOOP2
33         
34         B         Main     跳转到C程序代码Main()函数
35        
36         END

ADS1.2的帮助文档可以看出以下几个symbol的定义应该是:
|Image$$RO$$Base| 
表示RO输出段运行时起始地址,也可以说是程序代码存放的起始地址,由-ro-base这个参数指定;
|Image$$RO$$Limit|
表示RO输出段运行时存储区域界限,其值可通过|Image$$RO$$Base|+Code sizes+RO Data sizes+4计算得出;
|Image$$RW$$Base|
表示RW输出段运行时起始地址,记得是运行时的地址,而不一定是加载时的存放地址,因为RW输出段在加载时可能是在ROM中并紧跟着RO输出段存放的,当程序运行时才移动(在有些书中说是移动,个人觉得应该只是复制,希望大家能帮我解释一下,谢谢!)到RAM起始地址为|Image$$RW$$Base|的区域,由-rw-base这个参数指定;未指定的话,默认紧跟RO输出段,那么|Image$$RW$$Base||Image$$RO$$Limit|;
|Image$$RW$$Limit|
表示RW输出段运行时存储区域界限,其值可通过|Image$$RW$$Base|+RW Data sizes+4计算得出;
|Image$$ZI$$Base|
表示ZI输出段运行时起始地址,它是运行时在RAM中生成的,紧跟着RW输出段存放,其值和|Image$$RW$$Limit|一样
|Image$$ZI$$Limit|
表示ZI输出段运行时存储区域界限,其值可通过|Image$$ZI$$Base|+ZI Data sizes+4计算得出。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
解决ads工程转到MDK(keil)可能出现的error
ARM启动代码分析
arm image 中的链接变量
arm开发经验笔记(ZT)
Porting uClinux to Samsung S3C44B0X Board|uClinux, uCGUI, ARM7, S3C44B0, bootloader
ARM论坛 - ARM技术论
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服