主题中讨论的其他器件: C2000WARE
您好!
我目前正在使用 TMS320F28388D 处理一个项目、但在特定存储器部分中初始化常量数组时遇到问题。 我的目标是将预定义的const
数组加载到中CPU1_TO_CM_MSGRAM1
,该数组位于地址0x39400
。
为了便于参考,我遵循中提供的示例C2000Ware_5_00_00_00\driverlib\f2838x\examples\c28x_cm\flash_kernel
,特别是名为的文件"flash_kernel_c28x_cm_ex1_sci_boot_cpu1.c"
。
在使用 Code Composer Studio (CCS)对此进行调试时、我注意到0x39400
CPU1上的存储器仅包含零(0x0000
)、而不是预期的数组值。
在我的代码的第一段中、我已经将数组声明如下:
const uint16_t CopyDataToCMRAM[138] = {
0xB500, ..., 0x400F
};
在连接器命令文件(.cmd
)中、我已经将CPU1TOCMRAM
分成两个部分:
CPUTOCMRAM_0 : origin = 0x039000, length = 0x000400
CPUTOCMRAM_1 : origin = 0x039400, length = 0x000400
此外、该.cmd
文件还指定:
MSGRAM_CPU_TO_CM > CPUTOCMRAM_0, type=NOINIT
MSGRAM_CPU_TO_CM_COPY_TO_S0_RAM > CPUTOCMRAM_1, type=NOINIT
我注意到,当我注释掉时#pragma DATA_SECTION(CopyDataToCMRAM, "MSGRAM_CPU_TO_CM_COPY_TO_S0_RAM")
,阵列正确位于 LSRAM 中,并按预期初始化。
我的问题是:如何在28388D 上从 CPU1正确地将阵列初始化为从 CM 的 IPC MSGRAM?
提前感谢。
B.D.