【图文解说】基于飞思卡尔MC9S12XS的Flash擦除和写入操作

STM32F429内部FLASH读写擦除操作流程和寄存器配置要点 一、STM32F429 FLASH总体介绍 双bank架构,容量高达2 Mbytes,支持read-while-write边读边写(RWW) 支持128位宽的数据读取 Byte、half-word、word 、 double word 写入 sector, bank, and mass erase (两个bank) Dual bank memory organization 对于2M产品,一个bank(1 MB)分为4个16 KB的扇区,1个64 KB的扇区和7个128 KB的扇区。 2Mbytes是两个 阅读详情

         关于Flash的擦除和写入,真的是让我最费力的一部分,网上的相关资料很少,好不容易找到了一点相关代码,却发现程序不能正常的运行,而且更令人无解的是程序本身怎么检查都检查不出错误。好啦,一点一点的说说我的辛酸史。

         至于擦除和写入的原理是什么,这个不是我们关心的,我也不去赘述,我主要说明一下相关的具体操作。

         我们主要是对飞思卡尔Flash中的PFlash即存放程序段的Flash进行操作。如图:


步骤大概分为:

1、设置Flash分频寄存器:

         Flash的操作对频率有一定的要求,过低擦除不成功,过高会损毁Flash,如图为:


MC9S12XS128的FCLKDIV寄存器,所有位都是可读的但是只有7位可写入。至于应该如何设置分频数,有一张表格可以参考:


如表格说明,分频数是根据外部时钟来定的,MC9S12XS128的外部时钟是16MHz,所以我选择了0x10作为分频数。

给出一一些具体的代码:

/*********************************************************** 
** 名      称:void PFlash_Init(void) 
** 功      能:PFlash初始化  
** 入口参数:无 
** 出口参数:无 
** 使用说明:无 
************************************************************/ 
void PFlash_Init(void)
{
  while(FSTAT_CCIF==0);          //等待正在处理的Flash操作,即CCIF=1时,操作完成
  FCLKDIV=0x10;                //外部晶振为16MHz,Flash时钟设置为1MHz
  FCNFG=0x00;                 //禁止中断
  while(FCLKDIV_FDIVLD==0);     //等待时钟设置成功,即FDIVLD为1时设置成功
}
这里补充一下对 FCLKDIV_FDIVLD
PROGPPCNEXUS读写烧录刷写软件 飞思卡尔MPC55xx 56xx 57xx 58xx 综上所述,PROGPPCNEXUS 软件是一款非常强大的芯片读写烧录软件,具有多种先进的特性和高效的诊断和修复功能,可以为工程师带来极大的便利和效率提升。具有高效的诊断和修复功能:PROGPPCNEXUS 软件提供了丰富的诊断和修复功能,包括故障代码查询、程序代码翻译、故障模式判定、自动修复等多种高效的功能,可以快速定位芯片问题并解决。支持多种接口方式:PROGPPCNEXUS 软件支持多种接口方式,包括 USB、JTAG、CAN、SPI、BDLC 和 SCI 接口,可以满足不同芯片的连接需求。 阅读详情

相关推荐

飞思卡尔MC9S12G系列单片机flash擦写

飞思卡尔MC9S12G系列单片机flash擦写 最近在学习飞思卡尔MC9S12G系列单片机底层驱动,看了很多,目前理解还不深,处于入门菜鸟级别,仅在此记录下学习心得,后续准备在实操中强化底层驱动开发能力,不能老是处于光说不练,搞些假把式, ...

QL198_8的博客 2737

【飞思卡尔 MC9S12】内部Flash读写

上一篇:【飞思卡尔 MC9S12】PRM文件与内存映射(Flash、RAM、EEE) 上一篇讲到PRM文件与内存映射,其中有个重要寄存器叫做GPAGE,可以全局访问所有地址范围,Flash操作也是基于这个地址。 在讲述Flash读写之前,有一个重要概念要普及,就是Flash操作代码不能存储在被操作的Flash物理块中,例如我要擦除一个Flash中某一个扇区内容,这个擦除动作的代码不能存在这个F...

beatfan的博客 6267

【飞思卡尔 MC9S12】PRM文件与内存映射(Flash、RAM、EEE)

