主题中讨论的其他器件:C2000WARE、
您好!
我们正在尝试使闪存 ECC 工作。
在链接器 cmd 文件中、我们
内存
{
begin:origin = 0x080000、length = 0x000008 /*将 ECC 对齐的长度从2增加到8 */
RAMM:origin = 0x0000F5、length = 0x000703
复位:origin = 0x3FFFC0、length = 0x000002
FLASH_BANK0_1:origin = 0x080009、length = 0x01EFB0 /*片上闪存,针对 ECC 对齐到8倍*/
/* FLASH_BANK0_1和 FLASH_BANK0_1_CRC 之间的间隙:7个字节、对齐为 ECC 乘以8 */
FLASH_BANK0_1_CRC:origin = 0x09EFC0、length = 0x40 /*片上闪存:32b 用于 CRC 表*/
FLASH_BANK0_1_ECC : origin = 0x010880001,length = 0x3DF6 ECC={INPUT_RANGE=FLASH_BANK0_1 algorithm=F021}
...
}
我们决定使用链接器支持 ECC、因为可以使用--ecc:data_error 选项执行故障注入测试。
固件是在没有警告的情况下构建的、但我们不知道如何刷写固件、以便在 MCU 中对计算出的 ECC 数据进行编程。
DSLite 工具的输出下面的
DSLite 闪存-c ti_sdk/C2000Ware/device_support/f28004x/common/targetConfigs/TMS320F280049C_LaunchPad.ccxml -l config/make/f28004x.ufsettings -e -f .build-PvApp_BL16512_P00-Debug/exe/pv-pv-pv512_BL160001_BL160 -r. Controller_Pv 512_BL160
DSLite 版本12.2.0.2933
配置调试器(首次启动时可能需要几分钟时间)...
正在初始化寄存器数据库...
初始化:IcePick_C_0
执行启动脚本:IcePick_C_0
初始化:C28xx_CPU1
执行启动脚本:C28xx_CPU1
初始化:CLA1_0
执行启动脚本:CLA1_0
正在连接...
C28xx_CPU1:GEL 输出:
存储器映射初始化完成
C28xx_CPU1:GEL 输出:... DCSM 初始化开始...
C28xx_CPU1:GEL 输出:... DCSM 初始化完成...
C28xx_CPU1:GEL 输出:... DCSM 初始化开始...
C28xx_CPU1:GEL 输出:... DCSM 初始化完成...
正在加载程序:.build-PvApp_BL16512_P00-Debug/exe/PV-PV-PV-BL0001_BL16512_P00 Controller_Pv
正在准备...
.text:0x80000时为0、共4
C28xx_CPU1:GEL 输出:... DCSM 初始化开始...
C28xx_CPU1:GEL 输出:... DCSM 初始化完成...
.text:0x8000c 处的05302
.text:0x80a68上110378中的0:3%
.text:0x80a68上110378中的32752:23%
.text:在0x80a68上为110378的65504:43%
.text:110378中的98256在0x80a68上:62%
.text:0/ 484在0x8e200:70%
.data:0x8e2f4处140中的0:70%
.data:0x8e33c 时为15564中的0:70%
.data:0x901a4时808中的0:80%
.data:84中的0、在0x9efc0处:80%
.data:31724中的0、0x1080001:80%
错误:C28xx_CPU1:文件加载程序:验证失败:尝试在0x80001处写入超出存储器末尾的值@程序
完成:80%
失败:文件:.build-PvApp_BL16512_P00-Debug/exe/PV-BL16512_P00 Controller_Pv:加载失败。
CONFIG/make/rules.mk:目标"闪存"的配方失败
请告知。