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修订历史记录
手动配置 MPU

若要在 IAR 中执行同样的操作,必须创建一个名为 low_level_init.c 的新 C 文件。需要将此文件包含到您的工程中。IAR 中用于在器件启动之后立即启用应用代码执行过程的等效函数是 int __low_level_init(void)。如下代码片段示例显示了 IAR 的等效 MPU 配置。

#include "msp430.h"

int __low_level_init(void)
{
  /* 在此处插入低级初始化 */
  
  WDTCTL = WDTPW+WDTHOLD;
  
  // 配置 MPU
  MPUCTL0 = MPUPW;                          // 写入 PWD 以访问 MPU 寄存器
  MPUSEGB1 = 0x0480;                        // B1 = 0x4800;B2 = 0x4C00
  MPUSEGB2 = 0x04c0;                        // 边界已分配至段
  // 段 1 – 允许只读和只写
  // 段 2 – 允许只读
  // 段 3 – 允许只读和只执行
  MPUSAM = (MPUSEG1WE | MPUSEG1RE | MPUSEG2RE | MPUSEG3RE | MPUSEG3XE);
  MPUCTL0 = MPUPW | MPUENA | MPUSEGIE;      // 启用 MPU 保护
                                            // 在 BOR 之前锁定 MPU 寄存器
  /*
   * 返回值:
   *
   *  1 - 执行数据段初始化。
   *  0 - 跳过数据段初始化。
   */

  return 1;
}