本篇介绍飞思卡尔MC9S12系列芯片基本内存映射知识,主要是其特有的分页机制。一般的小型项目可能很多人都不会去专门了解这些内容,但是对于大型项目(代码超过16KB 或 内部变量过多超过4KB),势必要在默认设置下修改能适配项目的配置,以便于能灵活使用。另外BootLoader的编写也是要了解这方面的内容才能进行。 MC9S12(X)有2个大的系列,区别是带不带XGATE(有X后缀的是带有XGAT...

beatfan的博客 7224

关于xs128单片机的一点小小学习心得--code warrior使用

codewarrior5.1使用方法

qq_42200264的博客 1346

NXP-MC9S12XS系列单片机手册

MC9S12XS256,MC9S12XS128,MC9S12XS64

飞思卡尔 S19格式文件详解.docx

文档主要介绍了飞思卡尔编译出来的S19文件的格式以及每段的意义,对于初步接触S19文件的人有入门主导,对于远程烧录S19有很大意义

飞思卡尔MC9S12XS128flash读写

本例程是飞思卡尔MC9S12XS128的flash读写例程,本人亲测可用

oracle 11.2.0.3.0 client下载,oracle64位客户端 Instant Client

oracle64位 客户端安装程序,Instant Client v11.2.0.3.0(64-bit)可以用,bo客户端需要配这个的,所以装了一个,64位操作系统中、不安装Oracle-32bit客户端,方便使用PLSQL Developer(不支持64bit位Oracle客户端)安装教程安装配置instantclient下载后,解压到D:\Oracle\instantclient_11_2(特...

weixin_42573757的博客 4516

CGAL-5.6的安装与编译(Win10+vs2022+CGAL-5.6+Boost1.82.0)

CGAL是Computational Geometry Algorithms Library(计算几何算法库)的缩写,C++的高效算法库。CGAL只是一个头文件库(从5.0版本开始),这意味着CGAL无需编译,只需安装好CGAL的依赖项即可。CGAL5.6。

baidu_34931359的博客 3902

蓝桥杯FPGA赛道积分赛

代码如下: 按键驱动 代码如下 按键驱动 代码如下: 顶层文件 按键驱动 数码管驱动 声明:本代码借鉴网络资料,如有侵权和错误请联系作者删除。我是从寒假开始备赛的,由于我基础不行,备赛过程中也是混混呃呃的,备赛效率不高,总体来说备赛不认真,有点拖拉,但是最后我也坚持备赛到了今天,在备赛过程中,即复习了旧的东西,也学到了新的东西,总结起来还是有点收获的,后天北京、天津、河北地区就要进行省赛了,我会全力以赴,不管结果怎么样,尽力就好,最后祝大家都能

weixin_69804913的博客 1991

通义灵码+高德 MCP:40分钟开发出游攻略网站

本文介绍了通义灵码与高德MCP在40分钟内快速开发出游攻略网站的全流程。主要内容包括:1)LingmaIDE开发环境的使用方法,涵盖界面操作、代码编辑、调试和智能编码功能;2)通义灵码智能体与高德MCP2.0的集成步骤,通过输入旅行需求即可自动生成包含天气卡片、景点路线等元素的HTML页面;3)重点展示了如何将行程规划导入高德地图APP,实现导航、打车等出行功能。整个开发过程充分利用了通义灵码的智能编码能力和高德地图的服务接口,显著提升了旅游类应用的开发效率。

soso1968的博客 986

组态王与DLT645-2007电能表通讯调试总结

组态王与电力协议DLT 645-2007调试总结 DLT 645-2007是多功能电能表通信协议,该标准由中国电力企业联合会2006年提出,该协议为主-从结构的半双工通信方式。手持单元或其它数据终端为主站,多功能电能表为从站。每个多功能电能表均有各自的地址编码。通信链路的建立与解除均由主站发出的信息帧来控制。帧是传送信息的基本单元,每帧由帧起始符、从站地址域、控制码、数据域长度、数据域、帧信息纵向校验码及帧结束符7个域组成,每部分由若干字节组成,帧格式如图1所示。 1.确定设备地址 地址域由 6 个字节构

逍遥子的博客 1万+

MATLAB - 机械臂手眼标定(眼在手内) - 估计安装在机器人上的移动相机的姿态

执行手眼校准有助于操作配备末端执行器(简称 “手”)的机械臂,该末端执行器依赖于摄像头提供的视觉数据。一旦完成了眼在手外的校准,机械臂就能准确地移动到摄像头识别的特定像素位置。这种能力是执行精确拾放任务(如分类、堆垛和分拣)的基础,即使在摄像机的确切位置和方向未知的情况下也是如此。机器人-摄像机系统有两种构型:眼在手内和眼在手外。在眼在手内构型中,摄像头直接安装在机器人手臂的末端执行器上。相反,在眼在手的构型中,摄像头固定在一个静止的物体上,机器人手臂在其视野内。

机器人控制与仿真应用 3352

基于 STM32 的手持式安检金属探测器设计与实现

【代码】基于 STM32 的手持式安检金属探测器设计与实现。

weixin_42300449的博客 900

25、BDS-3卫星信号性能与PPP-B2b增强消息完整性分析

本文对BDS-3卫星信号性能及PPP-B2b增强消息的完整性进行了系统分析。评估了MEO、IGSO和GEO卫星的轨道与时钟精度,得出BDS-3总体SISRE为0.25 m,系统完整性可覆盖99.999%的误差。分析表明SIS中断主要由时钟调整和轨道机动引起,个别卫星存在因境外监测受限导致的非计划中断。通过自研解码软件对PPP-B2b增强消息进行采集与解析,实验结果显示BDS-3和GPS的平均历元完整性率均高于98.55%,其中卫星掩码和时钟校正消息的完整性率超过99.8%。研究还发现IGSO卫星相比MEO卫

quiet的专栏 145

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 用Android中的Chronometer实现HH:MM:SS的显示
下一篇: 如何解决谷歌浏览器不加载Adobe Flash Player的问题
Stack_mz
博客等级 码龄11年 53粉丝 27原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值