这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » ARM程序问题:|Image$$RO$$Limit| 是什么意思

共3条 1/1 1 跳转至

ARM程序问题:|Image$$RO$$Limit| 是什么意思

菜鸟
2012-12-01 20:38:11     打赏

我初学ARM,看到一个ARM的程序中有句
IMPORT |Image$$RO$$Limit|
想请教两个问题:
1)|Image$$RO$$Limit| 是什么意思?
2)在所有文件里都没有找到 |Image$$RO$$Limit| 的定义,那使用IMPORT的目的何在?

共两个文件如下
Startup.s:
; 起动文件。初始化C程序的运行环境,然后进入C程序代码。

       IMPORT |Image$$RO$$Limit| 
       IMPORT |Image$$RW$$Base|  
       IMPORT |Image$$ZI$$Base|  
        IMPORT |Image$$ZI$$Limit| 

  IMPORT Main  ; 声明C程序中的Main()函数

  AREA Start,CODE,READONLY ; 声明代码段Start
  ENTRY    ; 标识程序入口
  CODE32    ; 声明32位ARM指令 
   
Reset LDR  SP,=0x40003F00

        ; 初始化C程序的运行环境
     LDR    R0,=|Image$$RO$$Limit|
     LDR     R1,=|Image$$RW$$Base| 
     LDR     R3,=|Image$$ZI$$Base| 
   
     CMP    R0,R1
     BEQ     LOOP1
LOOP0 CMP     R1,R3  
     LDRCC   R2,[R0],#4    
     STRCC   R2,[R1],#4
     BCC     LOOP0
     
LOOP1 LDR     R1,=|Image$$ZI$$Limit|
     MOV     R2,#0
LOOP2 CMP     R3,R1
     STRCC   R2,[R3],#4
     BCC     LOOP2
     
     B  Main  ; 跳转到C程序代码Main()函数
     
     END

Test.c :
#define  uint8   unsigned char
#define  uint32  unsigned int

#define  N  100

uint32  sum;
// 使用加法运算来计算1+2+3+...+(N-1)+N的值。(N>0)
void  Main(void)
{  uint32  i;
  
   sum = 0;
   for(i=0; i<=N; i++)
   {  sum += i;
   }
  
   while(1);
}




关键词: 程序     问题     Image     Limit     是什么     意思    

高工
2012-12-02 11:12:05     打赏
2楼
rom大小限制。这东西不好理解,好好看看编译手册。

高工
2012-12-02 11:57:38     打赏
3楼
IMPORT |Image$$RO$$Limit| 
       IMPORT |Image$$RW$$Base|  
       IMPORT |Image$$ZI$$Base|  
        IMPORT |Image$$ZI$$Limit| 
这类似的东西都来自编译器设置选项,就是ROM、RAM的基地址、大小、分段等信息,可不必深究。

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]