工具与软件:
我在调整项目的时候需要做和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