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),读隔离.一致性和新近 ...
随机推荐
- man手册使用
1.是普通的命令 2.是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件) 3.是库函数,如printf,fread 4.是特殊文件,也就是/dev ...
- JSP页面用EL表达式 输出date格式
JSP页面用EL表达式 输出date格式 1.头上引入标签 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix ...
- 数据生成器Bogus的使用以及基于声明的扩展
引言 最近在整理代码,发现以前写的一个数据填充器写了一半没实现,而偏偏这段时间就要用到类似的功能,所以正好实现下. 目标 这个工具的目标是能够在项目初期快速搭建一个"数据提供器", ...
- PAT-乙级-1016. 部分A+B (15)
1016. 部分A+B (15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 正整数A的“DA(为1位整数)部 ...
- 如何保护 .NET 应用的安全?
自从 Web 应用能给访问者提供丰富的内容之后,黑客们就把目光转向任何他们能够破坏,损毁,欺骗的漏洞.通过网络浏览器提供的应用越来越多,网络罪犯们可以利用的漏洞数量也呈指数增长起来. 大多数企业都依赖 ...
- android listview判断是否滑动到顶部还是底部
listView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStat ...
- http://jingyan.baidu.com/article/e4511cf33479812b855eaf67.html
http://jingyan.baidu.com/article/e4511cf33479812b855eaf67.html
- struts2总结五: Strut2 访问Servlet API
一.间接访问 public String execute() throws Exception { this.message="hello,this is put into applicat ...
- POJ 2778 DNA sequence
QAQ 做完禁忌 又做过文本生成器 这道题就是个水题啦 首先转移方程还是文本生成器的转移方程 但是注意到L很大,但是节点数很小 转移都是固定的,所以我们可以用AC自动机来构造转移矩阵 之后进行矩阵乘法 ...
- 【转】linux C++ 获取文件信息 stat函数详解
stat函数讲解 表头文件: #include <sys/stat.h> #include <unistd.h>定义函数: int stat ...