当前位置: 首页 > news >正文

基于ARMCortex-M4F内核的MSP432MCU开发实践【3.3】

8.1.3 使用Flash存储器进行的高级操作

在使用软件进行Flash存储器的编程或擦除操作中,需要了解在写/擦除操作时,编程和擦除MSP432单片机Flash存储器还需要进行验证阶段。若不能实现所需的验证阶段,并按照Flash存储器软件流程列出的确切程序执行,可能导致MSP432单片机Flash存储器编程或擦除不正确。

1.Flash存储器的高级读取

MSP432P401r单片机的Flash存储器可以设置不同的读取模式,支持以下读取模式。

1)正常读取:这是最常用的模式。用户必须确保仅在此模式下操作。

2)读取边缘0/1:边缘读取是主要的测试模式,用于检查Flash存储器。该模式在现场设备长时间运行后对于确定编程的边距非常有用。

3)程序验证:该读取模式有助于检查存储器是否有足够的余量编程。用户在程序操作期间看到验证错误后,就可使用此模式。

4)擦除验证:此读取模式有助于检查内存是否有足够的余量擦除。每次擦除操作前都应使用此模式。

可以设置FLCTL_BANKx_RDCTL寄存器中的RD_MODE位来使能所需的读取模式。

Flash存储器支持突发读取和比较功能,可以在Flash存储器的连续部分进行快速读取和比较操作,Flash存储器通过一次比较所有128位来减少操作时间。

突发读取和比较功能对于擦除存储器的验证是有用的,是在擦除验证读取操作模式下完成的。

可用以下MSP432单片机驱动程序库API进行高级读取。

FlashCtl_setReadMode:设置Flash读取操作使用的Flash读取模式。

2.Flash存储器的高级编程

编程MSP432单片机的Flash存储器需要将以下阶段并入用户程序:

·预编程验证

·启动程序

·后期程序验证

MSP432单片机Flash存储器要求应用程序根据所使用的编程模式实现如图8-1所示的精确例程。不遵循软件流程可能导致MSP432单片机的Flash存储器编程不正确。

如果应用程序知道要编程的Flash存储器位置已经处于被擦除状态,则预编程验证阶段可以不需要。但是,在每个程序操作之后都需要后期程序验证。

Flash存储器使用自动验证功能,在硬件中实现预编程验证和后期程序验证。Flash存储器编程阶段可以使用以下列出的任何一种高级程序模式来实现:

·立即写入模式

·全字编程模式

·突发程序模式

(1)自动验证功能

为了防止某一位被意外地过度编程或者检查某一位是否被充分编程,Flash存储器提供控制位,以在每个编程周期之前和之后实现自动程序验证和比较操作。这些分别称为自动预编程验证和后期程序验证。

启动预编程验证后,Flash存储器会以编程验证读取模式启动对要编程的地址的读取。然后,Flash存储器将接收到的数据与要编程的值进行比较。如果要编程的任何位在存储器中为0,则会发生错误。该错误由FLCTL_IFG寄存器中的AVPRE标志位标记。

后期编程验证操作在编程完成后启动对地址的读取。该读取操作也在程序验证读取模式下启动。然后,Flash存储器将接收的数据与要编程的值进行比较,如果编程的任何位在存储器中显示为1,则会发生错误。该错误由FLCTL_IFG寄存器中的AVPST标志位标记。

根据使用的编程模式,可以使用表8-1所示的寄存器来配置自动验证功能。也可以使用以下MSP432驱动程序库API配置此功能。

·FlashCtl_setProgramVerification:设置突发和常规Flash编程指令的预编程验证或后期验证。

·FlashCtl_clearProgramVerification:清除突发和常规Flash编程指令的预编程验证或后期验证。

(2)立即和全字模式的Flash编程

当配置为立即写入模式时,Flash存储器在接收到写命令后立即启动程序操作。

为了优化写入延迟和Flash程序操作期间的功耗,程序可以配置Flash存储器以缓冲来自CPU的多次写入,并且仅在组成完整的128位Flash存储器字之后启动程序操作。在全字编程模式下启用这种编程方式,对于大量字节写入非常有效,并且只有在至

少有16字节的数据准备好之后才启动写入。

以下步骤说明在程序中如何使用全字节编程模式:

1)需要以递增的地址方式写入数据,从128位LSB对齐的方式开始。

·可以写入4×32位,从最低有效32位字开始;

·可以写入8×16位,从最低有效16位字开始;

·可

http://www.cnnetsun.cn/news/396618.html

相关文章:

  • 如何通过Qwen3-VL提升ComfyUI工作流自动化效率
  • Qwen3-VL Thinking版本上线:增强推理能力助力复杂任务决策
  • Moonlight Android 终极指南:免费游戏串流完整教程
  • 终极指南:3分钟解锁联想拯救者BIOS隐藏选项完整教程
  • 微信智能聊天机器人实战指南:三步打造你的24小时贴心助手
  • Moonlight安卓端终极方案:免费实现移动PC游戏串流的完整指南
  • Moonlight安卓串流终极指南:随时随地畅玩PC游戏
  • BiliTools跨平台B站工具箱:一站式下载解决方案完全指南
  • 苹方字体跨平台解决方案:告别设备差异,实现完美视觉统一
  • AI图像生成技术完全指南:从零基础到实战应用的智能创作系统
  • MoveIt2 机器人运动规划终极指南:从基础概念到高级实战
  • Moonlight Android 游戏串流安装配置指南
  • UE Save-RS:终极Unreal Engine存档编辑解决方案
  • 如何在Android 10以下系统实现完美兼容:终极解决方案指南
  • mPDF实战指南:用PHP轻松实现HTML到PDF的专业转换
  • FinBERT终极使用指南:金融情感分析的完整教程
  • I2C读写EEPROM代码中时序控制的驱动级实现方案
  • LDDC歌词工具:让每首音乐都有完美歌词陪伴的终极方案
  • Steam Deck Tools:解锁Windows掌机游戏新境界的终极利器
  • go-zero-looklook热加载配置完整指南:modd实战与性能优化
  • STM32低功耗模式下RS232通信的实现策略
  • Moonlight安卓游戏串流:打造移动游戏终极体验的完整指南
  • Steam Deck Windows优化指南:7大实用技巧全面掌控游戏性能
  • Realtek RTL88x2BU Linux驱动终极解决方案:从问题到完美运行的完整指南
  • 5步玩转PC游戏串流:Moonlight安卓版完整使用手册
  • 如何快速定制Mac光标:Mousecape的完整使用指南
  • 建筑蓝图解析:Qwen3-VL提取尺寸、材料与施工要点
  • 考古现场辅助记录:Qwen3-VL自动标注文物照片元数据
  • 终极游戏存档编辑指南:用Rust工具轻松掌控Unreal Engine游戏进度
  • Nucleus Co-op:单机游戏本地多人化革命性解决方案