主题中讨论的其他器件:C2000WARE
我需要有关使用 CLAsin ()函数的指导。 尽管我提到了 CLA_MATH_LIB_UG.pdf、但我有以下问题
在我添加 具有第一优先级的"F2837xRevB_c1bootROM_CLADataROMSymbols_fpu32.lib"之前、我的程序显示了创建 CLAMathTable 的警告。 添加之后,我的警告消失了, 但 CLAsin ()函数在我的 CLA 任务中仍然不起作用。 我正在使用控制卡、因此我在我的 cmd 中使用 RAM。 我应该修改我的 cmd 文件吗?
以下是我的 cmd 文件
//如果使用 // CLA C 编译器 //项目属性-> C2000链接器->高级选项->命令文件 //预处理->--,用户必须在项目链接器设置中定义 CLA_C define #ifdef CLA_C //定义 将由 CLA 编译器用于局部符号和 temps 的 CLA 暂存区的大小 //还强制引用标记 了//暂存区的特殊符号。 CLA_暂 存区_size = 0x100; --undef_sym=__cla_scratchpad 结束 --undef_sym=__cla_scratchpad 开始 #endif //cla_C MEMORY { PAGE 0: /* begin 用于"引导至 SARAM"引导加载程序模式*/ begin:origin = 0x000000,length = 0x000002 RAMM0:origin = 0x000123,length = 0x0002DD RAMD0:origin = 0x00B000、length = 0x000800 RAMD1 :origin = 0x00B800,length = 0x000800 // RAMLS4:origin = 0x00A000、length = 0x000800 */ /* RAMLS5 :origin = 0x00A800、length = 0x000800 */ RAMLS4_5 :origin = 0x00A000、length = 0x001000 reset:origin = 0x3FFFC0,length = 0x000002 page 1: boot_RSVD :origin = 0x000002、length = 0x000121 // M0的一部分,引导 ROM 将此用于栈*/ RAMM1 :origin = 0x000400、length = 0x0003F8 /*片上 RAM 块 M1 *// RAMM1_RSVD :origin = 0x0007F8,length = 0x000008 /*根据勘误咨询"内存:有效内存之外的预取"来保留和不用于代码*/* RAMLS0:origin = 0x008000、length = 0x000800*/ EPWM1ISR_LS0:origin = 0x008000、length = 0x000050 ECAP1ISR_LS0:origin = 0x008050、length = 0x000050 RAMLS0:origin = 0x080A0,length = 0x000760 RAMLS1:origin = 0x008800,length = 0x000800 RAMLS2:origin = 0x009000、length = 0x000800 RAMLS3:origin = 0x009800,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 //取消对 F28374D、F28376D 器件的注释*// RAMGS11_RSVD:origin = 0x017FF8,length = 0x000008 //根据勘误表中的“Memory:Prepetching Beyond valid Memory”*/ RAMGS11保留并不用于代码 :origin = 0x017000、length = 0x001000 /*仅在 F28379D、F28377D、F28375D 器件上可用。 移除其他设备上的线路。 */ RAMGS12 :origin = 0x018000、length = 0x001000 /*仅在 F28379D、F28377D、F28375D 器件上可用。 移除其他设备上的线路。 */ RAMGS13 :origin = 0x019000、length = 0x001000 /*仅在 F28379D、F28377D、F28375D 器件上可用。 移除其他设备上的线路。 */ RAMGS14 :origin = 0x01A000、length = 0x001000 /*仅在 F28379D、F28377D、F28375D 器件上可用。 移除其他设备上的线路。 */ RAMGS15 :origin = 0x01B000、length = 0x000FF8 /*仅在 F28379D、F28377D、F28375D 器件上可用。 移除其他设备上的线路。 // RAMGS15_RSVD:origin = 0x01BFF8,length = 0x000008 //根据勘误咨询“Memory:Prepetching Beyond valid Memory”(内存:超出有效内存的预取)来保留代码且不用于代码*/ /*仅在 F28379D、F28377D、F28375D 器件上。 移除其他设备上的线路。 * / EMIF1_CS0n :origin = 0x8000000、length = 0x10000000 EMIF1_CS2n :origin = 0x00100000、length = 0x00200000 EMIF1_CS3n :origin = 0x00300000、length = 0x00080000 EMIF1_CS4n :origin = 0x00380000、length = 0x00060000 EMIF2_CS0n :origin = 0x90000000、length = 0x10000000 EMIF2_CS2n :origin = 0x00002000、length = 0x00001000 CANA_MSG_RAM :origin = 0x049000、length = 0x000800 CANB_MSG_RAM :origin = 0x04B000、length = 0x000800 CLA1_MSGRAMLOW:origin = 0x001480、length = 0x000080 CLA1_MSGRAMIGH:origin = 0x001500、length = 0x000080 CPU2TOCPU1RAM:origin = 0x03F800、length = 0x000400 CPU1TOCPU2TOCPU2FC00:origin = 0x000400 SECTIONS :origin = 0x03FRAM :>开始, PAGE = 0.text :>> RAMD0 | RAMD1 | RAMLS4_5,page = 0.cinit :> RAMM0, PAGE = 0.switch :> RAMM0, PAGE = 0.reset :>重置, PAGE = 0、TYPE = DSECT /*未使用、*/ .stack :> RAMM1, PAGE = 1 #if defined (_TI_EABI _) .bss :> RAMLS2,页= 1.bss :输出 :> RAMLS2,page = 1 .init_array :> RAMM0, PAGE = 0 .const :> RAMLS3,page = 1.data :> RAMLS3,page = 1 .sysmem :> RAMLS3,page = 1#else .pinit :> RAMM0, PAGE = 0 .ebss :> RAMLS2,PAGE = 1.econst :> RAMLS3,page = 1 .esysmem :> RAMLS3,page = 1 #endif Filter_RegsFile:> RAMGS0,PAGE = 1 .em1_cs0 :> EMIF1_CS0n,PAGE = 1.em1_CS2 :> EMIF1_CS2n,PAGE = 1.em1_CS3 :> EMIF1_CS3n,page = 1.em1_CS4 :> EMIF1_CS4n,PAGE = 1.EM2_cs0 :> EMIF2_CS0n,PAGE = 1.EM2_CS2 :> EMIF2_CS2n,PAGE = 1 /* CLA 特定部分*/ Cla1Prog :>RAMLS4_5,PAGE=0 CLADataLS0:>RAMLS0,PAGE=1 CLADataLS1:>RAMLS1,PAGE=1 ePWM_INT_ISR:>EPWM1ISR_LS0,PAGE = 1 ECAP1_ISR:>ECAP1ISR_LS0,PAGE = 1 CPU2TOCLUSB1 :>CLMSOM_CLUSB1:1:1 CLUSCMPOIN_CL1:1:1 CLMLS1:1 CLUSCOLUM_CLPM1_CLUSB1:1:1:1:CLMLS1:CLMLS1:CLMLS1:CLUSCO_CLMLS1 >CLA1_MSGRAMHIGH、PAGE = 1 /*以下段定义适用于 SDFM 示例*/ Filter1_RegsFile:>RAMGS1、PAGE = 1、fill=0x1111 Filter2_RegsFile:>RAMGS2、PAGE = 1、fill=0x2222 Filter3_RegsFile:>RAMGS3、PAGE = 0x4_RegsFile : > RAMGS4、PAGE = 1、fill=0x4444 #ifdef __TI_Compiler_version__ #if __TI_Compiler_version__>=15009000 .TI.ramfunc:{}>RAMM0, PAGE = 0 #else ramfuncs:>RAMM0 PAGE = 0 #endif #endif #ifdef CLA_C /* CLA C 编译器段*/ // ////必须分配给 CLA 具有写入访问 权限的内存 : {*。obj (CLAscratch) 。 += CLA_ScratchPad_size; *。obj (CLAscratch_end)}> RAMLS1、page = 1 .scratchpad :> RAMLS1、 PAGE = 1.bss_cla :> RAMLS1、 PAGE = 1.CONST_CLA :> RAMLS1、 PAGE = 1 #endif //cla_C 组:> CPU1TOCPU2RAM,PAGE = 1 { PUTBUFFER PUTWRITEIDX GETREADIDX } 组:> CPU2TOCPU1RAM,PAGE = 1 { GETBUFFER:TYPE = DSECT GETWRITEIDX:TYPE = DSECT PUTREADIDX:TYPE = DSECT } }
2.即使我使用的是 CLA 库、我也应该将 CLA 汇编源文件包含在我的项目中吗?
3.当我添加"CLAsin.asm"源文件时、在原子模式下显示添加"CLAeabi.asm"时出错、但我正在使用 COFF 输出格式。 帮助