博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MSP430FLASH小结
阅读量:4450 次
发布时间:2019-06-07

本文共 1410 字,大约阅读时间需要 4 分钟。

 

对FLASH编程必须满足编程最小电压2.2V;

内部FLASH必须在内存定时器设定的工作频率范围内工作,这个频率为257~476KHz。对于FLASH来讲编程和擦除的速度相对较慢。

MSP430内部集成了Flash控制器。主要由三个部分组成,分别为4个配置寄存器,Flash定时器和编程电压发生器。

配置寄存器主要用来配置Flash控制器的工作状态,Flash定时器用来产生编程会哦或者擦出操作的时钟。编程电压发生器用于产生编程火花则擦除操作中所需要的电压。

特别注意的是,从地址空间0xFFFF到0xFFC0是中断向量表的位置,这块区域可以不做中断向量表,也可以作为用户空间使用,但是不建议这样做。如果开启的中断所对应的中段向量表位置被用作用户空间使用,可能会导致中断服务函数发生跳转错误,进而导致代码跑飞。其中,存储在A段的往往存有器件的校准信息,所以对Segment A的操作设立了保护机制。

在Flash的定时器功能框图中,其时钟源可以是任意一个,通过FSSELx位来完成,选中的时钟源可以通过FNx来进行分频操作。

对Flash进行擦除,除了进行擦除模式配置,还需要对Flash进行一次假写入,一个Flash的写操作用来启动定时器和电压发生器,在写入之后便会对Flash进行擦除。

注意:在对Flash进行写操作之前必须进行一次擦除,否则可能会对Flash造成损毁。

基本步骤:1设置时钟源,得到Flash的工作频率。

     2.

#include "msp430x14x.h"typedef unsigned char uchar;typedef unsigned int uint;int main( void ){  // Stop watchdog timer to prevent time out reset  WDTCTL = WDTPW + WDTHOLD;  FCTL2=FWKEY+FSSEL0+FN0;//   时钟源设置,得到Flash的工作频率;    return 0;}void Write_SegA(uchar value){  uchar * flashP;  uchar i;  flashP=(uchar * )0x1080;    FCTL1=FWKEY+ERASE;  FCTL3=FWKEY;  *flashP=0;  //假写入已启动擦除操作;    FCTL1=FWKEY+WRT;  for(i=0;i<128;i++)  {    *flashP++=value;  }  FCTL1=FWKEY;  FCTL3=FWKEY+LOCK;}void Copy(){   uchar  * flashPa,*flashPb,i;   flashPa=(uchar *)0x1080;   flashPb=(uchar *)0x1000;   FCTL1=FWKEY+ERASE;   FCTL3=FWKEY;   *flashPb=0;   FCTL1=FWKEY+WRT;   for(i=0;i<128;i++)   {     *flashPb++=*flashPa;   }   FCTL1=FWKEY;   FCTL3=FWKEY+LOCK;}

 

转载于:https://www.cnblogs.com/droidxin/p/3417173.html

你可能感兴趣的文章
菱形缓冲器电路
查看>>
盲点流水账记录
查看>>
08多态
查看>>
Groovy 程序结构
查看>>
使用 WordPress 的导航菜单
查看>>
input只能输入数字和小数点,并且只能保留小数点后两位 - CSDN博客
查看>>
js 不固定传参
查看>>
远程调试UWP遇到新错误Could not generate the root folder for app package ......
查看>>
Knockout.js 数据验证之插件版和无插件版
查看>>
git--windwos下的安装与使用(一)
查看>>
[倍增][最短路-Floyd][dp]
查看>>
SpringAOP用到了什么代理,以及动态代理与静态代理的区别
查看>>
利用STM32CubeMX来生成USB_HID_Mouse工程【添加ADC】(1)
查看>>
【leetcode】Populating Next Right Pointers in Each Node
查看>>
获取请求参数乱码的问题
查看>>
代码实现:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称...
查看>>
Android客户端测试点
查看>>
Jquery:怎样让子窗体的div显示在父窗体之上
查看>>
01概率
查看>>
.NET LINQ 元素操作
查看>>