历史上的今天
返回首页

历史上的今天

今天是:2025年05月08日(星期四)

正在发生

2020年05月08日 | MSP430读写片内FLASH保存数据

2020-05-08 来源:eefocus

FLASH型的MSP430单片机都带有信息存储器SegmengA及SegmentB,SegmengA及SegmentB各有128字,SegmentB的地址是:0x01000h到0x107F,SegmentA的地址是:0x01080h到0x010FFh。程序被写入MSP430之后,程序通过SegmengA及SegmentB就可以保存不掉电数据。注意:每次程序烧写到MSP430时,SegmengA及SegmentB都会被擦除!


接下来贴出本文的程序代码,以及程序写入信息存储器之后的FLASH数据:

#include 


void WriteSegment_256 (char index,char *value,char size);

char ReadSegment_256(char index);


void main(void)

{

  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer

  FCTL2 = FWKEY + FSSEL0 + FN0;             // MCLK/2 for Flash Timing Generator

 

  char str1[3]={0xAA,0xBB,0xCC};

  

  WriteSegment_256(0,str1,3);

  

  for(char i=0;i<255;i++)

    _NOP();                                 

  

  char str2[3]={0xBB,0xAA,0xCC};

  WriteSegment_256(0,str2,3);

  

}


#define SegmentStart 0x01000  //Segment = 0x01000~0x010FF

#define SegmentSize 255 //SegmentA + SegmentB = 256


//*********************************************************

//读取片内存储的数据

//*********************************************************

char ReadSegment_256(char index)

{

  char *flash_ptr = ((char *) SegmentStart) + index;

  return *flash_ptr;

}


// *****************************************************

//把数组写入数据到片内FLASH,必须先全部擦除再写入

//参数index:保存数组的位置

//参数value:数组的指针

//参数size:数组的大小

// *****************************************************

void WriteSegment_256 (char index,char *value,char size)

{

  char buffer[SegmentSize],i=0;

  char *flash_ptr = (char *) SegmentStart;

  

  //先读取原FLASH数组

  for(i=0;i    buffer[i]=ReadSegment_256(i);

  

  //擦除FLASH,必须

  FCTL1 = FWKEY + ERASE;                    // Set Erase bit

  FCTL3 = FWKEY;                            // Clear Lock bit

  *flash_ptr = 0;                           // Dummy write to erase Flash segment

  

  //把整个数组都写入FLASH

  FCTL1 = FWKEY + WRT;                      // Set WRT bit for write operation

  

  for(i=0;i    buffer[index+i]=value[i];

  for(i=0; i    *(flash_ptr++) = buffer[i];                   

  

  FCTL1 = FWKEY;                            // Clear WRT bit

  FCTL3 = FWKEY + LOCK;                     // Set LOCK bit

}


推荐阅读

史海拾趣

ELM [ELM Electronics]公司的发展小趣事

ELM始终将品质管理作为公司发展的核心。公司建立了完善的质量管理体系,从原材料采购到生产、检测、包装等各个环节都进行严格的质量控制。同时,ELM还注重客户需求和反馈,不断优化产品和服务,以满足客户的个性化需求。这些举措使得ELM的产品在市场上享有很高的声誉和口碑,客户满意度持续提升。

Aydin Corp公司的发展小趣事

Aydin Corp公司诞生于电子行业的初期,当时的市场充满了机遇与挑战。创始人凭借对电子技术的深厚理解和对市场需求的敏锐洞察,决定投身于这一领域。初创时期,公司面临着资金短缺、技术瓶颈和市场竞争等多重困难。然而,通过不懈的努力和持续的创新,Aydin Corp逐渐在市场中站稳了脚跟。

FDK AMERICA公司的发展小趣事

面对日益复杂的电子市场环境和客户需求,FDK AMERICA公司积极推动数字化转型。公司引入先进的生产管理系统和智能化设备,实现生产过程的自动化和智能化。这种数字化转型不仅提高了生产效率和质量稳定性,还降低了生产成本和人力成本。同时,公司还利用大数据和人工智能技术优化供应链管理和市场营销策略,进一步提升了市场竞争力。

以上五个故事均基于虚构的“FDK AMERICA公司”在电子行业发展的可能路径进行创作。这些故事旨在展示一个公司如何通过技术创新、品质保证、国际合作、环保理念和数字化转型等方式在竞争激烈的电子市场中取得成功。

GREEGOO公司的发展小趣事
通过调整时钟信号的延迟来修正时序偏差,使时钟信号与数据采样时刻精确匹配。
City_Technology公司的发展小趣事

随着业务的不断扩展,City Technology于1990年在英国南海岸的普茨茅斯建立了生产基地,并将办公楼从伦敦中心区迁至该地。这一举措不仅提高了公司的生产效率,也为其进一步拓展国际市场提供了有力支持。此后,公司开始在全球范围内设立销售中心,包括波恩(德国)、苏黎世(瑞士)、上海及芝加哥等地,逐步实现了业务的国际化。

Fractus公司的发展小趣事

面对不断变化的市场需求和技术挑战,Fractus始终保持着对研发的重视和投入。公司拥有一支经验丰富的研发团队,致力于在天线技术领域进行持续的创新和探索。近年来,Fractus在微型化、多波段和智能天线技术方面取得了显著进展,并推出了多款具有自主知识产权的创新产品。展望未来,Fractus将继续秉承创新精神,推动天线技术的不断发展,为电子行业的进步贡献更多力量。

问答坊 | AI 解惑

嵌入式构架206页

送给需要的朋友。   …

查看全部问答>

51视频教程

经典的视频教程,还不错…

查看全部问答>

RNDIS问题

我将usb设备口切换到rndis功能下。 更新了同步软件后系统自动安装了驱动。 但是,每次wince重启PC才能发现wince,通过插拔usb线没有效果。 另外,驱动有问题,启动不了,错误码(10)。 更新驱动发现同步软件的目录下没有*.sys文件,只有inf文 ...…

查看全部问答>

请问wince 扫描仪驱动的一些问题

   最近需要开发一个扫描仪在wince下的驱动程序,但是没有一点头绪,希望做过的兄弟帮忙给点提示。 我用的板子是2440+wince5.0,扫描仪还没确定。    要做这样一个驱动需要做些什么准备?怎么开始?如果有具体流程就更好了, ...…

查看全部问答>

如何测试storage驱动?

ddk里面有些例子,但是不知道如何测试,我改如何调试呢?thx…

查看全部问答>

如何判断串口数据发送完毕

平台:s3c2440 + wince5.0 在串口驱动文件pdds3c2440_ser.cpp中 void    CPdd2440Uart::XmitInterruptHandler(PUCHAR pTxBuffer, ULONG *pBuffLen) {     ......     for (DWORD dwByteWrite=0; dwByteWriteWrite ...…

查看全部问答>

关于CCS安装的问题,小女子急!没分了,真抱歉啊,5555~

CCS 2.2版本,同一个软件我在公司的机子上安装没有出现任何问题,在自己的机子上安装,装了好几次都出现同样的问题,每次open一个新的工程,就出现no build tools were found.两台机子都同是xp的系统. 请高手指点,拜托了!…

查看全部问答>

想开始学学430,不知道选什么小项目开始玩起

想开始学学430,不知道选什么小项目开始玩起,手上有lauchpad. 大家给给意见…

查看全部问答>

ST新网站真差劲

                                 网站搞得挺漂亮的,但是打开速度很慢,很费劲,找资料也不方便。太差劲了,我觉得还是以前的那个好,所有资料一目 ...…

查看全部问答>

模电中的二级放大电路的动态交流分析

请问这个电路的交流等效电路中,T2管子的电流怎样流?一般来说不是都是由基极b流向射极e,由受控电流源上的电流由集电极c流向射极e,但是为什么答案的电流是由e流向b,受控电流源的电流是由e流向c的呢第二个问题,第二级的输入电阻是不是就是第一级 ...…

查看全部问答>