你好
我能够使用 CCS 在我的器件上刷写启用 CLA 的代码。 但是、当我尝试使用 C2Prog 进行闪存时、我会得到此错误:

阅读 SPRS698I 文档、我知道 CLA 程序需要驻留在0x9000 (区域 L3)中。 我还支持将代码保存到闪存中、因此我使链接器文件将 CLA 代码保存到闪存中、然后在启动时加载到 RAM 中。
存储器
{
第0页:
BEGINRAM: origin=0x0、length=0x2
PRAM: origin=0xC000、length=0x2000 //L5
CLA_PROG_RAM:origin = 0x9000、length = 0x1000 // L3
OTP: origin=0x3d7800、length=0x3fa
BEGINFLASH: origin=0x3D8000、length=0x2
APPHDR: origin=0x3D8002、length=0xC
闪存: origin=0x3d800e、length=0x1Bff2
…μ A
第1页:
RAMM0M1: origin=0x2、length=0x7fe
CLA1_MSGRAMLOW: origin = 0x1480、length = 0x000080
CLA1_MSGRAMHIGH:origin = 0x1500、length = 0x000080
CLA_DATA_RAM: origin = 0x8000、length = 0x001000 //L0、L1、L2
DRAM: origin=0xe000、length=0x6000
}
部分
{
…
Cla1Prog :load = flash,
运行= CLA_PROG_RAM、
load_start (_Cla1funcsLoadStart)、
load_end (_Cla1funcsLoadEnd)、
load_size (_Cla1funcsLoadSize)、
run_start (_Cla1funcsRunStart)、
PAGE = 0
CLAscratch :
{*。obj (CLAscratch)
。 += CLA_ScratchPad_size;
*。obj (CLAscratch_end)}> CLA_DATA_RAM、
PAGE = 1.
CLA1mathTables: load = flash,
运行= CLA_DATA_RAM、
Load_start (_Cla1mathTablesLoadStart)、
Load_End (_Cla1mathTablesLoadEnd)、
load_size (_Cla1mathTablesLoadSize)、
run_start (_Cla1mathTablesRunStart)、
PAGE = 1.
}
然后在启动时 、我将 Cla1Prog 和 CLA1mathTables 分别复制到程序 RAM 和数据 RAM 中。
void c2000_flash_init (void)
{
#if MW_RUNTIME_FLAHLOAD
//将 InitFlash 函数代码和闪存设置代码复制到 RAM
memcpy (& RamfuncsRunStart、&RamfuncsLoadStart、(uint32)(&RamfuncsLoadEnd-&RamfuncsLoadStart));
包含#ifdef CLA_block_included
memcpy (&Cla1funcsRunStart、&Cla1funcsLoadStart、(uint32)&Cla1funcsLoadSize);
memcpy (&Cla1mathTablesRunStart、&Cla1mathTablesLoadStart、(UINT32)&Cla1mathTablesLoadSize);
#endif
//调用闪存初始化以设置闪存等待状态
//此函数必须驻留在 RAM 中
InitFlash();
#endif
}
什么可能导致 C2Prog 错误?