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.

[参考译文] TMS320F28377S:TMS320F28377S:无法将定义的段加载到Flash、报错提示该段未初始化?μ s

Guru**** 1821780 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1433693/tms320f28377s-tms320f28377s-flash

器件型号:TMS320F28377S

工具与软件:

我在调整项目的时候需要做和XCP相关的功能时候发现我貌似无法把自定义的这个段存入Flash里面、并且无法在Hex里面找到对应地址:μ A

部分代码:μ A

global.c:

#pragma DATA_SECTION (cRad2GRAD_C、"shd_data")

REAL32_T cRad2GRAD_C = 57.2957802F;

...

2837x_flash_lnk_cpu1.cmd

小程序

第0页:/*程序内存*/
/*存储器(RAM/FLASH)块可以移动到页1进行数据分配*/
...
Flash_Characteristic:origin = 0x0C2000、length = 0x001000
RAMGS6:origin = 0x012000、length = 0x001000

第1页:/*数据存储器*/

...

}

部分中)

...

SHD_DATA:load = flash_characteristic、
RUN = RAMGS6、
load_start (_shd_dataLoadStart)、
load_size (_shd_dataLoadSize)、
Load_End (_shd_dataLoadEnd)、
RUN_START (_shd_dataRunStart)、
RUN_SIZE (_shd_dataRunSize)、
RUN_END (_shd_dataRunEnd)、
PAGE = 0、ALIGN (4)

...

}

编译的时候就报错说:"../2837x_flash_lnk_cpu1.cmd"、第479行:警告#10083-D:忽略"shd_data"的加载放置: 对象未初始化

查看hex文件也没有数据。μ A

在此之前我曾经尝试将其写入PAGE0的Group中:则会报错:错误#10470-D:无法为内存范围 FLASH_Characteristic 中的"shd_data"生成 CRC;CRC 范围内的对象可能只有此范围内的加载数据。

#ifdef __TI_Compiler_version__
#if __TI_Compiler_version__>= 20012000
GROUP{/*整个闪存 CRC/校验和的组存储器范围*/
#endif
#endif

/*开始用于"引导至闪存"引导加载程序模式*/
/*begin : origin = 0x084000, length = 0x000008 */
begin:origin = 0x080000、length = 0x000008 //用于调试模式

/*闪存扇区*/
/*FLASHA : origin = 0x080000, length = 0x002000 /*片上闪存*/
FLASHA:origin = 0x080008、length = 0x001FF8 /*片上闪存*/
FLASHB:origin = 0x082000、length = 0x002000 /*片上闪存*/
/*FLASHC : origin = 0x0884008, length = 0x001FF8/*片上闪存*/
FLASHC:origin = 0x084000, length = 0x004000 /*片上闪存*/
FLASHD:origin = 0x088000、length = 0x002000 /*片上闪存*/
FLASHE:origin = 0x08A000、length = 0x008000 /*片上闪存*/
FLASHF:origin = 0x092000、length = 0x008000 /*片上闪存*/
FLASHG:origin = 0x09A000、length = 0x008000 /*片上闪存*/
FLASHH:origin = 0x0A2000、length = 0x008000 /*片上闪存*/
FLASH:origin = 0x0AA000、length = 0x008000 /*片上闪存*/
FLASHJ:origin = 0x0B2000、length = 0x008000 /*片上闪存*/
FLASHK:origin = 0x0BA000、length = 0x002000 /*片上闪存*/
FLASHL:origin = 0x0BC000、length = 0x002000 /*片上闪存*/
FLASHM:origin = 0x0BE000、length = 0x002000 /*片上闪存*/
FLASHn:origin = 0x0C0000、length = 0x001FF0 /*片上闪存*/
FLASHN_DO_NOT_USE:origin = 0x0C1FF0、length = 0x000010 /*根据 errata 公告"存储器:预取超出有效存储器"*、保留代码空间并勿用于此代码

Flash_Characteristic:origin = 0x0C2000、length = 0x001000

#ifdef __TI_Compiler_version__
#if __TI_Compiler_version__>= 20012000
}CRC (_CCS_FLASH_CHECKSUM、ALGORITH=C28_CHECKSUM_16)
#endif
#endif

SHD_DATA:>FLASH_Characteristic、
PAGE = 0、ALIGN (4)

我使用的CCS信息如下:μ A