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

缩短从 LPMx.5 唤醒的时间

MSP430 上可实现超低功耗的模式是 LPM3.5 和 LPM4.5 模式,这是因为器件基本处于断电状态,可供使用的功能非常有限。

低功耗模式 (LPMx) 可用的器件功能 唤醒源
LPM3.5 RTC、32kHz 振荡器 RTC 和 GPIO 中断
LPM4.5 GPIO 中断

不过,从这些模式唤醒类似于脱离复位状态,需要在进入 LPMx.5 之前将应用上下文存储到非易失性存储器中,并在从 LPMx.5 唤醒器件之后将其恢复。其他微控制器具有类似的功能受限的深度睡眠模式,并可能提供一个“备用 RAM”段,此备用 RAM 会在这些模式期间保持通电状态,以帮助存储应用上下文。这些存储器的每个段通常都是非常小的(几十个字节),因此可以存储的上下文非常有限。另一方面,可以选择用闪存来存储更大量的应用上下文的另一个选项;但这样做会对应用的功耗和实时性能产生重大影响,更何况闪存通常还具有其他局限性,例如擦除和写入寿命有限。与 FRAM 相比,能够做到自动在器件的 FRAM 中存储并保留不超过 FRAM 可用大小的整个应用上下文,例如数据缓冲区、状态变量和各种标志,而且根本不需要存储或恢复数据,也不会对应用的功耗或实时行为产生任何影响。

为了在使用 LPMx.5 的应用中充分利用 FRAM,需要特别注意变量的声明和使用方式。具体来说,对于保留应用上下文(状态变量和标志、结果寄存器、应用特定的校准设置和基线值、中间计算或信号处理结果等等)的所有对象,应将变量声明为永久性变量或不初始化变量,以免在通电之后不得不重新计算或重新获得这些上下文。

作为并非 FRAM 特有的通用惯例,为了尽可能缩短从 LPMx.5 深度睡眠模式恢复之后的应用唤醒时间,还应将初始值不重要的所有变量(比如用作缓冲器的大型数组,它们可能不必被初始化为 0)声明为 no-init,这样有助于在应用启动时节省 C 自动初始化启动例程内的处理器周期,并对应用的启动时间和能耗直接产生积极影响。