各位TI的技术支持好:我使用的是TMDSEVM6678LE开发板,mcsdk_2_01_02_06,在测试I2C boot,测试了很久也没成功,我的镜像文件的生成过程如下所示:
1..out—>boot table:
通过hex6x.exe(C:\ti\ccsv5\tools\compiler\c6000_7.4.4\bin)和配置引导文件.rmd,其文件内容为:
simple0.out
-a
-boot
-e _c_int00
-order L
ROMS
{
ROM1: org = 0x400, length = 0x10000, memwidth = 32, romwidth = 32
files = { simple0.btbl }
}
得到simple0.btbl文件。
2.boot table转换成bootloader格式:
使用bconvert64x.exe转化,得到.btbl.be文件,使用-le命令。
命令格式:bconvert64x.exe –le simple0.btbl simple0.btbl.be
3.把.btbl.be文件转化为.btbl.be.i2c文件。
使用b2i2c.exe转化,得到 simple0.btbl.be.i2c文件。
命令格式:b2i2c.exe simple0.btbl.be simple0.btbl.be.i2c。
4. 把.btbl.be.i2c文件转化为.btbl.be.i2c.ccs文件。
使用b2ccs.exe转化,得到 simple0.btbl.be.i2c.ccs文件。
命令格式:b2ccs.exe simple0.btbl.be.i2c simple0.btbl.be.i2c.ccs。
5.把.btbl.be.i2c.ccs文件转化为.ccs文件。
使用romparse.exe转化,配合i2c.map文件。
命令格式:romparse.exe i2c.map。得到i2crom.ccs。
I2c.map文件内容如下:
section {
boot_mode = 40
param_index = 0
options = 1
multi_i2c_id = 0
my_i2c_id = 10
core_freq_mhz = 122
i2c_clk_freq_khz = 50
exe_file = "simple0.btbl.be.i2c.ccs"
dev_addr_ext = 0x50
next_dev_addr = 0x50
next_dev_addr_ext = 0x51
address_delay = 100
sw_pll_prediv = 0
sw_pll_mult = 0
sw_pll_postdiv = 0
sw_pll_flags = 0
}
6.将.ccs文件转化为.swap.bin文件。
通过ccs2bin.exe转化。
命令格式为:ccs2bin.exe –swap i2crom.ccs i2crom.swap.bin。
7.使用C:\ti\mcsdk_2_01_02_06\tools\writer\eeprom中的evmc6678l工程将i2crom.ccs i2crom.swap.bin烧写到eeprom中。
备注: view the memory address 0x0C000000.
拨码开关设置:
烧写前为no boot模式:sw3->sw6设置为:(off, on, on, on) (on, on, on, on) (on, on, on, on) (on, on, on, on)
烧写完重新上电sw3->sw6设置为:(off, off, on, off) (on, on, on, on) (on, on, on, on) (on, on, on, on)
烧写完后,程序不能重现仿真器下的现象,是哪里出错了呢?还请各位大神指点迷津。
Thomas Yang1:
你是大端启动还是小端启动?
有没有把仿真器采用real time模式挂接看下,启动到哪一步了?
���53:
回复 Thomas Yang1:
您好,Thomas Yang1:
小端启动,没有用过仿真器的real time模式,我的上述过程有问题吗?