当前位置: 代码迷 >> 嵌入开发 >> ADS工程转IAR工程解决方案
  详细解决方案

ADS工程转IAR工程解决方案

热度:5959   发布时间:2013-02-26 00:00:00.0
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


                                     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

        
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中实现。
  相关解决方案