工具/软件:Code Composer Studio
您好!
我正在尝试实现在 MATLAB 中编写的算法、以便在 MSP430上工作。 我使用 MATLAB Coder 来生成 C 代码。 问题是、这些 MATLAB 函数的变量占用 uC 上的大量空间。 在编码器的设置中、我可以在可变大小数组的静态或动态分配之间进行选择。 因此、存储器的.sysmem 或.bss 部分会变得非常大。 这为 MSP430上的存储器留下了两个选项:
1.将堆(.sysmem)移动到 FRAM2
2.将.bss (可能还有.data)移动到 FRAM2
对于选项1、我尝试对.cmd 文件进行不同的修改、但这些修改不起作用。 我认为我对该文件的理解不是很好,不能以正确的方式修改它。
对于选项2、我只在.cmd 文件中放置 FRAM2而不是 RAM、但会出现错误:
#17003-D 从函数"active_recognition "到符号"active_no_empty"的重定位溢出;18位重定位地址0x25a73太大、无法在16位字段中进行编码(类型='R_MSP430X_ABS16'(15)
.bss :{}> FRAM2 /*全局和静态变量 */
.data :{}>RAM /*全局和静态变量 */
.TI.noinit :{}>RAM /* for #pragma noinit */
.stack :{}> RAM (高) /*软件系统堆栈 */
我 还将数据模型从限制更改为大型、但这不起任何作用。
是否有人可以为其中一个选项或两个选项提供工作代码? 我也不知道其中哪一个更好地实现它。
谢谢、
Andrea


