我使用CCS6.2编译了下载的starterware里的bootloader,然后用仿真器连接了cortex-a9核,但是使用load program加载out文件出错,报错内容:
CortexA9: Trouble Writing Memory Block at 0x402f0074 on Page 0 of Length 0x7ff0: (Error -1065 @ 0x3D5A) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 6.0.407.6)
CortexA9: File Loader: Verification failed: Target failed to write 0x402F0074
CortexA9: GEL: File: D:\ti\sysbios_ind_sdk_02.01.02.02\sdk\starterware\binary\bootloader\bin\am43xx-evm\ccs\bootloader_boot_mmcsd_a9host_debug.out: Load failed.
按上面说的应该是指0x402F0074无法写入,我查了芯片手册的memory map,发现
The download image resides from 0x402F4000 (0x402F0400 for PG1.1) to 0x40337C00
in GP device. 从0x402F0000到0x402F4000 (0x402F0400 for PG1.1) 这段地址空间是保留的无法访问。
那是不是说明是因为程序的入口地址或者什么地址写错了,我下载的官方的源码,没改过。想问下问题出在哪,应该怎么改,我想在ram中调试starerware里的bootloader。
Jian Zhou:
cmd文件里面的load地址是什么?有没有改过?
yuanyuan liu1:
回复 Jian Zhou:
这个工程的cmd文件在哪个文件夹,什么文件名?我没看到cmd文件。
Jian Zhou:
回复 yuanyuan liu1:
CCS下的工程你找一下,一般都要有cmd文件。
yuanyuan liu1:
回复 Jian Zhou:
工程文件夹下没找到cmd文件,但找到了AM437x.lds文件,里面有
MEMORY
{SRAM :O= 0x402F0000,l= 0x00010000/*64kBinternalSRAM*/
Jian Zhou:
回复 yuanyuan liu1:
那你把这个文件的SRAM地址改下试试看。
yuanyuan liu1:
回复 Jian Zhou:
我改成SRAM : o = 0x402F4000, l = 0x0000C000 /* 64kB internal SRAM */,还是不行,报的错也还是一样的
yuanyuan liu1:
回复 yuanyuan liu1:
我发现刚才编译工程的时候 linker command file 没有选,现在的编译选项是这样的
但是编译就出错了。
报错
user4047359:
回复 yuanyuan liu1:
楼主 解决了 这个问题了吗?我现在也遇到同样的问题 ,不知道 该怎么解决