这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » FLASH 请教斑竹一个关于读写FLASH的问题

共2条 1/1 1 跳转至

FLASH 请教斑竹一个关于读写FLASH的问题

院士
2006-09-17 18:14:16     打赏
FLASH 请教斑竹一个关于读写FLASH的问题



关键词: FLASH     请教     斑竹     一个     关于     读写     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 由于需要保存大量的数据,我在FLASH里面定义了一块区域:
以下为写入*xcl的代码:
-Z(CODE)SP_DATA=EE00-FDFF
-Z(CODE)DP_DATA=DE00-EDFF
-Z(CODE)SIZE_DATA=D600-DDFF

以下为程序开头定义的代码:
#pragma memory = constseg(SP_DATA)
unsigned int savesp[ 2048 ];
#pragma memory = default
#pragma memory = constseg(DP_DATA)
unsigned int savedp[ 2048 ];
#pragma memory = default
#pragma memory = constseg(SIZE_DATA)
unsigned int max[128],pressure[128],number[128],re1[128],re2[128],im1[128],im2[128],mo[128];
#pragma memory = default

我选择的是字写入方式,写入子程序如下:
void flash_ww(unsigned int *Data_ptr, unsigned int word)
{
_DINT();
FCTL3 = 0x0A500; /* Lock = 0 */
FCTL1 = 0x0A540; /* WRT = 1 */
*Data_ptr=word; /* program Flash word */
_EINT();
}
当我写到三百个字左右程序都能正常运行,并且需要写的内容也确实写进了FLASH中的特定位置,但当写到接近四百个字后,程序就跑飞了(每次写入的字数好象都不一样),请斑竹以及各位高手帮我找一下问题出在哪里?万分感激!!!!! 1: :) 说说我想到的几点吧!1看门购关了么?2你的FCTL2的设置是否在频率范围内?3写完字后最好把FCTL1和FCTL3恢复。 2: 谢谢xiaoliang老师,我先按照你的建议试一试,如果不行再请教你。顺便再问一下:430的FLASH的写入是否有次数的限制?当写入的数据跨越不同段的时候,段与段的交界的地方十分需要特殊的代码来支持?

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]