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

 

  1.   商标
  2. 1FRAM 和通用存储器
  3. 2可以将其视为 RAM
  4. 3存储器布局分区
    1. 3.1 程序代码和常量数据
    2. 3.2 变量
    3. 3.3 软件栈
    4. 3.4 支持在 MSP430 IDE 中进行存储器分区
      1. 3.4.1 TI Code Composer Studio
        1. 3.4.1.1 修改链接器文件示例 1
        2. 3.4.1.2 修改链接器文件示例 2
        3. 3.4.1.3 修改链接器文件示例 3
      2. 3.4.2 适用于 MSP430 的 IAR Embedded Workbench
        1. 3.4.2.1 修改链接器文件示例 1
        2. 3.4.2.2 修改链接器文件示例 2
        3. 3.4.2.3 修改链接器文件示例 3
  5. 4优化应用能耗和性能
    1. 4.1 缩短从 LPMx.5 唤醒的时间
  6. 5面向 FRAM 且易于使用的编译器扩展
    1. 5.1 TI Code Composer Studio
    2. 5.2 适用于 MSP430 的 IAR Embedded Workbench
  7. 6FRAM 保护和安全性
    1. 6.1 存储器保护
    2. 6.2 检查链接器映射文件
      1. 6.2.1 TI Code Composer Studio
      2. 6.2.2 适用于 MSP430 的 IAR Embedded Workbench
    3. 6.3 存储器保护设置
      1. 6.3.1 FR5xx 和 FR6xx 系列 MCU MPU 配置
        1. 6.3.1.1 CCS MPU 实现方式
          1. 6.3.1.1.1 手动配置 MPU
          2. 6.3.1.1.2 基于 IDE 向导的 MPU 配置
        2. 6.3.1.2 IAR MPU 实现方式
          1. 6.3.1.2.1 手动配置 MPU
          2. 6.3.1.2.2 基于 IDE 向导的 MPU 配置
      2. 6.3.2 FR2xx 和 FR4xx 系列 MCU FRAM 写保护配置
    4. 6.4 IP 封装
  8. 7参考文献
  9. 8修订历史记录

存储器保护

FRAM 易于写入。需要为应用代码、常量和驻留在 FRAM 中的部分变量提供保护,以防止由于无效的指针访问、缓冲器溢出和可能导致应用崩溃的其他异常而造成意外写入。某些 MSP430 FRAM 器件具有一个内置的 MPU,其作用是监视和监督软件中定义的存储器段,以使它们受到读保护、写保护、执行保护或者这几种保护的组合,而其他此类器件具有可控制 FRAM 存储器写保护的寄存器。

注:

非常重要的是,在部署任何软件或发布生产代码之前,必须始终适当配置并启用存储器保护功能,以确保实现极高的应用稳健性和数据完整性。在开始执行 C 启动例程时甚至是进入 main() 例程之前,应在器件开始执行来自通电或复位的代码之后尽早启用存储器保护。

在保护存储器之前,需要对 FRAM 存储器进行分区。为了进行分区,需要了解执行程序链接之后的程序大小和存储器段类型,这样才能决定保护各个存储器段的方法。这些信息通常位于在构建应用时生成的工程映射文件中,并填充到特定 IDE 的输出文件夹中。

对于 FR5xx 和 FR6xx 系列的 MCU,MPU 能够保护变量、常量和程序代码。配置可以由 MPU 自动执行,也可以手动执行以获得极高的灵活性。在继续了解本节的内容之前,建议首先阅读《MSP430FR58xx、MSP430FR59xx 和 MSP430FR6xx 系列用户指南》《MSP430FR57xx 系列用户指南》中的存储器保护单元 一章。

对于 FR2xx 和 FR4xx 系列的 MCU,使用 SYSCFG0 寄存器实现 FRAM 的写保护。在继续了解本节的内容之前,建议首先阅读《MSP430FR4xx 和 MSP430FR2xx 系列用户指南》 中的系统复位、中断和操作模式,系统控制模块 (SYS) 一章。