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修订历史记录

FR5xx 和 FR6xx 系列 MCU MPU 配置

MPU 可配置为保护软件中的三个不同存储器段,每个段可以单独配置为读、写、执行或三者的组合。大多数应用都具有某种形式的应当受到读写保护的变量、只读的常量以及只能读取和执行的程序代码。表 6-2 总结了典型的存储器分段。

表 6-2 MPU 存储器分段
存储器区域 保护类型 MPU 段
变量 读取和写入 段 1
不初始化 读取和写入 段 1
永久性 读取和写入 段 1
常量 只读 段 2
程序代码 读取和执行 段 3

Topic Link Label6.2中生成的映射文件中为应用的读取和写入、只读以及读取和执行段找到起始地址之后,下一步是为 MPU 确定和配置段边界。请记住,最小的 MPU 段大小分配单位为 1KB 或 0x0400。如需更多信息,请参阅特定器件系列用户指南。在该示例中,应用只使用 5 个字节的常量数组,其中 2 个字节用于永久性变量,其余字节用于应用代码。因此,在分配此示例应用时,链接器应当为变量分配 1KB,为常量分配 1KB,如表 6-3 中所示。

表 6-3 MPU 存储器分段示例
存储器区域 保护类型 MPU 段 存储器分区示例
变量 读取和写入 段 1 0x4400 到 0x47FF
常量 只读 段 2 0x4800 到 0x4BFF
程序代码 读取和执行 段 3 0x4C00 到 0xYYYYY

按照表 6-3 中所示为段 1、2 和 3 确定了存储器分段之后,可以使用两个寄存器来定义如何配置段边界:存储器保护单元分段边界 1 (MPUSEGB1) 和存储器保护单元分段边界 2 寄存器 (MPUSEGB2)。在向寄存器写入之前,需要将地址右移 4 位。

图 6-2 所示为有关如何对存储器进行分区和对 MPU 寄存器进行配置的应用示例。

GUID-7671BEEF-2AB2-4AFF-9F7C-604F14B154F8-low.gif图 6-2 要写入到 MPUSEGBx 寄存器中的地址

现在需要将配置实施到代码中。如Topic Link Label6.1中所述,应在器件启动过程中尽早确定 MPU 配置。若要进行此配置,请分别参阅Topic Link Label6.3.1.1Topic Link Label6.3.1.2中概述的 CCS 和 IAR 配置步骤。