TMS320VC5509A+AT25F1024
PCB上,GPIO1=1,GPIO0=GPIO2=GPIO3=0,即SPI 24位引导模式。
hex55.exe boot55x.cmd将out 文件转换成bin文件。
SPI (24位地址)程序将bin文件写入AT25F1024
3K大小的bin写入到AT25F1024 ,重新上电,自举成功。 现在是一个42K大小的bin写入到AT25F1024,重新上电,TMS320VC5509A没反应。
在SPI程序中调试查看对AT25F1024写的结果:与bin文件一致(十六进制查看)。
请各位专家指教,给个解决问题的方向。多谢~~
paradisebird:
回复 Shine:
感谢回复!
1:程序是加载到片内。
2:是我应用程序的map文件吗?
ENTRY POINT SYMBOL: "_c_int00" address: 00023000
.cinit 0 [ 00000400 ] 00000200 * 0000020f [ 00000400 ] 00000200 * 00000081 csl5509ax.lib : csl_dmadat.obj (.cinit) [ 00000502 ] 00000281 * 00000069 : csl_mcbspdat.obj (.cinit) [ 000005d4 ] 000002ea * 00000059 main.obj (.cinit) [ 00000686 ] 00000343 * 00000050 FS_Uart.obj (.cinit) [ 00000726 ] 00000393 * 00000025 csl5509ax.lib : csl_csldat.obj (.cinit) [ 00000770 ] 000003b8 * 00000013 rts55x.lib : atan.obj (.cinit) [ 00000796 ] 000003cb * 00000011 : exp.obj (.cinit) [ 000007b8 ] 000003dc * 0000000e : exit.obj (.cinit) [ 000007d4 ] 000003ea * 0000000b : cos.obj (.cinit) [ 000007ea ] 000003f5 * 0000000b : sin.obj (.cinit) [ 00000800 ] 00000400 * 0000000a : _lock.obj (.cinit) [ 00000814 ] 0000040a * 00000004 : errno.obj (.cinit) [ 0000081c ] 0000040e * 00000001 –HOLE– [fill = 0]
工程编译时为-c选项(非-cr选项)
不太懂怎么判断.cinit 是否正确。
3. GEL中的函数(如C5509A_Init())要写到我的程序中吗? 这个没有。(成功自举的小程序同样也没有)。
4. 将程序LOAD到AT25F1024后,CCS重启,PCB掉电重启,ResetCPU后,从FF8000处开始执行,弹出对话框“Warning! No valid program is currently loaded into memory. …”
谢谢~~
paradisebird:
回复 paradisebird:
不好意思,再补充说明一下:我的现在在调试的程序,直接通过仿真器Load Program调试运行是成功的。
paradisebird:
回复 paradisebird:
继续补充~~:
boot55x.cmd:
-e _c_int00-boot-v5510:2-serial8-reg_config 0x1c00,0x2180-delay 0x100-b-o FS5509A.binFS5509A.out
hex55.exe 版本:3.3.2.0
Shine:
回复 paradisebird:
1. 是指执行hex.cmd文件后生成的.map文件, 你看一下有没有这个.cinit段就可以了.
2. 用仿真器跟踪bootloader时, 选择SPI boot mode了么? 具体方法如下.把仿真器连上,选择debug->Reset CPU。查看PC寄存器地址应该在0xff8000,选择file->load symbols->load symbols only,然后选择out文件,这样只载入符号定义,便于调试,然后按F8或F5开始跟踪.
paradisebird:
回复 Shine:
感谢回复!
1.是我的hex.cmd文件中没写 map文件的语句:-map bootloader.map
原内容:
-e _c_int00-boot-v5510:2-serial8-reg_config 0x1c00,0x2180-delay 0x100-b-o FS5509A.binFS5509A.out
2.这个步骤我以前不会,学习了!!!
我晚上才有时间再调试。 再次感谢!~~
paradisebird:
回复 paradisebird:
********************************************************************************TMS320C55x COFF/Hex Converter v3.3.2********************************************************************************
INPUT FILE NAME: <FS5509A.out>OUTPUT FORMAT: Binary
PHYSICAL MEMORY PARAMETERS Default data width : 8 Default memory width : 8 Default output width : 8
BOOT LOADER PARAMETERS Table Type: SERIAL PORT (McBSP 8 bit Mode) Entry Point: 0x00023000 (_c_int00)
OUTPUT TRANSLATION MAP——————————————————————————–00000000..00ffffff Page=0 Memory Width=8 ROM Width=8——————————————————————————– OUTPUT FILES: FS5509A.bin [b0..b7]
CONTENTS: 00000000..0000a7ab BOOT TABLE vectors : dest=00000100 size=00000200 width=00000001 .cinit : dest=00000400 size=0000041e width=00000001 .const : dest=00000820 size=00000184 width=00000001 .bss : dest=00020000 size=00001dfc width=00000001 .text : dest=00023000 size=000081d2 width=00000001
——————————————————————————–00000000..00ffffff Page=1 Memory Width=8 ROM Width=8 "*DEFAULT PAGE 1*"——————————————————————————– NO CONTENTS
paradisebird:
回复 paradisebird:
感谢Shine Zhang!刚才跟踪bootloader发现引导成功了。学习了很多东西,但与之前相比其实没有变化。之所以一直认为失败,是因为整个引导过程用时约6秒,之前我每次重启后都没有等待这么长时间去测。BIN文件大小42K,引导时间这么长应该也是有些问题吧。暂不结帖…
Shine:
回复 paradisebird:
在你的hex cmd文件中, -reg_config 0x1c00,0x2180, PLLM只设了3, 不知道你的clkin是多少MHz, 试试设成DSP的最高主频, 这样跑起来会快点.
zhihui xuan:
回复 Shine:
你好,shine:
我遇到了和他很相似 的问题,烧写8k的例程可以,烧写自己的程序78K没反应,等了1分钟也是。
我用的是C5515,环境是CCS5.2,硬件平台是EZdsp5515.
我的CMD是:
-boot-map demoboot.map-v5505-serial8-b-e 0x0001b655-o .\CSL_CodecTestExample.bin.\CSL_CodecTestExample.out
ROMS{ PAGE 0: ROM : origin = 020000h length = 018000h}
MAP是:
********************************************************************************TMS320C55x Hex Converter v4.3.5********************************************************************************
INPUT FILE NAME: <.\CSL_CodecTestExample.out>OUTPUT FORMAT: Binary
PHYSICAL MEMORY PARAMETERS Default data width : 8 Default memory width : 8 Default output width : 8
BOOT LOADER PARAMETERS Table Type: SERIAL PORT (McBSP 8 bit Mode) Entry Point: 0x0001b655
OUTPUT TRANSLATION MAP——————————————————————————–00020000..00037fff Page=0 Memory Width=8 ROM Width=8 "ROM"——————————————————————————– OUTPUT FILES: .\CSL_CodecTestExample.bin [b0..b7]
CONTENTS: 00020000..00033811 BOOT TABLE .text : dest=00009000 size=000127a0 width=00000001 .cinit : dest=0001c588 size=0000017c width=00000001 .switch : dest=0001c704 size=000000e4 width=00000001 .const : dest=0001b7a0 size=00000de8 width=00000001
麻烦帮我看下有没有什么问题?