430flash的操作
大概印象:430的flash好像有点像arm的flash,只不过是arm的flash要比430的大很多,而且430的flash不同于E2PROOM,这一点需要值得注意
MSP430flash的基本特点:
1,拥有内置的编程电压发生器
2:可以进行位,字节,还有字的寻址
3:可以进行段擦除,和整体的擦除
注意:对flash进行操作的时候,flash的操作编程电压必须要大于2.7V,如果小于2.7v的话,将会出现不可预知的错误
还是先来看看430的整体的基本框图:这张框图集合了430flash的所有的操作

标号1,定时器发生器:注意这里的定时器的编程频率必须处于257KHz到476KHz之间,
标号2:编程电压发生器,这里必须产生一个大于2.7v的电压
标号3:三个可以操作的寄存器
标号4:这里就是flash区域,430的flash大小为4KB+256byte
其中4KB是主记忆区,256byte是信息记忆区
这里需要注意的是flash的擦除是以段为最小单位进行擦除,在主存储区4KB中,flash是以512个字节为一段,在信息存储区,256byte是以128个字节为一个段
430flash支持比特,字节还有块数据的写入,同时也支持三种擦除方式:1擦除一个段,2,擦除所有的主存储区,3擦除所有flash区域
擦除
方式1:代码是从flash中取出
注意擦除flash的流程图,这里也是看懂这一个流程图就可以了

标号1:步骤一,要关闭所有的中断和看门狗,MSP430的低功耗模式设计,在擦除的时候,cpu被强制的挂起,这时,外部的所有中断不能响应,看门狗如果没有关闭,在擦除过程中会导致程序复位而产生不可预知的结果
标号2:设置flash的控制位和擦除模式
标号3:伪写入一个数据
标号4:重新唤醒cpu
方式2:代码是从RAM中取出的话,cpu可以让他不休眠,这样可以继续执行下面的代码
这是原先把flash中的程序拷贝到RAM中,之后在将pc程序指针指向RAM中的地址,那样就可以擦除flash了,这里也只是需要看懂擦鞋的流程图就可以了
当代码是从RAM中读出的时候,这是cpu就可以不必被强制挂起,这时候需要注意的是,还是要关闭程序的所有中断,并且要判断BUSY这个标志位,因为BUSY==1,表示flash正在进行读写操作,所以,要等BUSY==0的时候才能进行读写操作

这里看一下流程图就可以知道了
1:关闭所有的中断和看门狗
2:之后判断flash的操作状态,当flash没有进行操作的时候,进行如下的操作
3:设置flash的操作,和擦除的模式
4:伪写入
5:之后判断flash的操作状态,当flash没有进行操作的时候,重新开启中断还有看门狗
之后就是对flash的写操作
写操作可以有两种操作方式:1:字节和比特的写入,2:块写入
写操作与擦除的流程图是相似的,也分为从flash中读出指令,和从RAM中取出指令
这个时候的操作和擦除过程神似
还有就是块写入,就是在进行块写入的时候,写入的时间是不能超过累计编程时间的,累计编程时间是4毫秒,这是因为在对flash进行操作的时候,要对flash加一个比较高的电压,如果持续的时间过长,高电压会对flash有损坏,在进行块写入的时候代码必须是从RAM中取出
这是块写入的操作流程

版权所有,转载请注明链接地址:http://www.cnblogs.com/fengdashen/p/3376290.html
430flash的操作的更多相关文章
- 关于DOM的操作以及性能优化问题-重绘重排
写在前面: 大家都知道DOM的操作很昂贵. 然后贵在什么地方呢? 一.访问DOM元素 二.修改DOM引起的重绘重排 一.访问DOM 像书上的比喻:把DOM和JavaScript(这里指ECMScri ...
- Sql Server系列:分区表操作
1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...
- C# ini文件操作【源码下载】
介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...
- js学习笔记:操作iframe
iframe可以说是比较老得话题了,而且网上也基本上在说少用iframe,其原因大致为:堵塞页面加载.安全问题.兼容性问题.搜索引擎抓取不到等等,不过相对于这些缺点,iframe的优点更牛,跨域请求. ...
- jquery和Js的区别和基础操作
jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...
- ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)
前言: 抓紧勤奋,再接再励,预计共10篇来结束这个系列. 上一篇介绍:ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 本篇介绍主键操作区相关内容. 1:什么时候有默认的 ...
- 如何在高并发环境下设计出无锁的数据库操作(Java版本)
一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...
- 【翻译】MongoDB指南/CRUD操作(四)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...
- 【翻译】MongoDB指南/CRUD操作(三)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...
随机推荐
- 第二好用的时间日期选择插件(jscal)
这个是第二好用的了,支持鼠标滚动选择时间.功能很强大,文档:http://www.dynarch.com/jscal/ 效果图: <!DOCTYPE html PUBLIC ...
- [转载]html5直接在网页上播放视频音频兼容所有浏览器
文章给大家分享一个html5直接在网页上播放视频兼容所有浏览器,有需要的同学可参考. HTML5可以用video标签来播放视频 当前,video 元素支持三种视频格式: 格式 IE Firefox O ...
- [转载]再次谈谈easyui datagrid 的数据加载
这篇文章只谈jQuery easyui datagrid 的数据加载,因为这也是大家谈论最多的内容.其实easyui datagrid加载数据只有两种方式:一种是ajax加载目标url返回的json数 ...
- centos64位安装32位C/c++库
yum install glibc.i686 glibc-devel.i686 yum install libstdc++.i686yum install libstdc++-devel.i686yu ...
- fill 函数
fill函数的作用是:将一个区间的元素都赋予val值.函数参数:fill(first,last,val);//first为容器的首迭代器,last为容器的末迭代器,val为将要替换的值. 例题:给你n ...
- VARCHAR2转换为CLOB碰到ORA-22858错误
近日工作中发现有一张表的字段类型建错了,本应是BLOB类型却被别人建成了VARCHAR2(200),修改时oracle却提示“ORA-22858 invalid alteration of datat ...
- HDU4548+素数
简单题. /* */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include<alg ...
- 64位ubuntu安装WPS
http://jingyan.baidu.com/article/d3b74d64afd96f1f77e609a3.html http://sixipiaoyang.blog.163.com/blog ...
- Django Navi 重用
代码来自这里: base.html <html> <head>...</head> <body> ... {% block nav %} <ul ...
- 安装Hadoop系列 — 安装Hadoop
安装步骤如下: 1)下载hadoop:hadoop-1.0.3 http://archive.apache.org/dist/hadoop/core/hadoop-1.0.3/ 2)解压文 ...