TI中文支持网
TI专业的中文技术问题搜集分享网站

有关C6713芯片boot_c671x.s62 中c_int00定位问题

最近在使用DSP6713板卡做开发,开发工程通过添加二次启动程序 编译为.out文件后 通过hex6x.exe文件转换为.hex文件 通过烧写工程写入flash中。

目前遇到的问题是,烧写好flash后无法正常启动。通过加载编译工程,使用单步调试后发现,二次启动程序可以正确的将.text段拷贝到ram中,然后在执行copydone时 跳转的c_int00的地址和编译的c_int00地址不一致。

其中,copydone程序如下:

copy_done:
mvkl .S2 _c_int00, B0
mvkh .S2 _c_int00, B0
b .S2 B0
nop 5

c_int00在.map中定位为ENTRY POINT SYMBOL: "_c_int00"  address: 000130a0

实际单步调试时,跳转的地址是0x00013e60

Tony Tang:

Daniel wang3开发工程通过添加二次启动程序 编译为.out文件后

如果添加二次启动程序的?

Daniel wang3c_int00在.map中定位为ENTRY POINT SYMBOL: "_c_int00"  address: 000130a0

这里的_c_int00是直接取的全局lable的值,还是赋的值?

Daniel wang3:

回复 Tony Tang:

你好,我目前的情况是工程在ram中运行正常,通过添加boot_c671x.s62;c6713_emif.s62 ;boot_c671x.h62 这三个文件 然后修改link2.cmd文件,其中link2.cmd文件采用如下情况:

MEMORY{ BOOTRAM: o = 00000000h l = 00000400h IRAM: o = 00000400h l = 00020000h FLASH_BOOT: o = 0x90000000 l = 00000400h FLASH_REST: o = 0x90000400 l = 0001fc00h DRAM1: o = 00A00000h l = 00100000h DRAM2: o = 00B00000h l = 000FFFFEh }

SECTIONS{ .boot_load : load = FLASH_BOOT, run = BOOTRAM /* Initialized User Code Section */ .text : load = FLASH_REST, run = IRAM LOAD_START(_text_ld_start), RUN_START(_text_rn_start), SIZE(_text_size) /* This is also a special initialized data section, which could stay in ROM, however probably not desirable, due to Slow ROM access times. const values never change, by definition. */ .cinit > FLASH_REST .const > IRAM .stack > IRAM .bss > IRAM .data > IRAM .far > IRAM .switch > IRAM .sysmem > IRAM .cio > IRAM .csldata > IRAM .tables > IRAM .dcb_cmd_strt_addr > DRAM1 .dcb_reply_strt_addr > DRAM2

}

第二个问题

c_int00应该是直接取得全局lable的值 通过.ref c_int00导入boot_c671x.s62中使用

Tony Tang:

回复 Daniel wang3:

Daniel wang3boot_c671x.s62;c6713_emif.s62 ;boot_c671x.h62

这几个文件哪来的?

Daniel wang3:

回复 Tony Tang:

您好,这几个文件是采用BlinkDSK6713例程中的文件,是Creating a Second-Level Bootloader for FLASH Bootloading on C6000 (Rev. A).zip的附件中的文件

Daniel wang3:

回复 Tony Tang:

确实是_c_int00, 没有和c_int00搞混。汇编的二级boot代码与我的C工程在同一工程,编译环境是CCS5.5,目前我想到的解决方案是在汇编二级boot代码中,直接跳转到程序的_c_int00的具体地址,暂时能用… 不过问题还是没有找出来

y w:

你好,你是怎么单步调试二次启动程序的?

赞(0)
未经允许不得转载:TI中文支持网 » 有关C6713芯片boot_c671x.s62 中c_int00定位问题
分享到: 更多 (0)