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.
工具/软件:Code Composer Studio
尊敬的:
我想运行 SFRA+CLA 来获取闭环转换器开环波特图。 将2程序组合在一起后、我得到了这个问题、我不知道如何解决这个问题。 请帮助:
说明资源路径位置类型
输出段"Cla1Prog"包含 CLA 和非 CLA 段;这种在同一输出段中混合是非法的;无法链接段"Cla1Prog:_Cla1Task1:CLA_Tasks.obj"空:输出段"Cla1Prog"包含 CLA 和非 CLA 段;这种在同一输出段中混合是非法的;无法链接"Cla1Prog_CLA_Prog+:Cla1Prog+ CLA 和 CLA 问题:CLA
命令文件为:
============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================ *
/*用于从闪存运行的用户特定链接器命令文件*/
============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================ *
/*文件:F28035_FLASH_HVACI_Sensorless.CMD *
/**//
/*说明:链接器命令文件、用于目标为运行的用户自定义段*
/*来自闪存。 *
/**//
/*目标:TMS320F28035 */
/**//
/*版本:1.00 */
/**//
/*------------------ *
//蕭嚙踝蕭09德州仪器(TI)的版权所有*/
/*------------------ *
/*修订历史记录:*/
/*------------------ *
/*日期|说明*/
/*------------------ *
/* 4/13/09 |版本1.0新版本。 *
/*------------------ *
/*定义 F28035的内存块开始/长度
PAGE 0将用于组织程序段
第1页将用于组织数据段
注:
F2803x 上的存储器块是一致的(也是相同的
物理存储器)。
不应该是相同的存储器区域
同时为 PAGE 0和 PAGE 1定义。
这样做将导致程序损坏
和/或数据。
L0存储器块被镜像-即
它可以在高内存或低内存中访问。
为简单起见、其中仅使用了一个实例
链接器文件。
可以是连续的 SARAM 存储器块或闪存扇区
组合在一起以创建更大的存储器块。
*
_Cla1Prog_Start =_Cla1funcsRunStart;
堆0x200
-stack 0x200
//为将要使用的 CLA 暂存区定义大小
//由 CLA 编译器生成局部符号和 temps
//还强制引用标记的特殊符号
//暂存区是。
CLA_ScratchPad_size = 0x100;
--undef_sym=__cla_scratchpad_end
--undef_sym=__cla_scratchpad_start
存储器
{
/*请注意,下面的内存分配不会根据需要创建段
F2803x 上的 CLA。
*
第0页:
RAML0:origin = 0x008000,length = 0x000800 //片上 RAM (L0-L1)*/
RAML3:origin = 0x009000,length = 0x001000 //数据 RAM (L3)*/
OTP:origin = 0x3D7800,length = 0x000400 //片上 OTP */
FLASHH:origin = 0x3E8000、length = 0x002000 //片上闪存*/
FLASHG:origin = 0x3EA000、length = 0x002000 //片上闪存*/
FLASHF:origin = 0x3EC000、length = 0x002000 //片上闪存*/
FLASHE:origin = 0x3EE000、length = 0x002000 //片上闪存*/
FLASHD:origin = 0x3F0000,length = 0x002000 //片上闪存*/
FLASHC:origin = 0x3F2000,length = 0x002000 //片上闪存*/
FLASHA:origin = 0x3F6000,length = 0x001F80 //片上闪存*/
csm_RSVD:origin = 0x3F7F80,length = 0x000076 // FLASHA 的一部分。 当 CSM 正在使用时、使用所有0x0000进行编程。 *
begin:origin = 0x3F7FF6,length = 0x000002/* FLASHA 的一部分。 用于"引导至闪存"引导加载程序模式。 *
CSM_PWL:origin = 0x3F7FF8,length = 0x000008 // FLASHA 的一部分。 FLASHA 中的 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 = 0x008800,length = 0x000400 //片上 RAM 块 L1 */
RAML2:origin = 0x008C00,length = 0x000400 //片上 RAM 块 L2 */
FLASHB:origin = 0x3F4000,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
codestart:> begin page = 0
ramfuncs:load = FLASHD,
运行= RAML0、
load_start (_RamfuncsLoadStart)、
load_size (_RamfuncsLoadSize)、
load_end (_RamfuncsLoadEnd)、
run_start (_RamfuncsRunStart)、
PAGE = 0
Cla1Prog:load = FLASHC,//注意从 RAM 运行时,加载和运行可以是相同的*/
运行= RAML3、
load_start (_Cla1funcsLoadStart)、
load_size (_Cla1funcsLoadSize)、
load_end (_Cla1funcsLoadEnd)、
run_start (_Cla1funcsRunStart)、
PAGE = 0
/*用于 IQ 数学、SFRA 和 SCI 与 Gui_SFRA 通信的库*/
{
//--library=rts2800_ml.lib
//--library=rts2800_ml.lib
//--library=rts2800_ml.lib
//--library=rts2800_ml.lib
--library=SFRA_IQ_Lib.lib
--library=SFRA_IQ_Lib.lib
--library=SFRA_IQ_Lib.lib
//--library=Solar_Lib_IQ.lib
--library=IQmath.lib
--library=IQmath.lib
--library=IQmath.lib
--library=IQmath.lib
}
csmpasswds:>csm_PWL page = 0
csm_rsvd:>csm_RSVD page = 0
/*分配未初始化的数据段:*/
.stack:>RAMM0,page = 1.
.ebss:> RAMM1,PAGE = 1
.esysmem:>RAMM1,PAGE = 1.
Cla1Data:> RAML2,page = 1.
Mcu1数据:> RAMM1,页= 1
暂存区:>RAML2, PAGE=1
SFRA_IQ_Data:> RAMM1,PAGE = 0
/*初始化段进入闪存*/
/*要使 SDFlash 对这些内容进行编程、必须将它们分配到第0页*/
econst:> FLASHA PAGE = 0
.switch:> FLASHA PAGE = 0
/*分配 IQ 数学区域:*/
IQMath:> FLASHA 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
SFRA_Data:> RAMM1,ALIGN = 64,PAGE=0
RAML0Test:> RAML0,PAGE = 0
/*如果调用 IQNexp()或 IQexp(),请取消注释以下部分
库中的函数、以便利用
引导 ROM 中的相关 IQ Math 表(这可以节省空间和引导 ROM
1个等待状态)。 如果此部分未注释、则为 IQmathTables2
将被加载到其他存储器(SARAM、闪存等)中并将采用
上行空间、但0等待状态是可能的。
*
/*
IQmathTables2:> IQTABLES2,PAGE = 0,TYPE = NOLOAD
{
IQMath.lib (IQmathTablesRam)
}
*
/*如果调用 IQNasin ()或 IQasin (),请取消注释以下部分
库中的函数、以便利用
引导 ROM 中的相关 IQ Math 表(这可以节省空间和引导 ROM
1个等待状态)。 如果此部分未注释、则为 IQmathTables2
将被加载到其他存储器(SARAM、闪存等)中并将采用
上行空间、但0等待状态是可能的。
*
/*
IQmathTables3:> IQTABLES3,PAGE = 0,TYPE = NOLOAD
{
IQMath.lib (IQmathTablesRam)
}
*
}
部分
{
/********* DPLIB 部分 C28x ***** /
/* ZeroNet_Section */
ZeroNet_Section:> DataRAM page = 1.
}
我只需通过添加 SFRA_DATA 来修改原始值。 请帮助!!!
我使用 v16.9.6编译器。 有关 cmd 文件的更多信息。 我使用 controlSUITE 库、然后通过放入 SFRA 数据对其进行修改。
您能具体说明您尝试使用的那种吗? controlSUITE 中可能有20个用于 F28035的 CMD 文件
另请注意、我们现在位于编译器的 v18上!
此外,请发布详细的错误日志
请任何人提供帮助? 真的很感谢!!!