ADS1.2的代码移植到RealView一些error分享

RealView MDK在中国推出已经有一段 时间了,而且作为未来发展 趋势必将取代ADS1.2,成为 工程师广泛 应用开发平台。
把ADS1.2的代码移植到RealView可能让初学者遇到很 error;
不兼容问题主要在于启动的汇编代码中加入了很多的与 编译器相关的调用.下面以2440abootloader为例,只需修改原有的2440init.s部分代码就可以了,说下一些常见的问题:
1:error : No section matches selector –no section to be FIRST/LAST.
把原来的Init 代码段名修改成RESET:
    ;     AREA  Init,CODE,READONLY
         AREA  RESET,CODE,READONLY

2:error  Undefined symbol Main (referred from 2440init.o).
      error: scatter-load file declares no heap or stack regions and __user_initial_stackheap is not defined
    一般完成上一步修改就不会出现这个error;

    如果代码中使用了main则加入部分代码
                EXPORT  __user_initial_stackheap
__user_initial_stackheap

                LDR     R0, =  Heap_Mem
                LDR     R1, =(Stack_Mem + USR_Stack_Size)
                LDR     R2, = (Heap_Mem +      Heap_Size)
                LDR     R3, = Stack_Mem
                BX      LR


3: Undefined symbol Image$$RW$$Limit (referred from *.o)
   Undefined symbol Im.............

把Image$$RO$$Base,  Image$$RO$$Limit, Image$$RW$$Base,  Image$$ZI$$Base, Image$$ZI$$Limit
改成:
Image$$ER_ROM1$$RO$$Base,Image$$ER_ROM1$$RO$$Limit, Image$$RW_RAM1$$RW$$Base,Image$$RW_RAM1$$ZI$$Base, Image$$RW_RAM1$$ZI$$Limit

4:error  contains invalid call from '~PRES8' function to'REQ8' function *
     汇编 文件的开头,添加“PRESERVE8”指令。


5:error: L6235E: More than one section matches selector - cannot all be FIRST/LAST.
    建立realview工程时,不要导入realview的S3C2440.s,否则当把Init代码段名改成RESET时,会存在两个RESET段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值