yiwang 发表于 2010-8-30 17:28:47

ARM烧写程序的问题,跪求大侠帮忙解决。急!!!

使用的ARM芯片型号为LPC2214,外部flash的型号为SST39VF1601,外部ram型号为IS61LV51216.
现在设置如下:
flash接boot0,地址为0x80000000;ram接boot1,地址为81000000;ARM内部ram的地址为0x40000000;
现在需要将ADS1.2中编译的HEX文件烧写到外部flash中,实现程序脱机运行。
ADS1.2中设置是:选择的模式是:reloutchip
                Target>ARM target>post-linker>ARM fromELF
                ARM linker>OUTPUT> ro base=0x000、image entry point=0x000
                ARM fromELF>OUTPUT FORMAT=Intel 32 bit HEX、OUTPUT FILE NAME=E:\111.i32
出现的问题是:1、在使用H-FLASHER Promgram时,出现“Error:Destination flash address is out of range”
            2、当设置ro base=0x80000000,rw base 不设置;make后生成的.i32文件,可以通过H-flasher下载进去。但程序不能正常运行。
本人是菜鸟,这个问题困扰了我很久,不知道你们看懂我的问题没有。希望高手能帮我解决这个问题,这个设置跟rw base 有关吗?如果有关,那rw base 要设为何值?是否脱机处理还需要设置什么选项?手头上保存有一份正确的.i32文件,打开正确的文件和问题2生成的.i32文件对比,发现只有第一行是一样的“:0200000480007A”。后面我就各贴一行作为对比,希望对解决问题有帮助。正确第二行:“:1000000018F09FE518F09FE518F09FE518F09FE5C0”;错误第二行“:1000000090808FE20F0098E8080080E0081081E0FF”。
调试中发现,我没有对ram的地址做设置,假如我要使用外部ram,将外部flash的程序掉到外部ram脱机运行,要怎么设置。
问题有点乱,自己也被整晕了,如果大家有看不懂得,希望能留言交流。小弟在此谢谢大家了。

xiaotime 发表于 2010-8-30 17:39:28

使用H-JTAG烧写程序时是怎么设置地址的?楼主没说清楚,会不会这里出现问题了?
另外烧写的都是HEX或者BIN格式的文件,不知道i32是什么格式的文件?

yiwang 发表于 2010-8-30 17:45:22

回复【1楼】xiaotime
-----------------------------------------------------------------------

.i32文件时 intel 32 bit hex ,跟hex是一样的。在H-Flasher中,设置FLASH Start address 0x80000000,RAM start address:0x81000000。

yiwang 发表于 2010-9-1 15:21:32

额……,怎么这么冷清,跪求达人解释。如果有遇到类似问题的兄弟,欢迎留言讨论哈。

yiwang 发表于 2010-9-14 11:32:00

已经弄清楚怎么生成烧写到外部FLASH的.hex文件,在ADS1.2中选择目标reloutchip,ARM linker>scattered>.\src\mem_c.scf.
页: [1]
查看完整版本: ARM烧写程序的问题,跪求大侠帮忙解决。急!!!