2541 掉电保存,使用内部flash读写问题
hi all @Ti的工程师们
各位大侠,目前有一个项目,是把2541当做普通的单片机使用,没有使用协议栈,想利用内部flash实现一个掉电保存的功能,只要存储3个字节就可以
查了一些资料 代码如下
static uint8 buf[4]={1,1,1,1};
static uint8 flbuf[4]={0x00,0x00,0x00,0x00};
HalFlashErase(0x40); //擦除page--第64页
while(FCTL & 0X80); //等待擦除完毕
HalFlashWrite(0x8000,buf,1); //写数据到指定的内存
HalFlashRead(0x40,0x0000,flbuf,4); //读指定内存的内容。
读出来后flbuf的4个数都0xff,断电重启以后也是这个情况,应该是没有写成功吗?
是不是使用 HalFlashWrite前,还需要进行其它什么初始化 还是有其它限制?
我是在自建的工程里面把协议栈 和hal_flash.c 移植过去的
大家帮我看看问题出在哪里?谢谢!
CC254X系列Flash的读写请参考此帖: http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/69222.aspx?pi2132219853=2
首先谢谢你!
我看到连接里有两个写flash
第十二节中是使用外挂的flash
第19节中是介绍了 osal_snv_read和写函数osal_snv_write的使用
这两个都不是我想要的,osal_snv_read 、write 是要在使用协议栈的基础下才可以用的吧?我试着移植这部分代码,里面涉及的好复杂,代码都看的好晕,没有成功
后面查了资料,有人之前使用过 HalFlashWrite 和read 但是我却不成功,不知道问题在哪?
这个是资料链接
http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/17778.aspx
可以考虑用DMA操作模式!
