2008年11月19日星期三

ADS集成开发环境

ADS是ARM公司推出的ARM核微控制器集成开发环境。ARM Developer Suite.

1.ADS组成:
1.1代码生成工具,也就是编译器,链接器。
1.2集成开发环境:Codewarrior IDE.
1.3调试器:AXD
1.4指令模拟器:ARMulator,用来仿真调试。
1.5ARM开发包:底层例程,例如fromELF.
1.6ARM应用库。C,C++库等。

2. 关于ARM工程模板。
周立功网站提供了基于ADS和Keil的针对各种LPC芯片的工程模板。
例如:LPC2200系列的ARM7有6个工程模板。
工程模板有什么用呢?
因为ARM下程序与PC程序有所不同,也许需要将程序放到某个位置,这个位置是CPU启动后跳转的地点。所以ARM程序要做很多事,比如要设置中断向量表的位置。这块程序肯定是要ASM实现的。则工程模板会帮客户实现这些ASM程序。并且会提供分散加载文件(mem_a.scf,mem_b.scf, mem_c.scf).这些文件会指定程序会加载在何处。


3.LPC2200工程模板分散加载描述文件
当使用ARM Executable Image for lpc2200模板建立工程。则工程有4个生成目标(target system): DebugIExram, DebugInChipFlash, RelInChip,RelOutChip.

3.1 DebugInExram:片外RAM调试模式。程序放在片外RAM中。并且开发板设为片外RAM使用Bank0 。如果用户定制的设备不是按照RAM使用Bank0。则不能使用这个模式。
入口点地址:0x80000000
对应分散加载描述文件: mem_b.scf.
这个模式有个前提:片外RAM使用Bank0(即起始地址为0x80000000). 这一条不可修改。


3.2 DebugInChipFlash:片内Flash调试模式,程序放在片内Flash中。
入口点地址:0x00000000
对应分散加载描述文件:mem_c.scf

3.3 RelInChip: 片内Flash工作模式,程序放在片内Flash中。程序写入Flash之后即被加密。
入口点地址:0x00000000
对应分散加载描述文件:mem_c.scf

3.4 RelOutChip:片外Flash工作模式。程序放在片外Flash中。
入口点地址:0x80000000
对应分散加载描述文件:mem_a.scf

如何确定哪个模式对应的分散加载描述文件
在Codewarrior IDE中。
Setting中,Linker ---〉ARM Linker
其中Scatter:中指定了使用哪个分散加载描述文件。


分散加载描述文件解析:
ROM_EXEC:入口点地址
IRAM:片内RAM地址
STACKS:?
ERAM:片外RAM地址
HEAP:?

没有评论: