主题:C2000WARE 中讨论的其他器件
工具/软件:
Cla1ProgRunStart 设置为 0、不确定原因。
这来自.map 文件。
page address name ---- ------- ---- 0 00000000 Cla1ProgRunStart 0 00000000 Cla1Task1 0 00000400 __stack 0 00000600 __TI_STACK_END 0 00001480 gFromCLA 0 00001500 SwingCommutationA 0 00001506 SwingCommutationB 0 0000150c SwingCommutationC 0 00001512 ValveCommutationA 0 00001518 ValveCommutationB 0 0000151e ValveCommutationC 0 00001540 gToCLA 0 00001636 __claabi_addd 0 00001d9e __TI_frcdivd 0 00002270 __claabi_mpyd 0 00002654 __claabi_divd 0 00002944 __claabi_mpyll 0 00002ad8 __TI_frcmpyd 0 00002c5a __claabi_cmpull 0 00002d8a __claabi_asrll 0 00002eb4 __claabi_lslll 0 00002fba __claabi_cmplli 0 000030bc __claabi_lsrll 0 000031be __claabi_fltid 0 000032aa __claabi_cvtdf 0 0000336c __claabi_cvtfd 0 000033fe __claabi_addll 0 0000346c __claabi_subd 0 000034a6 __claabi_memset 0 000034d8 Cla1Task2 0 000034e0 Cla1Task3
这来自 f280037_cla_flash_link.cmd 中的存储器部分
BEGIN : origin = 0x00080000, length = 0x00000002 BOOT_RSVD : origin = 0x00000002, length = 0x00000126 RAMM0 : origin = 0x00000128, length = 0x000002D8 RAMM1 : origin = 0x00000400, length = 0x000003F8 // RAMM1_RSVD : origin = 0x000007F8, length = 0x00000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */ //shared by CPU and CLA RAMLS0 : origin = 0x00008000, length = 0x00000800 RAMLS1 : origin = 0x00008800, length = 0x00000800 RAMLS2 : origin = 0x00009000, length = 0x00000800 RAMLS3 : origin = 0x00009800, length = 0x00000800 //RAMLS4 : origin = 0x0000A000, length = 0x00000800 //RAMLS5 : origin = 0x0000A800, length = 0x00000800 //RAMLS6 : origin = 0x0000B000, length = 0x00000800 RAMLS4_5_6 : origin = 0x0000A000, length = 0x00001800 RAMLS7 : origin = 0x0000B800, length = 0x00000800 RAMGS0 : origin = 0x0000C000, length = 0x00001000 RAMGS1 : origin = 0x0000D000, length = 0x00001000 RAMGS2 : origin = 0x0000E000, length = 0x00001000 RAMGS3 : origin = 0x0000F000, length = 0x00000FF8 // RAMGS3_RSVD : origin = 0x0000FFF8, length = 0x00000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */ BOOTROM : origin = 0x003F8000, length = 0x00007FC0 SECURE_ROM : origin = 0x003F2000, length = 0x00006000 RESET : origin = 0x003FFFC0, length = 0x00000002
这来自同一文件的各个部分。
// CLA program memory */
#if defined(__TI_EABI__)
Cla1Prog : LOAD = FLASH_BANK0,
RUN = RAMLS4_5_6,
LOAD_START(Cla1ProgLoadStart),
RUN_START(Cla1ProgRunStart),
LOAD_SIZE(Cla1ProgLoadSize),
ALIGN(8)
#else
Cla1Prog : LOAD = FLASH_BANK0,
RUN = RAMLS4_5_6,
LOAD_START(_Cla1ProgLoadStart),
RUN_START(_Cla1ProgRunStart),
LOAD_SIZE(_Cla1ProgLoadSize),
ALIGN(8)
#endif
当我尝试编译时、收到以下错误:
../28003x_cla_flash_lnk.cmd“、第 158 行:错误#10099-D:程序无法放入可用内存中、或者该段包含一个需要无法为该段生成的蹦床函数的调用站点。 对于“Cla1Prog"段“段(大小为 0x3510 第 0 页)、带对齐/分块的运行放置失败。 可用存储器范围:
RAMLS4_5_6 大小:0x1800 未使用:0x1800 最大孔:0x1800
报告的 THS 大小 (0x3510) 是 CLATask8 的位置、大小 应约为 0x1300。
在采用 C2000W2_00_00_02 和较旧版本编译器的 280049 处理器上、代码运行正常。 我无法在当前安装的 C2000Ware 和编译器上编译旧代码。
感谢您的帮助。
