我们的产品使用 TMS320F28375D DSP。
在本产品的固件中、我们将 CLA 用于控制环路。
为此、我们使用了三个本地存储器、分别是用于 CLA 程序的 RAMLS2、RAMLS3和 RAMLS4
以及用于 CLA RAM 存储器的 RAMLS0和 RAMLS1。
在我们的程序中、我们已将这3个本地 RAM 合并到"2837x_flash_lnk_cpu1.cmd"文件中的 RAMLS2中、如下所示。
RAMLS0:origin = 0x008000、length = 0x001000
//RAMLS1:origin = 0x008800,length = 0x000800
RAMLS2:origin = 0x009000,length = 0x001800
//RAMLS3:origin = 0x009800,length = 0x001000
//RAMLS4:origin = 0x00A000,length = 0x000800
现在、我们已将 CLA 的2个函数分配给 RAM、如下所示。
#pragma CODE_SECTION (Cla1Task2、"Cla1Prog");//用于此函数的内存为2480字节
#pragma CODE_SECTION (calc_PR_CLA、"Cla1Prog");//用于此函数的存储器为2430字节
现在、我们在一个特定代码行中开发了"calc_PR_cla"故障的函数。如果我们删除该行并将其放置在同一函数的单独位置、它就可以正常工作。
这可能是由于与存储器相关的问题、因为函数的存储器大于任何单个本地存储器(例如 RAMLS2 = 2048字节)
是否可以在固件中组合本地存储器?