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.

[参考译文] TMS320F28374S:创建基于闪存 cmd 文件的 RAM cmd 文件

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1197475/tms320f28374s-creating-a-ram-cmd-file-based-a-flash-cmd-file

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

我有适用于闪存的链接器 cmd 文件、现在我想创建一个由仿真器加载到 RAM 中的 cmd 文件。  是否有相关参考?

我的第一次尝试  

警告#10247-D:创建不带 SECTIONS 规范的输出段".text"
警告#10247-D:在不使用 SECTIONS 规范的情况下创建输出段".data"
警告#10247-D:在不使用 SECTIONS 规范的情况下创建输出段".bss"
警告#10247-D:在不使用 SECTIONS 规范的情况下创建输出段".cinit"
警告#10247-D:在不使用 SECTIONS 规范的情况下创建输出段".const"
警告#10247-D:创建不带 SECTIONS 规范的输出段"controlVariables"
错误#10430-D:".TI.ramfunc"段由__attribute__((ramfunc))或--ramfunc=on 生成、需要段规范才能运行。
警告#10247-D:在不使用 SECTIONS 规范的情况下创建输出段".DataBufferFDL"
警告#10247-D:在没有 SECTIONS 规范的情况下创建输出段"dclfuncs"
警告#10247-D:在不使用 SECTIONS 规范的情况下创建输出段"codestart"
警告#10247-D:在不使用 SECTIONS 规范的情况下创建输出段"SFRA_F32_Data"
警告#10247-D:在不使用 SECTIONS 规范的情况下创建输出段"FPUMATHTables"
错误#10010:链接期间遇到错误;未生成"FalabELA_F28379D.out"

基于2837xS_General_RAM_lnk.cmd

存储器

第0页:
/* begin 用于"引导至 SARAM"引导加载程序模式*/

开始:origin = 0x000000,length = 0x000002
RAMM0:origin = 0x000123,length = 0x0002DD
RAMD0:origin = 0x00B000、length = 0x000800
RAMLS0:origin = 0x008000、length = 0x000800
RAMLS1:origin = 0x008800,length = 0x000800
RAMLS2:origin = 0x009000,length = 0x000800
RAMLS3:origin = 0x009800,length = 0x000800
RAMLS4:origin = 0x00A000,length = 0x000800
RAMLS5:origin = 0x00A800,length = 0x000800
复位:origin = 0x3FFFC0,length = 0x000002

第1页:

BOOT_RSVD:origin = 0x000002,length = 0x000121 // M0的一部分,引导 ROM 将此用于栈*/
RAMM1:origin = 0x000400,length = 0x0003F8 //片上 RAM 块 M1 */
// RAMM1_RSVD:origin = 0x0007F8,length = 0x000008 //根据勘误咨询“Memory:Prepetching Beyond valid Memory”(内存:超出有效内存的预取),保留并不用于代码*/
RAMD1:origin = 0x00B800,length = 0x000800

RAMGS0:origin = 0x00C000、length = 0x001000
RAMGS1:origin = 0x00D000、length = 0x001000
RAMGS2:origin = 0x00E000、length = 0x001000
RAMGS3:origin = 0x00F000、length = 0x001000
RAMGS4:origin = 0x010000,length = 0x001000
RAMGS5:origin = 0x011000,length = 0x001000
RAMGS6:origin = 0x012000,length = 0x001000
RAMGS7:origin = 0x013000,length = 0x001000
RAMGS8:origin = 0x014000,length = 0x001000
RAMGS9:origin = 0x015000,length = 0x001000
// RAMGS10:origin = 0x016000,length = 0x001000
// RAMGS11:origin = 0x017000,length = 0x000FF8
// RAMGS11_RSVD:origin = 0x017FF8,length = 0x000008 //根据勘误咨询“Memory:Prepetching Beyond valid Memory”(内存:超出有效内存的预取)来保留代码且不用于代码*/
RAMGS10_GS11:origin = 0x016000,length = 0x002000
CANA_MSG_RAM:origin = 0x049000、length = 0x000800
CANB_MSG_RAM:origin = 0x04B000、length = 0x000800


部分

codestart:> begin,page = 0
.text:>> RAMD0 | RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3 | RAMLS4 | RAMSL5,PAGE = 0
.cinit:> RAMM0,page = 0
switch:>RAMM0,page = 0
.reset:> reset,page = 0,type = DSECT //未使用,*/

.stack:>RAMM1,PAGE = 1.

#if defined (_TI_EABI)
.bss:> RAMGS5,PAGE = 1
.bss:输出:> RAMLS5,PAGE = 0
init_array:> RAMM0,page = 0
.const:> RAMGS5,PAGE = 1
.data :>RAMGS5,page = 1.
.sysmem:>RAMGS5,PAGE = 1.
其他
.pinit:> RAMM0,page = 0
.ebss:> RAMLS5,PAGE = 1.
econst:> RAMLS5,page = 1.
.esysmem:> RAMLS5,page = 1.
#endif

.TI.ramfunc:{}> RAMM0,PAGE = 0
dclfuncs:{}>RAMM0, PAGE=0

RAMS0:>RAMGS0,PAGE = 1
ramgs1:>RAMGS1,page = 1.

/*以下部分定义适用于 SDFM 示例*/
filter1_RegsFile:> RAMGS1,PAGE = 1,fill=0x1111
Filter2_RegsFile:> RAMGS2,PAGE = 1,fill=0x2222
Filter3_RegsFile:> RAMGS3,PAGE = 1,fill=0x3333
Filter4_RegsFile:> RAMGS4,PAGE = 1,fill=0x4444
Differit_RegsFile:>RAMGS5,PAGE = 1,fill=0x3333

SFRA_F_Data:>RAMGS2,ALIGN = 64,PAGE = 1

SFRA_Data:>RAMGS2,ALIGN = 64,PAGE=1

FPUmathTables :>> RAMD0,page = 0

暂存区:> RAMLS0LS1,PAGE = 1
.bss_cla:> RAMLS0LS1,page = 1.
controlVariables:> RAMLS0LS1,page = 1.


CNTL_COEFF_RAM:>RAMGS3,PAGE = 1.
CNTL_var_RAM:>RAMGS2,PAGE = 1.

CNTL_COEFF_RAM2:> RAMGS3,PAGE = 1.
CNTL_var_RAM2:> RAMGS2,PAGE = 1.

//.DataBufferFDL:>> RAMGS10 | RAMGS11、PAGE = 1、ALIG(4)
.DataBufferFDL:> RAMGS10_GS11、PAGE = 1

/*
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
//文件结束。
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*

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

    找到我的问题。 CCS 捕获了错误的 cmd 文件、因此未使用我所做的任何更改。  谢谢