我用andy和striker 提供的实例程序,在6678开发板上验证spi的引导,都遇到了问题。
(1)我编了一个闪灯程序,用文件压缩包里提供的软件进行转换,其中设置如下:
rmd文件:
simple.out
-a
-boot
-e _c_int00
-order L
-map SPIBOOT.map
ROMS
{
ROM1: org = 0x0880, length = 0x2000000, memwidth = 32, romwidth = 32
files = { simple.btbl }
}
添加Bootparemeter map文件
section {
boot_mode = 50
param_index = 0
options = 1
core_freq_mhz = 1000
exe_file = "simple.i2c.ccs"
next_dev_addr_ext = 0x0
sw_pll_prediv = 0
sw_pll_mult = 19
sw_pll_postdiv = 2
sw_pll_flags = 1
addr_width = 24
n_pins = 4
csel = 0
mode = 1
c2t_delay = 0
bus_freq_mhz = 0
bus_freq_khz = 500
}
转换后生成的Boot parremeter TABLE 为:
1651 1 10000 1 19c8
0x00500000
0x00320000
0x40130002
0x00010018
0x00040000
0x00010000
0x03e80000
0x01f40051
0x04000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
…………
第256行
0x0080c7f6
0x10800000
0x00000070
0x00873500
…………
之后改变51为00后,进行bytes小大端转换的数据为:
1651 1 80000000 1 19c8
0x00005000
0x00003200
0x02001340
0x18000100
0x00000400
0x00000100
0x0000e803
0x0000f401
0x00000004
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
…………
第256行
0xf6c78000
0x00008010
0x70000000
0x00358700
…………
我用mcsdk提供的norwrite将文件写入norflash,拨码开关设置为:sw3.1 -sw6.2:1011 0000 0010 1000 10 程序不能正常引导。
(2)首先我证明norflash写是没有问题的,因为我用mcsdk提供的基于i2c二次引导spi引导能够正常引导,写flash没有问题,eeprom里固化的IBL也没有问题。
(3)我观察bootaddress的值为0x20b00001,是Bootloader的初始地址?我看了其他内存,里面没有要下载的代码,说明程序没加载。
(3)在引导过程中,我用示波器观察spi总线上的信号,dsp一直重复的从spi读取第一个32为数,读出的数据为0x00005000,这个数据与我写进去的数据一致。是说明原因导致dsp不能继续读取接下来地址的数据呢?
请各位专家帮分析一下啊,由没有在6678开发板上验证过的spi引导的实例啊,我用的开发板是TMDXEVM6678LE.