主题:controlSUITE中讨论的其他部件
您好,
我正在尝试调试用于F2.8377万D的应用程序,包括要在CLA上运行的代码。 几周前,这一切都很顺利,但我不得不将项目迁移到Mac OS,现在我正在将一些F2.8377万D代码映射到Flash。
我的问题:我似乎无法正确加载CLA程序。 当我尝试加载符号时,调试器指向0x0万。 我检查了.map文件,似乎ClA1Prog代码在闪存中,并已正确复制到RAM。 我真的不知道如何解决这个问题。 有什么想法吗?
下面是我的.cmd文件:
#ifdef CLA_C
//为将要使用的CLA暂存器区域定义一个大小
//由CLA编译器用于本地符号和临时工
//还强制引用标记的特殊符号
//暂存器是。
CLA_ScratchPad_size = 0x200;
--UNDEF_SYM=__CLA_scratchpad_end
--UNDEF_SYM=__CLA_scratchpad_start
#endif //CLA_C
内存
{
第0页:
/* BEGIN用于“引导至SARAM”引导加载程序模式 */
开始 :原点= 0x8万,长度= 0x0.0002万
RAMM0 :原点= 0x0.0122万,长度= 0x0002DE
RAMD0 :原点= 0x00B000,长度= 0x0.08万
RAMD1 :原点= 0x00B800,长度= 0x0.08万
RAMLS0 :原点= 0x0.8万,长度= 0x0.08万
RAMGS2 :原点= 0x00E000,长度= 0x0.1万
重置 :原点= 0x3FFFC0,长度= 0x0.0002万
/*闪存扇区*/
FLASHA :原点= 0x8.0002万,长度= 0x001FFE /*片上闪存*/
FLASHB :原点= 0x8.2万,长度= 0x0.2万 /*片上闪存*/
FLASHC :原点= 0x8.4万,长度= 0x0.2万 /*片上闪存*/
FLASHD :原点= 0x8.6万,长度= 0x0.2万 /*片上闪存*/
FLASHE :原点= 0x8.8万,长度= 0x0.8万 /*片上闪存*/
FLASHJ :原始= 0x0B0000,长度= 0x0.8万 /*片上闪存*/
FLASHK :原点= 0x0B8000,长度= 0x0.2万 /*片上闪存*/
FLASHL :原点= 0x0BA000,长度= 0x0.2万 /*片上闪存*/
FLASHM :原点= 0x0BC000,长度= 0x0.2万 /*片上闪存*/
FLASHN :原点= 0x0BE000,长度= 0x0.2万 /*片上闪存*/
第1页:
Boot_RSVD : Origin = 0x0.0002万,length = 0x0.012万 /* M0的一部分,引导ROM将使用此堆栈*/
RAMM1 :原点= 0x0.04万,长度= 0x0.04万 /*片上RAM块M1 */
RAMLS1 :原点= 0x0.88万,长度= 0x0.08万
RAMLS2 :原点= 0x0.9万,长度= 0x0.08万
RAMLS3 :原点= 0x0.98万,长度= 0x0.08万
RAML4 :原点= 0x00A000,长度= 0x0.08万
RAMLS5 :原点= 0x00A800,长度= 0x0.08万
RAMGS0_1 :原点= 0x00C000,长度= 0x0.2万
RAMGS4 :原点= 0x1万,长度= 0x0.1万
RAMGS5 :原点= 0x1.1万,长度= 0x0.1万
RAMGS6. :原点= 0x1.2万,长度= 0x0.1万
RAMGS7 :原点= 0x1.3万,长度= 0x0.1万
RAMGS8. :原点= 0x1.4万,长度= 0x0.1万
RAMGS9. :原点= 0x1.5万,长度= 0x0.1万
RAMGS10 :原点= 0x1.6万,长度= 0x0.1万
RAMGS11. :原点= 0x1.7万,长度= 0x0.1万
RAMGS12. :原点= 0x1.8万,长度= 0x0.1万
RAMGS13. :原点= 0x1.9万,长度= 0x0.1万
RAMGS14. :原点= 0x01A000,长度= 0x0.1万
Cana_MSG_RAM :原点= 0x4.9万,长度= 0x0.08万
CANB_MSG_RAM :原点= 0x04B000,长度= 0x0.08万
CLA1_MSGRAMLOW :原点= 0x0.148万,长度= 0x0.008万
CLA1_MSGRAMHIGH :原点= 0x0.15万,长度= 0x0.008万
CPU2TOCPU1RAM :原点= 0x03F800,长度= 0x0.04万
CPU1TOCPU2RAM :原点= 0x03FC00,长度= 0x0.04万
}
章节
{
Ramfuns :> RAMM0 页面= 0
cinit :> FLASHA 页面= 0,ALIGN (4)
。销钉 :> FLASHA 页面= 0,ALIGN (4)
文本 :> FLASHB 页面= 0,对齐(4)
代码启动 :>开始, 第= 0页
堆栈 :> RAMM1, 第= 1页
.ebss :> RAMGS0_1, 第= 1页/*>LS1 LS2*/
esysmem :> RAMGS0_1, 页= 1/* LS2 */
重置 :>重置, 页面=0,类型= DSECT /*未使用,*/
/*初始化部分进入Flash */
econst :> FLASHC, 页面= 0,对齐(4)
开关 :> FLASHC 页面= 0,对齐(4)
Cla1ToCpuMsgRAM :> CLA1_MSGRAMLOW, 第= 1页
CpuToCla1MsgRAM :> CLA1_MSGRAMHIGH, 页面= 1
/* CLA特定部分*/
/* CLA特定部分*/
Cla1Prog :负载= FLASHD,
运行= RAMLS0,
load_start (_Cla1funcsLoadStart),
load_end (_Cla1funcsLoadEnd),
run_start(_Cla1funcsRunStart),
load_size (_Cla1funcsLoadSize),
页面= 0,对齐(4)
CLADataLS1 :> RAMLS1, Page=1/*从这些部分中删除LS1和LS2 */
CLADataLS2:> RAMLS2,页面=1
CLADataLS3:> RAMLS3,页面=1
CLADataLS4:> RAMLS4,页面=1
CLADataLS5:> RAMLS5,页面=1
Cla1ToCpuMsgRAM :> CLA1_MSGRAMLOW, 第= 1页
CpuToCla1MsgRAM :> CLA1_MSGRAMHIGH, 页面= 1
/*以下部分定义适用于SDFM示例*/
采集通道数:> RAMGS14,页面=1,填充=0x0000
ExcitationChannels :> RAMGS14,page =1,fill =0x0000
Cpu1ToCpu2ProcessingInfo:> RAMGS14,page =1,fill = 0x0000
BLETransmissionBuffer :> RAMGS4,页面=1,填充=0x0000
LockInBuffersIn1A :> RAMGS5 page =1,fill = 0x0000
LockInBuffersIn1B :> RAMGS6 page =1,fill = 0x0000
LockInBuffersIn2A :> RAMGS7,页面=1,填充=0x0000
LockInBuffersIn2B :> RAMGS8,页面=1,填充=0x0000
Cpu2ToCpu1ProcessingInfo:> RAMGS8,页面=1,填充=0x0000
Cpu2ToCpu1ProcessingInfo2:> RAMGS8,page =1,fill = 0x0000
Cpu2ToCpu1FilteringInfo:> RAMGS8,页面=1,填充=0x0000
LockInBuffersOutI :> RAMGS9,页面=1,填充=0x0000
LockInBuffersOutQ :> RAMGS10,页面=1,填充=0x0000
LUT :> RAMGS11,页=1,填充=0x0000
FIRFILTERS:> RAMGS11,页面=1,填充=0x0000
FilteringProcBuffer:> RAMGS12,页面=1,填充=0x0000
FilteringOutputBuffers:> RAMGS13,页面=1,填充=0x0000
/* CPU到CPU消息rams sections */
Cpu2ToCpu1Msg :>CPU2TOCPU1RAM, page =1.
Cpu1ToCpu2Msg :>CPU1TOCPU2RAM, page =1.
#ifdef __TI_Compiler_version__
#if __TI_Compiler_version__>= 1500.9万
组
{
.ti.ramfunc
{-l F021_API_F2837xD_FPU32.lib}
}负载= FLASHE,
RUN = RAMGS2,
load_start(_RamfuncsLoadStart),
load_size (_RamfuncsLoadSize),
load_end (_RamfuncsLoadEnd),
run_start(_RamfuncsRunStart),
Run_Size (_RamfuncsRunSize),
Run_End(_RamfuncsRunEnd),
页面= 0
#否则
组
{
Ramfuns
{-l F021_API_F2837xD_FPU32.lib}
}负载= FLASHE,
RUN = RAMGS2,
load_start(_RamfuncsLoadStart),
load_size (_RamfuncsLoadSize),
load_end (_RamfuncsLoadEnd),
run_start(_RamfuncsRunStart),
Run_Size (_RamfuncsRunSize),
Run_End(_RamfuncsRunEnd),
页面= 0
#endif
#endif
/*使用IPC API驱动程序时,需要以下部分定义*/
组:> CPU1TOCPU2RAM,页= 1
{
PUTBUFFER
PUTWRITEIDX
GETREADIDX
}
组:> CPU2TOCPU1RAM,页= 1
{
GETBUFFER: 类型= DSECT
GETWRITEIDX: 类型= DSECT
PUTREADIDX : 类型= DSECT
}
#ifdef CLA_C
/* CLA C编译器部分*/
//
//必须分配给CLA具有写入访问权限的内存
//
CLAskatch :
{*。obj (CLAskatch)
。 += CLA_ScratchPad_Size;
*.obj(CLAScatch_end)}> RAMLS4, 页= 1
.scratchpad :> RAMLS4, page = 1
.bss_CLA :> RAMLS4, 页面=1
.const_CLA :LOAD = FLASHC
RUN = RAMLS4,
Run_start(_Cla1ConstRunStart),
load_start (_Cla1ConstLoadStart),
Load_Size (_Cla1ConstLoadSize),
页面= 1.
#endif //CLA_C
}
感谢您的帮助!
此致,