ADS工程转IAR工程
本帖最后由 jiyingyijiye 于 2012-04-28 10:31:46 编辑 一:ADS中的设置过程:
1)我的目的:针对我的开发板(arm7,系统uc/os-ii),用ADS开发一个在开发板上运行的应用程序。
2)过程:
2-0)new->ARM Executable Image, 工程名:armtest.
2-1) 我 建立了我的main函数(test.c)、启动函数(boot.s)和我自定义的库。
test.c 代码如下:
#include "ndlib.h"
int main(void)
{
Sysinit(); // ndlib库中的函数
MessageBox("M73Test", "Hello,Simon", MSG_OK|MSG_CANCEL);// ndlib库中的函数
return 0;
}
boot.s 代码如下:
IMPORT|Image$$RO$$Limit|
IMPORT|Image$$RW$$Base|
IMPORT|Image$$ZI$$Base|
IMPORT|Image$$ZI$$Limit|
;The imported labels
IMPORT main ;The entry point to the main function
CODE32
AREA Ramdisk,CODE,READONLY
ENTRY
RamdiskInit
LDRR0,=|Image$$RO$$Limit|
LDRR1,=|Image$$RW$$Base|
LDRR3,=|Image$$ZI$$Base|
CMPR0,R1
BEQLOOP1
LOOP0 CMPR1,R3
LDRCCR2,[R0],#4
STRCCR2,[R1],#4
BCCLOOP0
LOOP1 LDRR1,=|Image$$ZI$$Limit|
MOVR2,#0
LOOP2 CMPR3,R1
STRCCR2,[R3],#4
BCCLOOP2
RamDiskStacks
B main
END
工程添加的文件如下:
ndlib.a (这个是我封装的库)
test.c (我的main函数)
boot.s (启动代码)
2-2)工程的设置:
TarGet Settings:
Linker: ARM Linker
Post-linker: ARM fromELF
linker:
ARM Linker:
Output: Linktype: Simple; Simple image:RO Base:0x81064000;RW Base:(为空)
Options: Image entry point: 0x81064000
Layout: Object/Symbol: boot.o ; Section: RamDisk ;
整个Equipment Command line:
-info totals -entry 0x81064000 -ro-base 0x81064000 -first boot.o(RamDisk)
如上做之后,在ADS中就可以编译生成我想要的image喇。
二:在IAR中的设置:我是要在IAR5.4中开发一个类似这样的工程的。
三:我的疑问:
在IAR中如何设置:比如:如何设置程序的入口点:是0x81064000,等等,
在ADS中可以写一个启动代码boot.s来设置RO、RW、放在什么地方,但是在IAR中该如何设置呢?还是根本就不用boot.s啦,用其他的方式实现?
如果要在IAR中实现一样的效果的话,我应该如何修改boot.s文件呢??
如果转到IAR开发环境的话,boot.s中的实现,在IAR开发环境中如果实现呢(或者如何修改呢)???
四:我想要得到的效果:
把上面这个ADS的工程在,IAR中实现。
五:希望高手提点一下,最好可以把在IAR中我这个工程的实现过程说一下啦~~ 希望可以有高手帮帮忙啦!!!
[解决办法]
直接在IAR软件里面写代码 不考虑ADS
[解决办法]
但是你要进行环境的设置啊!!,因为只是工程的移植,一般代码改动不到吧,再说了,我的测试代码很简单呢,,我只是不理解在IAR中如何把RO、RW,的地址设置好呢(在ADS中:在Output: Linktype: Simple; Simple image:RO Base:0x81064000;RW Base:(为空)设置就可以了,,但是IAR的就不知道怎么样了??)