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

TMS320F28388D: CM如何生成bin文件

Part Number:TMS320F28388D

采用此方式可在CPU编译时生成bin,在CM中应用不好使

"${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/ofd2000" "${CG_TOOL_ROOT}/bin/hex2000" "${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"

Susan Yang:

DSP应用 说:在CM中应用不好使

cm是一个ARM内核,您需要使用armofd 和 armhex

Be sure to replace ofd2000 and hex2000 with the respective binaries for your device, for example, ofd6x and hex6x (for c6000) or armofd and armhex (for ARM).

,

DSP应用:

我知道是ARM啊,STM的arm就是可以生成bin文件的,在线升级都是用的bin文件

,

Susan Yang:

所以您上面语句里是否有修改为armofd 和 armhex?

,

DSP应用:

 ARM的已经搞定了看大小对比数据是正常的,为什么CPU的会这么大比FLASH都大

,

Susan Yang:

DSP应用 说:ARM的已经搞定了

CM核也生成bin文件了?

DSP应用 说:看大小对比数据是正常的,为什么CPU的会这么大比FLASH都大

不太理解您的意思

,

DSP应用:

CM的bin文件生成的是正常的,CPU生成的的不正常,CPU的BIN文件大小1000K了FLASH才多大?

,

DSP应用:

 EE00前都是00

,

Susan Yang:

DSP应用 说:CPU的BIN文件大小1000K了FLASH才多大?

您编译的是自己的程序还是例程?我这边编译的例程104K

,

DSP应用:

自己的程序

,

Susan Yang:

关于应用程序占用的memory size,不是看生成的hex/bin文件的大小,而是在.map文件中查看

您可以使用bin查看工具打开bin文件看看,里面后面大部分内容应该都是0xFF,也就是说生成的bin文件是把整个空间填入的内容,后面全0xFF的空间其实并没有用到

若是对bin文件大小敏感的话,建议您提高编译器优化等级试试

,

DSP应用:

现在有一个现象在CLA中如下写编译BIN是68K,是正常的;

for(i=0;i!=2;i=i+4){CTRL_Run_exe(&ctrlcla.Channel[i+0], cla_para.Period,cla_para.Test_flag);CTRL_Run_exe(&ctrlcla.Channel[i+1], cla_para.Period,cla_para.Test_flag);CTRL_Run_exe(&ctrlcla.Channel[i+2], cla_para.Period,cla_para.Test_flag);CTRL_Run_exe(&ctrlcla.Channel[i+3], cla_para.Period,cla_para.Test_flag);

}

如下写BIN就是1000K;

for(i=0;i!=8;i+){CTRL_Run_exe(&ctrlcla.Channel[i+0], cla_para.Period,cla_para.Test_flag);

}

去掉整个CLA,cla文件不编译也是1000K;所以BIN文件到底跟什么有关?

__interrupt void Cla1Task1 ( void ){ Uint16 i,pl; pl = ctrlcla.TADC_Select*2; GpioDataRegs.GPBSET.bit.GPIO33 = 1; ADBUS_Refresh_cla(); /*9-16通道控制*/ for(i=0;i!=2;i++) { CTRL_Run_exe(&ctrlcla.Channel[pl+0], cla_para.Period,cla_para.Test_flag); CTRL_Run_exe(&ctrlcla.Channel[pl+1], cla_para.Period,cla_para.Test_flag); CTRL_Run_exe(&ctrlcla.Channel[pl+2], cla_para.Period,cla_para.Test_flag); CTRL_Run_exe(&ctrlcla.Channel[pl+3], cla_para.Period,cla_para.Test_flag);

}// if(ctrlcla.TADC_Select==3)ctrlcla.TADC_Select = 0;// else ctrlcla.TADC_Select++; GpioDataRegs.GPBCLEAR.bit.GPIO33 = 1;

}

,

Susan Yang:

一个大的 bin 文件通常是由它中间的一个大洞引起的。通常非常大的未初始化部分(或多个部分)位于该中间地址范围内。也许是堆栈、堆或类似的东西。

一种解决方案是更改段分配给内存的方式,以便所有已初始化的代码段和数据段彼此相邻。

您可以参考下

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/729970/faq-explain-the-format-of-a-binary-bin-file 

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28388D: CM如何生成bin文件
分享到: 更多 (0)