|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
29LV160 FLASH MEMORY 快速擦写 |
作者:sdenff 栏目:单片机 |
我用单片机控制29lv160写,一个字节一个字节的写,非常的慢, 哪位大哥知道,怎么才可以快速的写,按块怎么写? 我用的是MX牌子的 |
2楼: | >>参与讨论 |
作者: dong 于 2005/1/8 10:35:00 发布:
只能一个字节一个字节的写。 擦才可以按块。 |
3楼: | >>参与讨论 |
作者: sdenff 于 2005/1/8 11:56:00 发布:
好慢啊 很慢啊 要是整片写大概会用去半个小时 有没有可代替的,能快速写的 |
4楼: | >>参与讨论 |
作者: dong 于 2005/1/8 21:45:00 发布:
我用的是49bv162a,整片也就1分钟不到。 也是逐个字节写的,那些0xff可以跳过不用写。29lv160我也用过,速度也差不多。 |
5楼: | >>参与讨论 |
作者: sdenff 于 2005/1/10 8:11:00 发布:
你怎么写的?! dong: 我写几K字节都要好几分钟,你是怎么写的?可以贴一下吗? |
6楼: | >>参与讨论 |
作者: dong 于 2005/1/10 10:07:00 发布:
我也是抄别人的,改了一点。 for (i=0 ; i<size; i++,srcPtr++,targetPtr++) { if(*srcPtr==0xff)continue; retry=0; RETRY_1: loop_count=0; DV_WriteFlash(COM_ADDR[0],FLASH_UNLOCK1); DV_WriteFlash(COM_ADDR[1],FLASH_UNLOCK2); DV_WriteFlash(COM_ADDR[0],FLASH_PROGRAM); DV_WriteFlash(targetPtr,*srcPtr); do { TEMP= *(volatile CHAR*)targetPtr; TEMP2=*(volatile CHAR*)targetPtr; if ((TEMP==TEMP2) && (TEMP==*srcPtr)) { break; } if (++loop_count>WRITETIMEOUT) { if(++retry <2)goto RETRY_1; write_error = -1; /* 1 second, Timeout */ break; } }while(1); } |
7楼: | >>参与讨论 |
作者: sdenff 于 2005/1/10 10:56:00 发布:
参详参详 谢谢啊 |
8楼: | >>参与讨论 |
作者: sdenff 于 2005/1/10 11:03:00 发布:
贪得无厌点 能否方便把着个涵熟贴一下:DV_WriteFlash() |
9楼: | >>参与讨论 |
作者: dong 于 2005/1/10 11:20:00 发布:
这是个宏 #define DV_WriteFlash(addr, data) (*(volatile unsigned CHAR *)(addr) ) = (data) |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |