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

ti工程师来帮忙

最近把ccs从3.3升级了5.5,移植工程时出现了问题。使用的dsp是6713,使用外部flash通过bootloader进行程序加载。

在工程中,有一个函数boot()实现bootloader的功能,在函数前增加了程序段指示:

#pragma CODE_SECTION(boot,".boot")

以下是cmd文件的内容:

/****************************************************************************/

/* Specify the Memory Configuration */
/****************************************************************************/

MEMORY
{
BOOTSEC : origin = 0x00000000 length = 0x00400
RAM : origin = 0x00002000 length = 0x40000
VEC : origin = 0x00001000 length = 0xA00
}

/****************************************************************************/
/* Specify the Output Sections */
/****************************************************************************/

SECTIONS
{
.text: load = RAM
.stack load = RAM
.bss load = RAM
.cio load = RAM
.const load = RAM .data load = RAM
.switch load = RAM
.far load = RAM

.cinit load = RAM
.sysmem load = RAM
.vectors load = VEC
.boot load = BOOTSEC

}

现在的现象是可以正常生成.out文件,但是通过hex6x工具提取的时候,发现里面并没有.boot段

显示如下:

D:\ti\workspace_v5_5\C6713FOG>D:\ti\ccsv5\tools\compiler\c6000_7.4.4\bin\HEX6X
MakeHex.cmd
warning: section .boot not found in (debug\C6713FOG.out)
warning: section .cio not found in (debug\C6713FOG.out)
warning: section .data not found in (debug\C6713FOG.out)
warning: section .sysmem not found in (debug\C6713FOG.out)
Translating to ASCII-Hex format…
"debug\C6713FOG.out" ==> .vectors
"debug\C6713FOG.out" ==> .text
"debug\C6713FOG.out" ==> .cinit
"debug\C6713FOG.out" ==> .const
"debug\C6713FOG.out" ==> .switch

是因为程序中没有使用boot()函数,所以把它优化掉了吗?程序现在是debug版,也没有开优化选项。

这个工程在ccs3.3里面是好用的,请教怎么解决这个问题啊?

noaming:

你好,检查一下工程的memory map文件中,看生成的out文件里面有没有.boot段。

changqing su:

回复 noaming:

查看过,map文件中显示,没有生成.boot段。

noaming:

回复 changqing su:

ccs3.3和CCSv5.5编译工程应该是一样的效果。在CCSV3.3下可以的话,建议在CCSV5.5下新建一个工程,然后添加源代码,再编译试试

changqing su:

回复 noaming:

现在就是通过新建工程,然后添加源码的方式来做的。还是不行呢。郁闷。

编译和连接选项和V3.3的对比了,是一样的。

真是奇怪了!

赞(0)
未经允许不得转载:TI中文支持网 » ti工程师来帮忙
分享到: 更多 (0)