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 5:34:28

Unity游戏逆向工程终极指南:Il2CppDumper元数据完整修复方案

Unity游戏逆向工程终极指南:Il2CppDumper元数据完整修复方案 【免费下载链接】Il2CppDumper Unity il2cpp reverse engineer 项目地址: https://gitcode.com/gh_mirrors/il/Il2CppDumper 为什么你的Unity游戏分析总是失败? 想象一下这样的场景&a…

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

Python-Wechaty终极指南:从零构建智能微信机器人的完整路径

Python-Wechaty终极指南:从零构建智能微信机器人的完整路径 【免费下载链接】python-wechaty Python Wechaty is a Conversational RPA SDK for Chatbot Makers written in Python 项目地址: https://gitcode.com/gh_mirrors/py/python-wechaty 你是否曾经想…

作者头像 李华
网站建设 2026/6/10 14:10:19

MoveIt2终极指南:快速掌握机器人运动规划核心技术

MoveIt2终极指南:快速掌握机器人运动规划核心技术 【免费下载链接】moveit2 :robot: MoveIt for ROS 2 项目地址: https://gitcode.com/gh_mirrors/mo/moveit2 在当今机器人技术快速发展的时代,MoveIt2机器人运动规划框架作为ROS 2生态中的专业解…

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

STC89C52串口通信实验从零实现全过程

从点亮LED到串口“对话”:手把手实现STC89C52串口通信的底层逻辑与工程实践当你的单片机开始“说话”你还记得第一次用51单片机点亮LED时的兴奋吗?那盏微弱的小灯,仿佛是数字世界向你发出的第一声问候。但很快你会发现,仅靠闪烁的…

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

SimVascular:用开源技术解决心血管疾病诊断的世纪难题

想象一下,医生面对一张复杂的CT血管造影图像,如何能精准预测患者冠状动脉狭窄对血流的影响?传统方法依赖经验和直觉,而SimVascular的出现彻底改变了这一局面。这款完全开源的软件让每个研究者都能从医学影像数据中提取有价值的血流…

作者头像 李华
网站建设 2026/6/10 13:32:08

解放你的鼠标:Mousecape指针定制工具全面评测

解放你的鼠标:Mousecape指针定制工具全面评测 【免费下载链接】Mousecape Cursor Manager for OSX 项目地址: https://gitcode.com/gh_mirrors/mo/Mousecape 痛点直击:为什么你的鼠标需要一场视觉革命? 每天面对同一个白色箭头&#…

作者头像 李华