This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Dsp 型号:TMS320C6678CYP YB20-2BZCJV9 2010 TI 2 CYP G1
CCS 版本:5.4
启动方式选用:EMIF Nor Flash Boot,
l 2010版数据手册配置
DEVSTAT寄存器[13:0]配置
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Boot Mode pins [12:0] |
LENDIAN |
||||||||||||
00 0000 0100 000 |
1 |
2013版数据手册配置
DEVSTAT寄存器[13:0]配置
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Boot Mode pins [12:0] |
LENDIAN |
||||||||||||
00 0010 0000 000 |
1 |
DEVSTAT配置到底选用哪一个?
我使用第一种方式,JTAG在launch configuration 之后不能connect Target 是怎么回事?
C66xx_0: Error connecting to the target: (Error -1198 @ 0x0) Device execution unit appears to be claimed by your program. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.1.73.0)
C66xx_0: Error connecting to the target: (Error -1144 @ 0x0) Device core is hung. The debugger attempted to recover debug control, but was unsuccessful. Power-cycle the board. If error persists, confirm configuration and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.1.73.0)
第二种方式可以正常connect Target,但是bootloader没反应?
具体过程如下:
1.烧写到Nor Flash 的.bin文件,是通过
hex6x.exe core0.rmd
b2ccs.exe image0.hex core0.dat
ccs2bin.exe core0.dat core0.bin
步骤生成,
其中core0.rmd 配置如下:
core0.out /* input COFF file */
-a /* create ASCII image */
-image /* Create a memory image (no */
-boot
-order L
-map core0.map /* create a hex map file */
-memwidth 32 /* Width of ROM/Flash memory -map appl2.map create a hex map file */
-bootorg 0x70000400 /* address of the boot/copy-table */
-bootsection .bootload 0x70000000 /* section containing our asm boot routine */
ROMS
{
FLASH: org = 0x70000000, len = 0x20000, romwidth = 32, files = {image0.hex}
}
2. Bootload的汇编代码如下:
.title "Flash bootup utility for 6455 dsk"
.option D,T
.length 102
.width 140
COPY_TABLE .equ 0x70000400
.sect ".bootload"
.global boot
boot:
;************************************************************************
;* Debug Loop - Comment out B for Normal Operation
;************************************************************************
zero B1
myloop: ; [!B1] B _myloop
nop 5
myloopend: nop
;****************************************************************************
;* Copy code sections
;****************************************************************************
mvkl COPY_TABLE, a3 ; load table pointer
mvkh COPY_TABLE, a3
ldw *a3++, b1 ; Load entry point
copy_section_top:
ldw *a3++, b0 ; byte count
ldw *a3++, a4 ; ram start address
nop 3
[!b0] b copy_done ; have we copied all sections?
nop 5
copy_loop:
ldb *a3++,b5
sub b0,1,b0 ; decrement counter
[ b0] b copy_loop ; setup branch if not done
[!b0] b copy_section_top
zero a1
[!b0] and 3,a3,a1
stb b5,*a4++
[!b0] and -4,a3,a5 ; round address up to next multiple of 4
[ a1] add 4,a5,a3 ; round address up to next multiple of 4
;****************************************************************************
;* Jump to entry point
;****************************************************************************
copy_done:
b .S2 b1
nop 5
3.烧写自己写的函数将.bin文件写到EMIF CE0地址空间0x70000000,其中前面的0x70000000-0x700003FF放bootload代码,0x70000400之后放各个段的代码(如.text、.cinit、.const、.switch)
4.配置DEVSTAT寄存器为0x41, JTAG在launch configuration 之后不能connect Target ;配置DEVSTAT寄存器为0x201,可以正常connect Target,但是bootload没有反应,我通过查看.cinit段的起始地址内存,发现并不是之前在JTAG调试时候的看到的.cinit段的值,因此可以判断bootloader并未将各段搬移到L2SRAM中,但是bootloader的代码我反复确认应该是没有错的。
不知各位大侠能不能看出问题出在哪?给点指示啊?在线等。谢谢
TI文档写错啦,应该是 bootmode[12~0]: 011 000 0010 000。其中最高三位根据你的输入始终修改,我的输入时钟是100M,所以选011。wait[1~0]如果硬件上拉的话,必须dsiable wait。我的板子是上拉的,所以选了0。希望能帮到你。
您好!
请问您第一步中的:
“1.烧写到Nor Flash 的.bin文件,是通过
hex6x.exe core0.rmd
b2ccs.exe image0.hex core0.dat
ccs2bin.exe core0.dat core0.bin
步骤生成”
所使用的转化工具从何而来?是否可以分享下,谢谢!