您好!
对于一个项目、我们使用 MSP430FR2676微控制器、该微控制器具有64KB FRAM (拆分在 FRAM 和 HIFRAM 中)。 项目本身由最多占用18K 内存的代码组成。 我们现在开始集成 TI CapTIvate 库并开始配置该项目。 "-mlarg"标志是库所必需的、因此启用了该标志、这最终还会占用一些额外的存储器、高达20K。 现在、我们要指出、它不适合存储器、因为预编译的"captate_fr2676_family.lib"已经是14KB。 因此、我们考虑使用 HIFRAM 组来完全使用64KB 的存储器。
我们找到了很多有关 FRAM 存储器配置的设置、尤其是在 www.ti.com/.../slau646f.pdf 第31页上看到了编译器用户手册。
我们尝试的操作如下:
-使用编译器标记 mcode-region=lower mdata-region=none、在编译时、它会给出它将不适合区域'FRAM'、并且'FRAM'溢出 x 量的字节。
-使用编译器标记 mcode-region=none mdata-region=lower、在编译时、它会给出它不会适应区域'FRAM'、并且'FRAM'会溢出 x 量的字节。
-使用编译器标志 mcode-region= mdata-region=或者、在生成时、它会针对不同的 Capt 函数多次发出以下警告:"/opt/GCC-MSP/msp430-gcc-9.3.1.2.1.2/bin/./.lib/gcc/msp430-elf/9.3.1/./././.apertstatus.text:msp430-element_em.et_status.text 段中的"MaxElement_get.et_umentr.et.etstatement./msp430-el./msp430-el.em.em.em.em.et.et.et.emt.emt./msp4t.em.em.et.et.et.text 段中、需要在"MSP430 它还`了以下错误:"`节中引用的"_mspabi_srli"。或者.text:_deps/captatelib-src/scaptated/base/libraries/captate_fr2676_family.lib (CAPT_Touch.o)中的"Capt_updateSensorCount":在丢弃的节` 1.text/captive/mctri_mspi_1.3b./lib/msp430/mctri_lib-range.htm/lib-mctri_mctri_lib_lib_1.2/mctrin.html/tli_tli_lib.htm.htm.html/lib_lib-range.htm.html/lib_lib_lib_lib_lib_lib.html/
我们使用以下版本的编译器和库:
- TI CapTIvate 库1.83.00.05 (2020年5月15日发布)
- TI Driverlib 2.91.13.01
- MSP430-gcc 9.3.1.11编译器(Mitto Systems Limited)
在尝试不同的设置时、提出了一些问题。 请在下面找到它们:
1.这是如何用于更大内存占用量(>32KB)的项目的?
2.是否可以扩展/组合 LD 文件中的 FRAM 部分和 HIFRAM 部分? 例如、之间也有中断向量(请参阅随附的 LD 文件)
3.标志 mcode-region/mdata-region 的值'ise'是如何工作的? 它似乎会在不同区域之间随机播放数据、但随机播放的数据之间的链接是什么。 请参阅附件 memory_layout_oe.txt、它似乎在 FRAM 中放置了一些数据、在 HIFRAM 中放置了一些数据。
4.由于库是使用.lower 前缀进行预编译的、并且应始终放置在较低的 FRAM 中、因此似乎无法将标记 mcode-region/mdata-region 设置为任一个、这是否正确?
5.是否可以只使用 ROM CapTIvate 代码?
6.是否有 ROM 迷住代码的描述?
我希望解释清楚,有人可以回答。 如有问题、请随时与我联系。
此致、
Randy
e2e.ti.com/.../build_5F00_output_5F00_either.txte2e.ti.com/.../memory_5F00_layout_5F00_either.txte2e.ti.com/.../msp430fr2676.ld.txt