在装有keil4.72的基础上,安装了ADS1.2,然后上网查找asd工程怎么可以转到keil下运行。网上搜索了好多资料里,内容讲的都差不多。但按照说的方法试了之后,仍出现许多乱七八糟的错误,很是郁闷!
一、遇到的其中一个头疼的错误是:
Warning:L6310W: Unable to find ARM libraries
Error: L6411E:No compatible library exists with a definition of startup symbol __main.
Target not created
问题原因是MDK与ADS冲突了,
解决方法如下
卸载ADS1.2,同时,重新安装keil:
把ADS1.2的环境变量删除。我的电脑->属性->高级-环境变量-path里面把C:\Program Files\ARM\ADSv1_2等相似的5个变量给删除了。
重新安装keil。
在我的电脑->属性->高级-环境变量-path里面增加一个变量:
增加环境变量: ARMCC5LIB
变量值:..\Keil\ARM\ARMCC\lib
二、Keil关于S3C2440的关键配置信息:
1.
2. keil中如何生成bin文件:
在user属性框中 run#1中输入
fromelf.exe--bin -o "$L@L.bin" "#L"
3.打开2440init.s作以下修改:
注释掉
IMPORT |Image$$RO$$Base| ; Base of ROM code
IMPORT |Image$$RO$$Limit| End of ROM code (=start of ROM data)
IMPORT |Image$$RW$$Base| Base of RAM to initialise
IMPORT |Image$$ZI$$Base| Base and limit of area
IMPORT |Image$$ZI$$Limit| to zero initialise
添加
IMPORT |Image$$ER_ROM1$$RO$$Base| ; Base of ROM code
IMPORT |Image$$ER_ROM1$$RO$$Limit| End of ROM code (=start of ROM data)
IMPORT |Image$$RW_RAM1$$RW$$Base| Base of RAM to initialise
IMPORT |Image$$RW_RAM1$$ZI$$Base| Base and limit of area
IMPORT |Image$$RW_RAM1$$ZI$$Limit| to zero initialise
注释掉
BaseOfROM DCD |Image$$RO$$Base|
TopOfROM DCD |Image$$RO$$Limit|
BaseOfBSS DCD |Image$$RW$$Base|
BaseOfZero DCD |Image$$ZI$$Base|
EndOfBSS DCD |Image$$ZI$$Limit|
添加
BaseOfROM DCD |Image$$ER_ROM1$$RO$$Base|
TopOfROM DCD |Image$$ER_ROM1$$RO$$Limit|
BaseOfBSS DCD |Image$$RW_RAM1$$RW$$Base|
BaseOfZero DCD |Image$$RW_RAM1$$ZI$$Base|
EndOfBSS DCD |Image$$RW_RAM1$$ZI$$Limit|
在
AREA Init,CODE,READONLY
这行前将上
PRESERVE8
4.成功例子:
TQ2440测试文件由ads1.2转到keil中
Keil工程文件在下面网址可以获取http://www.pudn.com/downloads625/sourcecode/windows/vxd/detail2541556.html
或http://download.csdn.net/detail/xiaoyue1800/7351593
三、说明一下.bin 文件和.hex文件的区别:
转自http://blog.sina.com.cn/s/blog_60cf05130101eddp.html
.hex文件是单片机程序编辑完之后常见的文件格式,是内容是ASCLL码,也就是0x00-0xff的字符格式。比如'1'对应的是0x31。任何字符都是有对应的0xXX的ASCLL码。也就是最常见的text格式。
比如一个hex格式文件的内容为:
30 31 3233
表示文本格式的字符“0123”
然而bin文件的格式只有一个字节0-f:一般来讲是机器代码,汇编语言编译后的结果。也就是binary格式的缩写。比如一个bin格式的内容为:
10000000F863002065010008250A0008DD090008E2
10001000210A0008BF070008CB18000800000000F4
10002000000000000000000000000000990F000820
有上面这两者格式的存储方式可以知道,hex文件转变为bin文件后,占用空间会大大降低。
AXF是ARM芯片使用的文件格式,它包含bin代码外,还包括了调试信息。常见于手机软件编译生成的文件中。与AXF文件相似,经常会用到的是HEX文件,HEX文件包括地址信息,可直接用于烧写或下载HEX文件。