我看到了几个示例、似乎我正在做我应该做的事情、但尽管如此、我在 LS 存储器中看到的是零、其中包含由 CPU 写入的数据。 关键代码片段如下所示。 我不怀疑我错过了什么...
从 main.c 中删除
#pragma DATA_SECTION (src、"ClaData");//将 TX 数据映射到存储器
#pragma DATA_SECTION (dst、"ClaData")
#pragma DATA_SECTION (INDEX、"ClaData");
uint16_t 索引=0;
uint16_t src[16];
uint16_t dst[16];
MemCfg_setLSRAMMasterSel (MEMCFG_Sect_LS3、MEMCFG_LSRAMMASTER_CPU_CLA1);
MemCfg_setCLAMemType (MEMCFG_Sect_LS3、MEMCFG_CLA_MEM_DATA);
CLA_mapTaskVector (CLA1_base、CLA_MVECT_2、(uint16_t)(&Cla1Task2));
CLA_enableIACK (CLA1_base);
CLA_enableTasks (CLA1_base、CLA_TASKFLAG_ALL);
CLA_forceTasks (CLA1_base、CLA_TASKFLAG_2);
文件中的内容
extern uint16_t 索引;
extern uint16_t src[16];
extern uint16_t dst[16];
_interrupt void Cla1Task2 (void)
{
GpioDataRegs.GPCTOGGLE.bit.GPIO95=1;
_mdebugstop();
dst[索引]=src[索引];
索引++;
if (index >= 16){
索引= 0;
}
}
链接器文件中的内容
ClaData:> RAMLS3,align (4)
在 CPU 端的内存浏览器中、我可以看到 LS3中的数据是正确的。 当单步执行任务2时、"index"为零、不会更改。 "src"似乎指向正确的地址、但读取的数据为零、应用程序的行为就像读取零一样。

对我可能遗漏的内容有什么建议?