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
IAR 提供了两个分别名为 __persistent
和 __no_init
的 C 语言扩展属性,便于使用 FRAM 来存储数据。若要了解有关这两个属性的更多信息,请参阅 https://www.iar.com/support/user-guides/user-guidesiar-embedded-workbench-for-ti-msp430/ 上的《IAR C/C++ 编译器用户指南》。
对于 IAR 中的永久性存储功能,可以使用 __persistent
属性来声明变量。使用此属性声明的变量将分配到 DATA16_P
和 DATA20_P
链接器存储器段中,默认的 IAR 链接器命令文件 (.xcl) 会自动将这些存储器段放到 FRAM 中。如下示例显示了被声明的变量 x,此变量在 C 启动期间不会初始化,并且会自动分配到 FRAM 存储器中。此外,与 CCS 中的行为类似,此变量只会在下载初始代码时被调试工具链初始化,而不会在应用启动或运行时初始化。
__persistent unsigned int x = 5;
同样,在 IAR 中也可以利用 __no_init
属性来获得不初始化存储功能。使用此属性来声明变量会将它们分配到 DATA16_N
和
DATA20_N
链接器存储器段中。同样也不同于 __persistent
的是,被声明为 __no_init
的变量默认不会分配到 FRAM 中。如果需要使用此类功能, 需要对链接器命令文件进行少量修改。
__no_init unsigned int x;