news 2026/6/10 15:02:42

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于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位字开始;

·可

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 12:07:37

Screenfull.js 终极指南:10分钟掌握全屏开发技巧

Screenfull.js 是一个强大的JavaScript全屏API封装库,能够让你在10分钟内轻松实现跨浏览器的全屏功能开发。无论你是前端新手还是资深开发者,这个轻量级工具都能为你的项目带来无与伦比的全屏体验。本文将带你深入探索Screenfull.js的核心功能、实战应用…

作者头像 李华
网站建设 2026/6/10 12:06:46

go-zero-looklook热加载深度解析:modd配置实战与性能优化技巧

go-zero-looklook热加载深度解析:modd配置实战与性能优化技巧 【免费下载链接】go-zero-looklook 🔥基于go-zero(go zero) 微服务全技术栈开发最佳实践项目。Develop best practice projects based on the full technology stack of go zero (go zero) m…

作者头像 李华
网站建设 2026/6/10 12:27:17

Proteus下载安装步骤详解:系统学习版

从零开始搭建电子仿真环境:Proteus 安装与实战入门指南 你是否曾在学习单片机时,因为没有开发板而寸步难行? 是否在调试电路时,反复焊接、拆焊,只为排查一个接地错误? 又或者,在做课程设计时…

作者头像 李华
网站建设 2026/6/5 0:52:26

PDF处理终极指南:无需安装的在线工具快速上手

PDF处理终极指南:无需安装的在线工具快速上手 【免费下载链接】PDFPatcher PDF补丁丁——PDF工具箱,可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档,探查文档结构,提取图片、转成图片等等 项目地址: https://gitcode.co…

作者头像 李华
网站建设 2026/6/9 19:37:04

Go微服务开发痛点剖析:go-zero-looklook热重载架构深度解析

Go微服务开发痛点剖析:go-zero-looklook热重载架构深度解析 【免费下载链接】go-zero-looklook 🔥基于go-zero(go zero) 微服务全技术栈开发最佳实践项目。Develop best practice projects based on the full technology stack of go zero (go zero) mic…

作者头像 李华
网站建设 2026/6/10 16:34:03

SimVascular终极指南:从医学影像到血流仿真的完整工作流程

SimVascular终极指南:从医学影像到血流仿真的完整工作流程 【免费下载链接】SimVascular A comprehensive opensource software package providing a complete pipeline from medical image data segmentation to patient specific blood flow simulation and analy…

作者头像 李华