主题中讨论的其他器件:C2000WARE
工具/软件:TI C/C++编译器
CLA 问题:
1) 1) 我已经使用以下 cmd 文件创建了一个项目。
2) 2)我从 CLA_divide 的示例代码中获取了.c、.h 和.cla 文件。
3) 3)我已成功构建项目工作空间。
4) 4)我已将 LaunchPad 连接到 PC、并尝试在调试模式下运行。
5) 但调试器在 cla_divide_cpu01.c 中的 Cla1ForceTask1andWait()处停止
CCS 编译器版本为16.9.1.LTS
存储器
{
第0页:/*程序内存*/
第1页:/*数据存储器*/
ADCA_RESULT:origin = 0x000B00,length = 0x000020
ADCB_RESULT:origin = 0x000B20,length = 0x000020
ADCC_RESULT:origin = 0x000B40,length = 0x000020
ADCD_Result:origin = 0x000B60,length = 0x000020
ADCA:origin = 0x007400,length = 0x000080
ADCB:origin = 0x007480,length = 0x000080
ADCC:origin = 0x007500,length = 0x000080
ADCD:origin = 0x007580,length = 0x000080
analog_Subsys:origin = 0x05D180,length = 0x000080
CANA:origin = 0x048000,length = 0x000800
CANB:origin = 0x04A000、length = 0x000800
CLA1:origin = 0x001400、length = 0x000040 // CLA 寄存器*/
CLB_XBAR:origin = 0x007A40,length = 0x000040
CMPSS1:origin = 0x005C80,length = 0x000020
CMPSS2:origin = 0x005CA0,length = 0x000020
CMPSS3:origin = 0x005CC0,length = 0x000020
CMPSS4:origin = 0x005CE0,length = 0x000020
CMPSS5:origin = 0x005D00,length = 0x000020
CMPSS6:origin = 0x005D20,length = 0x000020
CMPSS7:origin = 0x005D40,length = 0x000020
CMPSS8:origin = 0x005D60,length = 0x000020
CPU_TIMER0:origin = 0x000C00,length = 0x000008 // CPU Timer0寄存器*/
CPU_Timer1:origin = 0x000C08,length = 0x000008 // CPU Timer1寄存器*/
CPU_TIMER2:origin = 0x000C10,length = 0x000008 // CPU Timer2寄存器*/
DACA:origin = 0x005C00,length = 0x000010
DACB:origin = 0x005C10、length = 0x000010
DACC:origin = 0x005C20,length = 0x000010
DMA:origin = 0x001000、length = 0x000200
DMACLASRCSEL:origin = 0x007980,length = 0x000040
eCAP1:origin = 0x005000、length = 0x000020 //增强型捕捉1寄存器*/
ECAP2:origin = 0x005020,length = 0x000020 //增强型捕捉2寄存器*/
ECAP3:origin = 0x005040,length = 0x000020 //增强型捕捉3寄存器*/
ECAP4:origin = 0x005060,length = 0x000020 //增强型捕捉4寄存器*/
ECAP5:origin = 0x005080,length = 0x000020 //增强型捕捉5寄存器*/
ECAP6:origin = 0x0050A0,length = 0x000020 //增强型捕捉6寄存器*/
EMIF1:origin = 0x047000、length = 0x000800
EMIF2:origin = 0x047800,length = 0x000800
EQEP1:origin = 0x005100,length = 0x000040 //增强型 QEP 1寄存器*/
EQEP2:origin = 0x005140、length = 0x000040 //增强型 QEP 2寄存器*/
EQEP3:origin = 0x005180,length = 0x000040 //增强型 QEP 3寄存器*/
EPWM1:origin = 0x004000、length = 0x000100 //增强型 PWM 1寄存器*/
EPWM2:origin = 0x004100、length = 0x000100 //增强型 PWM 2寄存器*/
EPWM3:origin = 0x004200,length = 0x000100 //增强型 PWM 3寄存器*/
EPWM4:origin = 0x004300,length = 0x000100 //增强型 PWM 4寄存器*/
EPWM5:origin = 0x004400、length = 0x000100 //增强型 PWM 5寄存器*/
EPWM6:origin = 0x004500、length = 0x000100 //增强型 PWM 6寄存器*/
EPWM7:origin = 0x004600,length = 0x000100 //增强型 PWM 7寄存器*/
EPWM8:origin = 0x004700、length = 0x000100 //增强型 PWM 8寄存器*/
EPWM9:origin = 0x004800,length = 0x000100 //增强型 PWM 9寄存器*/
EPWM10:origin = 0x004900,length = 0x000100 //增强型 PWM 10寄存器*/
EPWM11:origin = 0x004A00,length = 0x000100 //增强型 PWM 11寄存器*/
EPWM12:origin = 0x004B00、length = 0x000100 //增强型 PWM 12寄存器*/
ePWM_XBAR:origin = 0x007A00,length = 0x000040
FLASH0_CTRL:origin = 0x05F800,length = 0x000300
FLASH0_ECC:origin = 0x05FB00,length = 0x000040
FLASH1_CTRL:origin = 0x05FC00,length = 0x000300
FLASH1_ECC:origin = 0x05FF00,length = 0x000040
GPIOCTRL:origin = 0x007C00,length = 0x000180 // GPIO 控制寄存器*/
GPIODAT:origin = 0x007F00,length = 0x000030 // GPIO 数据寄存器*/
output_XBAR:origin = 0x007A80,length = 0x000040
I2CA:origin = 0x007300,length = 0x000040 // I2C-A 寄存器*/
I2CB:origin = 0x007340,length = 0x000040 // I2C-B 寄存器*/
FLASHPUMPSEMAPHORE:origin = 0x050024,length = 0x000002
ROMPREEFETCH:origin = 0x05E608,length = 0x000002
MEMCFG:origin = 0x05F400,length = 0x000080 // Mem 配置寄存器*/
EMIF1CONFIG:origin = 0x05F480,length = 0x000020 /* EMIF-1 Config registers */
EMIF2CONFIG:origin = 0x05F4A0,length = 0x000020 // EMIF-2配置寄存器*/
ACCESSPROTECTION:origin = 0x05F4C0,length = 0x000040 //访问保护寄存器*
MEMORYERROR:origin = 0x05F500,length = 0x000040 //访问保护寄存器*
ROMWAITSTATE:origin = 0x05F540,length = 0x000002 /* ROM 配置寄存器*/
MCBSPA:origin = 0x006000、length = 0x000040 // McBSP-A 寄存器*/
MCBSPB:origin = 0x006040、length = 0x000040 // McBSP-A 寄存器*/
NMIINTRUPT:origin = 0x007060,length = 0x000010 // NMI 安全装置中断寄存器*/
PIE_CTRL:origin = 0x000CE0,length = 0x000020 // PIE 控制寄存器*/
PIE_VECT:origin = 0x000D00,length = 0x000200 // PIE 矢量表*/
SCIA:origin = 0x007200、length = 0x000010 // SCI-A 寄存器*/
SCIB:origin = 0x007210、length = 0x000010 //* SCI-B 寄存器*/
SCIC:origin = 0x007220,length = 0x000010 /* SCI-C 寄存器*/
SCID:origin = 0x007230,length = 0x000010 //* SCI-D 寄存器*/
SDFM1:origin = 0x005E00,length = 0x000080 // Sigma delta 1寄存器*/
SDFM2:origin = 0x005E80、length = 0x000080 // Sigma delta 2寄存器*/
SPIA:origin = 0x006100,length = 0x000010
SPIB:origin = 0x006110,length = 0x000010
***:origin = 0x006120,length = 0x000010
SPID:origin = 0x006130,length = 0x000010
upp:origin = 0x006200,length = 0x000100 /* uPP 寄存器*/
DEV_CFG:origin = 0x05D000、length = 0x000180
CLK_CFG:origin = 0x05D200,length = 0x000100
CPU_SYS:origin = 0x05D300,length = 0x000100
INPUT_XBAR:origin = 0x007900,length = 0x000020
Xbar:origin = 0x007920,length = 0x000020
SYNC_SOC:origin = 0x007940,length = 0x000010
WD:origin = 0x007000,length = 0x000040
XINT:origin = 0x007070,length = 0x000010
DCSM_Z1:origin = 0x05F000、length = 0x000030 //区域1双代码安全模块寄存器*/
DCSM_Z2:origin = 0x05F040,length = 0x000030 //区域2双代码安全模块寄存器*/
DCSM_COMMON:origin = 0x05F070,length = 0x000010 //通用双代码安全模块寄存器*/
DCSM_Z1_OTP:origin = 0x078000,length = 0x000020 // Z1 OTP 的一部分。 LinkPointer/JTAG 锁定/引导模式*/
DCSM_Z2_OTP:origin = 0x078200,length = 0x000020 // Z2 OTP 的一部分。 LinkPointer/JTAG 锁定*/
}
部分
{
/*** PIE Vect 表和引导 ROM 变量结构***/
UNION RUN = PI_VECT、PAGE = 1
{
PieVectTableFile
组
{
EMUKeyVar
EMUBModeVar
FlashCallbackVar
FlashScalingVar
}
}
AdcaResultFile :>ADCA_Result,page = 1.
AdcbResultFile :>ADCB_Result,page = 1.
AdccResultFile :>ADCC_Result,page = 1.
AdcdResultFile :>ADCD_Result,page = 1.
AdcaRegsFile :>ADCA,page = 1.
AdcbRegsFile :> ADCB,page = 1.
AdccRegsFile :>ADCC,PAGE = 1.
AdcdRegsFile :>ADCD,page = 1.
AnalogSubsysRegsFile:> analog_Subsys,page = 1.
CanaRegsFile:> Cana, page = 1.
CANbRegsFile:> CANB,PAGE = 1
Cla1RegsFile:> CLA1,page = 1.
Cla1SoftIntRegsFile:> PIE_CTRL,PAGE = 1,type=DSECT
ClbXbarRegsFile:> CLB_XBAR page = 1.
Cmpss1RegsFile :>CMPSS1,page = 1.
Cmpss2RegsFile :>CMPSS2,page = 1.
Cmpss3RegsFile :>CMPSS3,page = 1.
Cmpss4RegsFile :>CMPSS4,page = 1.
Cmpss5RegsFile :>CMPSS5,page = 1.
Cmpss6RegsFile :>CMPSS6,page = 1.
Cmpss7RegsFile :>CMPSS7,page = 1.
Cmpss8RegsFile :>CMPSS8,page = 1.
CpuTimer0RegsFile:>CPU_TIMER0,PAGE = 1
CpuTimer1RegsFile:>CPU_Timer1,page = 1
CpuTimer2RegsFile:>CPU_TIMER2,PAGE = 1
DacaRegsFile:> DACA PAGE = 1.
DacbRegsFile:>DACB PAGE = 1.
DaccRegsFile:> DACC PAGE = 1.
DcsmZ1RegsFile :>DCSM_Z1,page = 1.
DcsmZ2RegsFile :>DCSM_Z2,page = 1.
DcsmCommonRegsFile :>DCSM_common,page = 1.
/***警告:仅删除"Type = NoLoad"以对 OTP 位置进行编程***/
DcsmZ1OtpFile:>DCSM_Z1_OTP,page = 1,type = NoLoad
DcsmZ2OtpFile:>DCSM_Z2_OTP,page = 1,type = NoLoad
DmaRegsFile:> DMA page = 1.
DmaClaSrcSelRegsFile :>DMACLASRCSEL PAGE = 1.
ECap1RegsFile:> ECAP1,page = 1.
ECap2RegsFile:> ECAP2,page = 1.
ECap3RegsFile:> ECAP3,page = 1.
ECap4RegsFile:>ECAP4,PAGE = 1.
ECap5RegsFile:> ECAP5,page = 1.
ECap6RegsFile:> ECAP6,page = 1.
EMIF1RegsFile:> EMIF1 PAGE = 1.
EMif2RegsFile:> EMIF2 PAGE = 1.
EPwm1RegsFile:> EPWM1,PAGE = 1
EPwm2RegsFile:> EPWM2,PAGE = 1
EPwm3RegsFile:> EPWM3,PAGE = 1
EPwm4RegsFile:> EPWM4,PAGE = 1
EPwm5RegsFile:> EPWM5,PAGE = 1
EPwm6RegsFile:> EPWM6,PAGE = 1
EPwm7RegsFile:> EPWM7,PAGE = 1
EPwm8RegsFile:> EPWM8,PAGE = 1
EPWM9RegsFile:> EPWM9,PAGE = 1
EPwm10RegsFile:> EPWM10,PAGE = 1
EPwm11RegsFile:> EPWM11,PAGE = 1
EPwm12RegsFile:> EPWM12,PAGE = 1
EPwmXbarRegsFile :>ePWM_XBAR page = 1.
EQep1RegsFile:> EQEP1,PAGE = 1.
EQep2RegsFile:> EQEP2,PAGE = 1
EQep3RegsFile:> EQEP3,PAGE = 1
Flash0CtrlRegsFile:> FLASH0_CTRL PAGE = 1.
Flash0EccRegsFile:> FLASH0_ECC PAGE = 1.
Flash1CtrlRegsFile:> FLASH1_CTRL PAGE = 1.
Flash1EccRegsFile:> FLASH1_ECC PAGE = 1.
GpioCtrlRegsFile:> GPIOCTRL,PAGE = 1
GpioDataRegsFile:> GPIODAT,page = 1.
OutputXbarRegsFile:> output_XBAR page = 1.
I2caRegsFile:>I2CA,page = 1.
I2cbRegsFile:>I2CB,page = 1.
InputXbarRegsFile:> input_XBAR page = 1.
XbarRegsFile:> XBAR page = 1.
FlashPumpSemaphoreRegsFile :>FLASHPUMPSEMAPHORE,PAGE = 1.
RomPrefetchRegsFile:> ROMPREEFETCH,PAGE = 1.
MemCfgRegsFile :>MEMCFG, page = 1.
Emif1ConfigRegsFile:> EMIF1CONFIG,PAGE = 1.
Emif2ConfigRegsFile:> EMIF2CONFIG,PAGE = 1.
AccessProtectionRegsFile:> ACCESSPROTECTION,page = 1.
MemoryErrorRegsFile:> MEMORYERROR,PAGE = 1.
RomWaitStateRegsFile:> ROMWAITSTATE,PAGE = 1.
McbspaRegsFile :>MCBSPA,page = 1.
McbspbRegsFile :>MCBSPB,page = 1.
UppRegsFile:> UPP,page = 1.
NmiIntertRegsFile :>NMIINTRUPT,PAGE = 1.
PieCtrlRegsFile :> PIE_CTRL,PAGE = 1.
SciaRegsFile:>SCIA,page = 1.
ScibRegsFile:>SCIB,page = 1.
ScicRegsFile:>SCIC,page = 1.
scidRegsFile:>SCID,page = 1.
Sdfm1RegsFile :>SDFM1,PAGE = 1
Sdfm2RegsFile :>SDFM2,page = 1.
SpiaRegsFile :>SPIA,page = 1.
SpibRegsFile :>SPIB,PAGE = 1.
SpicRegsFile:>***,page = 1.
SpidRegsFile :>SPID,page = 1.
DevCfgRegsFile :>DEV_CFG,PAGE = 1.
ClkCfgRegsFile :>CLK_CFG,PAGE = 1.
CpuSysRegsFile:>CPU_SYS,PAGE = 1.
SyncSockRegsFile:> SYNC_SOC,PAGE = 1.
WdRegsFile:>WD,PAGE = 1.
XintRegsFile:>XINT PAGE = 1.
MemCfgRegs :>MEMCFG PAGE = 1.
}
/*
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
//文件结束。
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*
//如果使用、用户必须在项目链接器设置中定义 CLA_C
// CLA C 编译器
//项目属性-> C2000链接器->高级选项->命令文件
//预处理->--define
#ifdef CLA_C
//为将要使用的 CLA 暂存区定义大小
//由 CLA 编译器生成局部符号和 temps
//还强制引用标记的特殊符号
//暂存区是。
CLA_ScratchPad_size = 0x100;
--undef_sym=__cla_scratchpad_end
--undef_sym=__cla_scratchpad_start
#endif //cla_C
存储器
{
第0页:/*程序内存*/
/*内存(RAM/FLASH)块可移动到 Page1进行数据分配*/
/* begin 用于"引导至闪存"引导加载程序模式*/
开始:origin = 0x080000,length = 0x000002
RAMM0:origin = 0x000122、length = 0x0002DE
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 = 0x001000
复位:origin = 0x3FFFC0,length = 0x000002
IQTABLES:origin = 0x3FE000,length = 0x000b50
IQTABLES2:origin = 0x3FEB50,length = 0x00008c
FPUTABLES:origin = 0x3FEBDC,length = 0x0006A0
/*闪存扇区*/
FLASHA:origin = 0x080002,length = 0x001FFE /*片上闪存*/
FLASHB:origin = 0x082000、length = 0x002000 //片上闪存*
FLASHC:origin = 0x084000,length = 0x002000 //片上闪存*/
FLASHD:origin = 0x086000、length = 0x002000 //片上闪存*/
FLASHE:origin = 0x088000、length = 0x008000 //片上闪存*/
FLASHF:origin = 0x090000,length = 0x008000 //片上闪存*
FLASHG:origin = 0x098000、length = 0x008000 //片上闪存*/
FLASHH:origin = 0x0A0000,length = 0x008000 //片上闪存*/
FLASHI:origin = 0x0A8000、length = 0x008000 //片上闪存*/
FLASHJ:origin = 0x0B0000,length = 0x008000 //片上闪存*/
FLASHK:origin = 0x0B8000、length = 0x002000 //片上闪存*/
FLASHL:origin = 0x0BA000、length = 0x002000 //片上闪存*/
FLASHM:origin = 0x0BC000、length = 0x002000 //片上闪存*/
FLASHN:origin = 0x0BE000、length = 0x002000 //片上闪存*/
第1页:/*数据存储器*/
/*内存(RAM/FLASH)块可移动到 PAGE0进行程序分配*/
BOOT_RSVD:origin = 0x000002,length = 0x000120 // M0的一部分,引导 ROM 将此用于栈*/
RAMM1:origin = 0x000400、length = 0x000400 //片上 RAM 块 M1 *
RAMD1:origin = 0x00B800,length = 0x000800
RAMLS0:origin = 0x008000、length = 0x000800
RAMLS1:origin = 0x008800,length = 0x000800
RAMLS2:origin = 0x009000,length = 0x000800
RAMLS5:origin = 0x00A800,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 = 0x001000
RAMGS12:origin = 0x018000,length = 0x001000 //*仅在 F28377S、F28375S 器件上可用。 移除其他设备上的线路。 *
RAMGS13:origin = 0x019000,length = 0x001000 //*仅在 F28377S、F28375S 器件上可用。 移除其他设备上的线路。 *
RAMGS14:origin = 0x01A000,length = 0x001000 //*仅在 F28377S、F28375S 器件上可用。 移除其他设备上的线路。 *
RAMGS15:origin = 0x01B000,length = 0x001000 //*仅在 F28377S、F28375S 器件上可用。 移除其他设备上的线路。 *
CANA_MSG_RAM:origin = 0x049000、length = 0x000800
CANB_MSG_RAM:origin = 0x04B000、length = 0x000800
CLA1_MSGRAMLOW:origin = 0x001480,length = 0x000080
CLA1_MSGRAMHIGH:origin = 0x001500,length = 0x000080
}
部分
{
/*分配计划领域:*/
.cinit:> FLASHB PAGE = 0,ALIGN (4)
.pinit:> FLASHB,PAGE = 0,ALIGN (4)
.text:>> FLASHB | FLASHC | FLASHD | FLASHE PAGE = 0,ALIG(4)
codestart:> begin page = 0,align (4)
/*分配未初始化的数据段:*/
.stack:>RAMM1 page = 1.
.ebss:>> RAMLS5 | RAMGS0 | RAMGS1 PAGE = 1.
.esysmem:> RAMLS5 PAGE = 1.
/*初始化段进入闪存*/
econst:>> FLASHF | FLASHG | FLASHH PAGE = 0,ALIGN (4)
.switch:> FLASHB PAGE = 0,ALIGN (4)
.reset:> reset,page = 0,type = DSECT //未使用,*/
#ifdef __TI_Compiler_version__
#if __TI_Compiler_version__>=15009000
.TI.ramfunc:{}负载= FLASHD,
RUN = RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3、
load_start (_RamfuncsLoadStart)、
load_size (_RamfuncsLoadSize)、
load_end (_RamfuncsLoadEnd)、
run_start (_RamfuncsRunStart)、
run_size (_RamfuncsRunSize)、
run_end (_RamfuncsRunEnd)、
PAGE = 0、ALIGN (4)
其他
ramfuncs:load = FLASHD,
RUN = RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3、
load_start (_RamfuncsLoadStart)、
load_size (_RamfuncsLoadSize)、
load_end (_RamfuncsLoadEnd)、
run_start (_RamfuncsRunStart)、
run_size (_RamfuncsRunSize)、
run_end (_RamfuncsRunEnd)、
PAGE = 0、ALIGN (4)
#endif
#endif
RAMS0:>RAMGS0,PAGE = 1
ramgs1:>RAMGS1,page = 1.
DLOG:>RAMGS5,PAGE = 1
SGENipcb:>RAMGS12,PAGE = 1
SGENipcbsrc:>RAMGS13,page = 1.
SINTBL:>RAMGS7,PAGE = 1
IQMath:> RAMLS1,PAGE = 0
IQmathTables :>IQTABLES,PAGE = 0,TYPE = NOLOAD
FPUmathTables:> FPUTABLES,PAGE = 0,TYPE = NOLOAD
/* CLA 特定部分*/
Cla1Prog:> RAMLS4_LS5,page=0
CLADataLS0:>RAMLS0,PAGE=1
CLADataLS1:> RAMLS1,PAGE=1
Cla1ToCpuMsgRAM:> CLA1_MSGRAMLOW,page = 1.
CpuToCla1MsgRAM:>CLA1_MSGRAMHIGH,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
#ifdef CLA_C
/* CLA C 编译器段*/
//
//必须被分配给 CLA 具有写入访问权限的内存
//
CLAscratch:
{*。obj (CLAscratch)
。 += CLA_ScratchPad_size;
*。obj (CLAscratch_end)}> RAMLS1、PAGE = 1
暂存区:>RAMLS1,页=1
.bss_cla:> RAMLS1,page = 1.
.const_cla:> RAMLS1,PAGE = 1.
#endif //cla_C
}
/*
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
//文件结束。
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*