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),读隔离.一致性和新近 ...
随机推荐
- Xcode8 重新配置 CocoaPods -替换阿里源
一.CocoaPods是什么? CocoaPods是一个负责管理iOS项目中第三方开源库的工具.CocoaPods的项目源码在Github上管理.该项目开始于2011年8月12日,在这两年多的时间里, ...
- iOS9下修改回HTTP模式进行网络请求
升级为iOS9后,默认请求类型为https,如何使用http进行请求会报错 The resource could not be loaded because the App Transport Sec ...
- ubuntu下安装GTK过程
GTK的安装过程比较繁琐,以前也安装过,但没有记录下来,Google一下记录下来备用. 利用此方法成功在ubuntu12.04下安装GTK 2.24.10 1.安装gcc/g++/gdb/make 等 ...
- DIV中TABLE居的2种方式
<html><head><title>测试页面</title></head><body><div width=" ...
- STL,ATL,WTL之间的联系和区别
STL即 Standard Template Library (标准模板库) STL是惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R M ...
- FreeMarker 乱码解决方案 生成静态html文件
读取模板的时候有一个编码: Template template = this.tempConfiguration.getTemplate(templatePath,"UTF-8") ...
- <context:component-scan>配置解析(转)
在xml配置了这个标签后,spring可以自动去扫描base-pack下和其子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注 ...
- HeadFirst设计模式之策略模式
什么是策略模式:它定义了一系列算法,可以根据不同的实现调用不同的算法 大多数的设计模式都是为了解决系统中变化部分的问题 一.OO基础 抽象.封装.多态.继承 二.OO原则 1.封装变化,如把FlyBe ...
- [企业级linux安全管理]- 安全管理基础(1)
1. 操作条件: (1)装有 Cent OS Linux 操作系统的虚拟机一台 2. 背景: 某企业有一台服务器,其信息如下: (1) 该服务器上存在管理员 root,密码为 root,另存有一些 ...
- 启用了不安全的HTTP方法
安全风险: 可能会在Web 服务器上上载.修改或删除Web 页面.脚本和文件. 可能原因: Web 服务器或应用程序服务器是以不安全的方式配置的. 修订建议: 如果 ...