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.

[参考译文] TMS320F2800137:cmd 文件

Guru**** 1821780 points
Other Parts Discussed in Thread: SFRA, TMS320F2800137
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1434702/tms320f2800137-cmd-file

器件型号:TMS320F2800137
主题中讨论的其他器件:SFRA

工具与软件:

  你(们)好

  我使用 CCS V12编译器、编译的 bin 文件大于1M。 十六进制文件的大小是正常的。 附件是我的 CMD 文件。 为什么我的 bin 文件这么大?

/*CMD 文件*/
// TI 文件$修订版本:/main/3 $
//签入$Date : AGU 1, 2017 13:45:43 $
//
//文件:F2800137_flash_Lib.cmd
//
//标题:用尽 RAM 的 F2800137示例的链接器命令文件
//
//
//请记住、LS0和 LS1受代码保护
//安全模块。
//
//这意味着在大多数情况下,你会想要移动到
//定义了更多内存的另一个内存映射文件。
//
*/

/*================================== */
/*定义 F280013x 的存储器块起始/长度
第0页将用于组织程序段
第1页将用于组织数据段

注释:
F2800137上的存储器块是统一的(即相同的)
PAGE 0和 PAGE 1中的所有设置。
存储器区域的从站节点不应位于同一存储器区域
为 PAGE 0和 PAGE 1定义。
这样做将导致程序损坏
和/或数据。

连续 SARAM 存储器块可以组合在一起
创建更大的存储块。
*//####################################################################################################################################################################
//该文件属于 f28002x 器件的 DCSM 测试工程。
//它只能作为测试目录的一部分。
//############################################################################################################################################################################################
//免责声明
//############################################################################################################################################################################################

小程序

begin:origin = 0x00090000、length = 0x00000002

BOOT_RSVD:origin = 0x00000002、length = 0x00000126

/* RAMLS1:origin = 0x0000A000、length = 0x00001FF8 */
RAMLS1P:origin = 0x0000A000、length = 0x00001FF8
/* RAMLS1_RSVD:origin = 0x0000BFF8、length = 0x00000008 *//*根据 errata 公告"存储器:预取超出有效存储器"*、保留代码空间并勿用于此代码

复位:origin = 0x003FFFC0、length = 0x00000002
/*闪存扇区*/
/* FLASH_BANK0_SEC_0_7:origin = 0x080002、length = 0x1FFE *//*片上闪存*/
/* FLASHBANK0_BOOT:origin = 0x080002、length = 0x1FFE*//*远程更新*/

/* FLASH_BANK0_SEC_8_15:origin = 0x082000、length = 0x2000 *//*片上闪存*/
/* FLASH_BANK0_SEC_16_23:origin = 0x084000、length = 0x2000 *//*片上闪存*/
/* FLASHBANK0_FAST:origin = 0x082000、length = 0x04000 */

/* FLASH_BANK0_SEC_24_31:origin = 0x086000、length = 0x2000 *//*片上闪存*/
/* FLASHBANK0_DATA:origin = 0x09F000、length = 0x001000*//* constant data */

/* FLASH_BANK0_SEC_32_29:origin = 0x088000、length = 0x2000 *//*片上闪存*/
/* FLASH_BANK0_SEC_40_47:origin = 0x08A000、length = 0x2000 *//*片上闪存*/
/* FLASH_BANK0_SEC_48_55:origin = 0x08C000、length = 0x2000 *//*片上闪存*/
/* FLASH_BANK0_SEC_56_63:origin = 0x08E000、length = 0x2000 *//*片上闪存*/
/* FLASH_BANK0_SEC_64_71:origin = 0x090000、length = 0x2000 *//*片上闪存*/
/* FLASH_BANK0_SEC_72_79:origin = 0x092000、length = 0x2000 *//*片上闪存*/
/* FLASH_BANK0_SEC_80_87:origin = 0x094000、length = 0x2000 *//*片上闪存*/
/* FLASH_BANK0_SEC_88_95:origin = 0x096000、length = 0x2000 *//*片上闪存*/
/* FLASH_BANK0_SEC_96_103:origin = 0x098000、length = 0x2000 *//*片上闪存*/
/* FLASH_BANK0_SEC_104_111:origin = 0x09A000、length = 0x2000 *//*片上闪存*/
/* FLASH_BANK0_SEC_112_119:origin = 0x09C000、length = 0x2000 /*片上闪存*/
/* FLASH_BANK0_SEC_120_127:origin = 0x09E000、length = 0x1FF0 /*片上闪存*/
FLASHBANK0_CODE:origin = 0x090004、length = 0x00EFFC /* control code *// 0x9FFFF
/* FLASH_BANK0_SEC_127_RSVD:origin = 0x0A0FF0、length = 0x0010 *//*根据勘误表中的"Memory:prepeting Beyond VALID Memory"*、保留并勿用于代码

RAMM0S:origin = 0x00000128、length = 0x00000200 /* stack */
RAMM1D:origin = 0x00000328、length = 0x000004D0 /*片上 RAM 块 M1 */
RAMM1_RSVD:origin = 0x000007F8、length = 0x00000008 /*保留并勿使用勘误表中的"Memory: prefeting Beyond VALID Memory"*/所述的代码

