S3C2440A工程移植:从ADS1.2到RealView MDK


        RealView MDK在中国推出已经有一段时间了,而且作为未来发展的趋势必将取代ADS1.2,成为工程师广泛应用的开发平台。

但是,以前的S3C2440的项目都是由ADS开发,而且我在网上搜索并没有发现有ADS1.2工程移植的例子,只能自己摸索。而且刚刚接触嵌入式的这个部分,希望把这个成果与大家分享,让其他的人少走弯路。

移植思路:

        不兼容问题主要在于启动的汇编代码中加入了很多的与编译器相关的调用,只需修改原有的2440init.s部分代码就可以实现。而修改Realview自身引入的s3c2440a.s启动代码修要修改的内容过多。因而,采用第一种方案。

 

编译中出现的问题以及解决:

1,  .\output\LJD2440TEST.axf: Error: L6218E: Undefined symbol Main (referred from 2440init.o).

Main -> main,新的Realview MDK中大小写认为名称不同

 

2,.\output\LJD2440TEST.axf: Error: L6915E: Library reports error: scatter-load file declares no heap or stack regions and __user_initial_stackheap is not defined

    加入部分代码

                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

.\output\LJD2440TEST.axf: Error: L6218E: Undefined symbol Image$$RW$$Limit (referred from 2440lib.o).

.\output\LJD2440TEST.axf: Error: L6218E: Undefined symbol Image$$RO$$Base (referred from main.o).

.\output\LJD2440TEST.axf: Error: L6218E: Undefined symbol Image$$RO$$Limit (referred from main.o).

.\output\LJD2440TEST.axf: Error: L6218E: Undefined symbol Image$$RW$$Base (referred from main.o).

.\output\LJD2440TEST.axf: Error: L6218E: Undefined symbol Image$$ZI$$Base (referred from main.o).

.\output\LJD2440TEST.axf: Error: L6218E: Undefined symbol Image$$ZI$$Limit (referred from main.o).

 

办法:

        重新编写.sct加载文件

4, Error: L6238E: foo.o(.text) contains invalid call from '~PRES8' function to'REQ8' function Warning: L6306W: '~PRES8' section foo.o(.text) should not use the address of 'REQ8' function foobar

 

办法:在每个汇编文件的开头,添加“PRESERVE8”指令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值