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.

[参考译文] 编译器/TMS320F28035:警告:在没有 SECTIONS 规范的情况下创建输出段"SysPwrCtrlRegsFile&quot

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/567784/compiler-tms320f28035-warning-creating-output-section-syspwrctrlregsfile-without-a-sections-specification

器件型号:TMS320F28035

工具/软件:TI C/C++编译器

我正在基于3803xLEDBlink 示例构建一个项目。 我添加了编译但未链接的代码。 我进行了一些搜索、我找到了  

///--------------------------------
#ifdef __cplusplus
#pragma DATA_SECTION ("SysPwrCtrlRegsFile")
其他
#pragma DATA_SECTION (SysPwrCtrlRegs、"SysPwrCtrlRegsFile");
#endif
volatile struct SYS_PWR_CTRL_regs SysPwrCtrlRegs;

在 DSP2803x_GlobalVariablesDef.c 中  我找到了足够的信息、认为我需要在链接器 cmd 文件的部分中添加一些内容、但我不确定下一步要做什么。 这是我的 cmd 文件。

有什么帮助?

--diag_suppress=16002

存储器

//请注意、下面的内存分配不会根据 F2803x 上 CLA 的需要创建段。

第0页:
程序:origin = 0x008000、length = 0x001000 //片上 RAM (L0-L2)
OTP:origin = 0x3D7800,length = 0x000400 //片上 OTP
FLASHH:origin = 0x3E8000、length = 0x002000 //片上闪存
FLASHG:origin = 0x3EA000、length = 0x002000 //片上闪存
// FLASHF:origin = 0x3EC000,length = 0x002000 //片上闪存。 移至第1页
// FLASHE:origin = 0x3EE000,length = 0x002000 //片上闪存
// FLASHD:origin = 0x3F0000,length = 0x002000 //片上闪存
// FLASHC:origin = 0x3F2000,length = 0x002000 //片上闪存
// FLASHB:origin = 0x3F4000,length = 0x002000 //片上闪存
// FLASHA:origin = 0x3F6000,length = 0x001F80 //片上闪存
FLASHEA:origin = 0x3EE000、length = 0x009F80 //片上闪存。 闪存扇区 E - A 组合
CSM_RSVD:origin = 0x3F7F80,length = 0x000076 // FLASHEA 的一部分。 当 CSM 正在使用时、使用所有0x0000进行编程。
begin:origin = 0x3F7FF6,length = 0x000002 // FLASHEA 的一部分。 用于"引导至闪存"引导加载程序模式。
CSM_PWL:origin = 0x3F7FF8,length = 0x000008 // FLASHEA 的一部分。 FLASHEA 中的 CSM 密码位置

IQTABLES:origin = 0x3FE000,length = 0x000B50 //引导 ROM 中的 IQMath 表
IQTABLES2:origin = 0x3FEB50,length = 0x00008C //引导 ROM 中的 IQMath 表
IQTABLES3:origin = 0x3FEBDC,length = 0x0000AA //引导 ROM 中的 IQMath 表

BootROM:origin = 0x3FF27C,length = 0x000D44 // Boot ROM
复位:origin = 0x3FFFC0,length = 0x000002 //引导 ROM 的一部分
向量:origin = 0x3FFFC2,length = 0x00003E //引导 ROM 的一部分

第1页:
BOOT_RSVD:origin = 0x000000,length = 0x000050 // M0的一部分,引导 ROM 将此用于堆栈
RAMM0:origin = 0x000050、length = 0x0003B0 //片上 RAM 块 M0
RAMM1:origin = 0x000400、length = 0x000400 //片上 RAM 块 M1
DataRAM:origin = 0x009000,length = 0x001000 //数据 RAM (L3)
// FLASHB:origin = 0x3F4000,length = 0x002000 //片上闪存。 移动到第0页
FLASHF:origin = 0x3EC000、length = 0x002000 //片上闪存

CLA_CPU_MSGRAM:origin = 0x001480,length = 0x000080 // CLA-R/W,CPU-R 消息 RAM
CPU_CLA_MSGRAM:origin = 0x001500,length = 0x000080 // CPU-R/W,CLA-R 消息 RAM


部分

//分配程序区域:
//.cinit:> FLASHA,page = 0
//.pinit:> FLASHA,page = 0
//.text:> FLASHA,page = 0
.cinit:> FLASHEA,PAGE = 0
.pinit:> FLASHEA,PAGE = 0
.text:> FLASHEA,PAGE = 0

codestart:> begin page = 0
ramfuncs:load = FLASHG、
运行=程序、
load_start (_RamfuncsLoadStart)、
load_end (_RamfuncsLoadEnd)、
run_start (_RamfuncsRunStart)、
PAGE = 0

csmpasswds:>csm_PWL page = 0
csm_rsvd:>csm_RSVD page = 0

//分配未初始化的数据段:
.stack:>RAMM0,page = 1.
.ebss:> DataRAM,page = 1.
.esysmem:> DataRAM,page = 1.

//已初始化的段位于闪存中
//为了使 SDFlash 对这些进行编程,它们必须被分配到 PAGE 0
//.econst:> FLASHA PAGE = 0
//.switch:> FLASHA PAGE = 0
econst:>> FLASHEA | FLASHG PAGE = 0
切换:>FLASHEA PAGE = 0

//分配 IQ 数学区域:
//IQmath:> FLASHA PAGE = 0 //数学代码
//IQmath:>> FLASHEA | FLASHG PAGE = 0 //数学代码
//IQmathTables :>IQTABLES page = 0,type = NoLoad // ROM 中的数学表

Cla1ToCpuMsgRAM:>CLA_CPU_MSGRAM page = 1.
CpuToCla1MsgRAM:>CPU_CLA_MSGRAM PAGE = 1.

.reset:> reset,page = 0,type = DSECT
VECTORS:> VECTORS PAGE = 0,TYPE = DSECT