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.

EMIF Nor Flash Boot的问题

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的代码我反复确认应该是没有错的。

不知各位大侠能不能看出问题出在哪?给点指示啊?在线等。谢谢

  • 怎么没人给回复啊?至少应该告诉我DEVSTAT寄存器是配置成0x201,还是0x41吧

  • 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

    步骤生成”

    所使用的转化工具从何而来?是否可以分享下,谢谢!

x 出现错误。请重试或与管理员联系。