RAMLS0F:origin = 0x00008000、length = 0x00000600 /* Reserve for fast */
RAMLS0D:origin = 0x00008600、length = 0x00000B00
RAMPARA:origin = 0x00009100、length = 0x00000F00
}


部分中)

.reset :> RESET , TYPE = DSECT /* NOT USED ,*/
codestart :> beging, align(4)

相关

.TI.ramfunc{
#if defined (MOTOR1_FAST)|| defined (MOTOR2_FAST)
-l est_trajState_coff.lib (.text)
#endif

#if defined (SFRA_ENABLE)
-l sfra_F32_tmu_coff.lib (.text)
-l sfra_F32_tmu_coff.lib (.text)
#endif
}
dclfuncs
dcl32funcs
} LOAD > FLASHBANK0_CODE、
Run > RAMLS1P、
Load_start (RamfuncsLoadStart)、
Load_Size (RamfuncsLoadSize)、
Load_End (RamfuncsLoadEnd)、
RUN_START (RamfuncsRunStart)、
RUN_SIZE (RamfuncsRunSize)、
RUN_END (RamfuncsRunEnd)、
对齐(8)

ctrlfuncs:load > FLASHBANK0_code、
Run > RAMLS1P、
load_start (loadStart_ctrlfuncs)、
load_end (loadEnd_ctrlfuncs)、
load_size (loadSize_ctrlfuncs)、
run_start (runStart_ctrlfuncs)、
RUN_END (runEnd_ctrlfuncs)、
run_size (runSize_ctrlfuncs)、
对齐(8)

.text :> FLASHBANK0_CODE, ALIGN (4)
.cinit :> FLASHBANK0_CODE, ALIGN (4)
.switch:> FLASHBANK0_CODE、ALIGN (4)
.cio :> FLASHBANK0_code
.pinit :> FLASHBANK0_CODE, ALIGN(4)
.const:> FLASHBANK0_CODE、ALIGN (4)
.init_array :> FLASHBANK0_code, align(4)

.stack:> RAMM0S.
. bss :> RAMM1D//RAMLS0D//
.bss:output :> RAMM1D.
bss:cio :> RAMM1D.
.data :> RAMM1D.
.sysmem :> RAMM1D.

fastCode :> FLASHBANK0_code

-- library=fast_full_lib.lib (.text )
}

/*分配 IQ 数学区域:*/
IQMath:> FLASHBANK0_CODE、ALIGN (8)
IQmathTables :> FLASHBANK0_CODE, ALIGN(8)

EST_DATA:> RAMLS0F、
load_start (loadStart_est_data)、
load_end (loadEnd_est_data)、
load_size (loadSize_est_data)
HAL_DATA :> RAMLS0D
load_start (loadStart_hal_data)
load_end (loadEnd_hal_data)、
load_size (loadSize_hal_data)
user_data :> RAMLS0D
load_start (loadStart_user_data)、
Load_End (loadEnd_USER_DATA)
load_size (loadSize_user_data)
FOC_DATA :> RAMLS0D
load_start (loadStart_foc_data)、
load_end (loadEnd_foc_data)、
load_size (loadSize_foc_data)
sys_data:> RAMLS0D、
load_start (loadStart_sys_data)、
load_end (loadEnd_sys_data)、
load_size (loadSize_sys_data)
vibc_data :> RAMLS0D
load_start (loadStart_vibc_data)、
load_end (loadEnd_vibc_data)、
load_size (loadSize_vibc_data)
dmaBuf_data :> RAMLS0D
Load_start (loadStart_dmaBuf_data)、
load_end (loadEnd_dmaBuf_data)、
load_size (loadSize_dmaBuf_data)
SFRA_F32_Data :> RAMLS0D
Load_start (loadStart_SFRA_F32_Data);
Load_End (LoadEnd_SFRA_F32_Data)、
Load_Size (loadSize_SFRA_F32_Data)
DATALOG_DATA :> RAMLS0D
LOAD_START (LoadStart_DATALOG_DATA)
LOAD_END (LOADEND_DATALOG_DATA)、
load_size (loadSize_data_data)
DBGC_DATA :> RAMLS0D
load_start (loadStart_dbgc_data)、
load_end (loadEnd_dbgc_data)、
load_size (loadSize_dbgc_data)
FUNCTION_DATA :> RAMLS0D.

pParDataFile :> RAMPARA
}

/*
//________________________________________________====
//文件结尾。
//________________________________________________====
*/

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是指.out 文件的大小吗? .out 可能还包含用于调试的符号。 器件的代码/数据大小中不包含这部分内容。 实际代码和数据大小可以在.map 文件中的"模块摘要"部分下检查

    此致、

    Veena.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    否、我的意思是.bin 文件的大小。 CCS 编译一个.out 文件。 我使用 CCS 插件将.out 文件转换为.bin 文件、但转换后的.bin 文件太大、超过1M。 原因是什么? 此外、我的.out 文件是正常的、烧录到 TMS320F2800137芯片后、可以正常工作。 只是将.out 文件转换为.bin 文件后、.bin 文件太大。