ZHCA930B June 2014 – August 2021 MSP430FR2032 , MSP430FR2033 , MSP430FR2110 , MSP430FR2111 , MSP430FR2311 , MSP430FR2433 , MSP430FR2532 , MSP430FR2533 , MSP430FR2632 , MSP430FR2633 , MSP430FR4131 , MSP430FR4132 , MSP430FR4133 , MSP430FR5720 , MSP430FR5721 , MSP430FR5722 , MSP430FR5723 , MSP430FR5724 , MSP430FR5725 , MSP430FR5726 , MSP430FR5727 , MSP430FR5728 , MSP430FR5729 , MSP430FR5730 , MSP430FR5731 , MSP430FR5732 , MSP430FR5733 , MSP430FR5734 , MSP430FR5735 , MSP430FR5736 , MSP430FR5737 , MSP430FR5738 , MSP430FR5739 , MSP430FR5847 , MSP430FR58471 , MSP430FR5848 , MSP430FR5849 , MSP430FR5857 , MSP430FR5858 , MSP430FR5859 , MSP430FR5867 , MSP430FR58671 , MSP430FR5868 , MSP430FR5869 , MSP430FR5870 , MSP430FR5872 , MSP430FR58721 , MSP430FR5887 , MSP430FR5888 , MSP430FR5889 , MSP430FR58891 , MSP430FR5922 , MSP430FR59221 , MSP430FR5947 , MSP430FR59471 , MSP430FR5948 , MSP430FR5949 , MSP430FR5957 , MSP430FR5958 , MSP430FR5959 , MSP430FR5967 , MSP430FR5968 , MSP430FR5969 , MSP430FR5969-SP , MSP430FR59691 , MSP430FR5970 , MSP430FR5972 , MSP430FR59721 , MSP430FR5986 , MSP430FR5987 , MSP430FR5988 , MSP430FR5989 , MSP430FR5989-EP , MSP430FR59891 , MSP430FR5994 , MSP430FR6820 , MSP430FR6822 , MSP430FR68221 , MSP430FR6870 , MSP430FR6872 , MSP430FR68721 , MSP430FR6877 , MSP430FR6879 , MSP430FR68791 , MSP430FR6887 , MSP430FR6888 , MSP430FR6889 , MSP430FR68891 , MSP430FR6920 , MSP430FR6922 , MSP430FR69221 , MSP430FR6927 , MSP430FR69271 , MSP430FR6928 , MSP430FR6970 , MSP430FR6972 , MSP430FR69721 , MSP430FR6977 , MSP430FR6979 , MSP430FR69791 , MSP430FR6987 , MSP430FR6988 , MSP430FR6989 , MSP430FR69891
可用于 MSP430 的工具链都附带链接器命令文件,这些文件定义了默认的存储器设置和分区,而且通常将程序代码和常量数据分配到 FRAM 中,将变量数据和系统堆栈分配到 SRAM 中。此外,还提供了 C 编译器语言扩展,以使您能够按照Topic Link Label5中的说明将所选的变量和数据结构放到 FRAM 中,并利用 FRAM 的优势实现持续数据存储,而无需再考虑对存储器进行分区或对链接器命令文件进行修改。
FRAM 同样能够存储代码、常量数据和变量数据,因此通常可以让链接器来完成对存储器进行分区这一任务。例如,如果按照Topic Link Label5中的说明利用编译器扩展来将应用数据分配到 FRAM 中,则会自动从可供程序代码使用的空间中适当扣除变量占用的空间,以使链接器能够将其全部输出段放到 FRAM 中的同一个“池”中。
不过,有些应用用例可能需要更高水平的定制。例如,您可能希望将链接器的某些段强制放入存储器的特定固定区域中,以便能够更轻松地手动设置 MPU 模块。而另一个应用用例可能希望将某些变量分配到为了以非易失性方式存储数据而专门保留的存储器区域中,以使这些变量即使在系统内的固件更新之后也可供使用。此外,某个应用所需的数据大小或栈大小可能超过了片上 SRAM 的大小,并希望将链接器的相应段分配到 FRAM 中,以确保有大量的可用存储空间。
要定制存储器分区,通常需要修改特定工程的链接器命令文件,此文件是基于 IDE 附带的默认文件而生成的。虽然有些更改看起来非常简单、直观,但强烈建议查阅链接器文档,以熟练掌握链接器及其命令文件的应用知识。本节将介绍此类定制工作的入门知识。