Flash memory E2Rom 等常用到的页写算法
来源:互联网 发布:python3网络编程 pdf 编辑:程序博客网 时间:2024/05/18 14:25
long xxxPageWrite(long uAddr, const void *pSrcData, long iLen){ #define PAGE_SIZE 128 //页面大小 #define MAX_ADDRESS 0x10000UL //最大地址 long iDoneBytes=0; //写入的长度 long iOffset, iNewWrLen; unsigned char PageBuff[PAGE_SIZE]; //页面缓冲区 const char *pData = (const char *)pSrcData; //源数据 while(iDoneBytes < iLen) { iOffset = (uAddr % PAGE_SIZE); //页内偏移 uAddr -= iOffset; //地址对齐到页起始 if((uAddr + PAGE_SIZE) > MAX_ADDRESS)//超出最大地址 break; //需要写入的字节数 iNewWrLen = min(PAGE_SIZE, iLen - iDoneBytes) - iOffset; if(iOffset //起始部分没有对齐 || iNewWrLen != PAGE_SIZE //非整页数据 || 0)//需要读出原始数据 { //整页读出 //读出从 uAddr 开始的 PAGE_SIZE 个字节数据到 PageBuff //比如 I2cRead(uAddr, PageBuff, PAGE_SIZE); } //合并新写入数据 memcpy(PageBuff + iOffset, pData, iNewWrLen); //页面写入 { //循环写入PageBuff 的 PAGE_SIZE个字节的数据 到 uAddr //比如 I2cWrite(uAddr, PageBuff, PAGE_SIZE); } //准备下帧 uAddr += PAGE_SIZE; //页写地址 pData += iNewWrLen; //源数据地址 iDoneBytes += iNewWrLen; //写入的长度 } return iDoneBytes;}
1 0
- Flash memory E2Rom 等常用到的页写算法
- 写一个0到9等奖随机的算法
- RAM,ROM和Flash memory等存储器的比较
- IAR 写data到固定的flash
- Flash Memory/SSD的基础知识
- STM32F1在KEIL下的FLASH的烧写算法
- FLASH延长写寿命算法
- 写js常用到的KeyCode
- flash memory
- flash memory
- Flash的烧写
- 一些flash memory/SSD的基础知识
- Linux 烧写文件到Nand Flash
- CC3200 烧写程序到FLASH
- zedboard烧写程序到FLASH,用于QSPI Flash启动
- C#最为常用到的排序算法
- 常用到的基本算法及其实现
- 机器学习常用到的一些算法
- 正则表达式是语法
- getaddrinfo EAI_AGAIN error
- PowerDesigner(六)-物理数据模型(PDM逆向工程)
- maven Nexus入门指南(图文)
- 4.3.3.1 master_status.c:报告子进程状态--master_status_init函数:建立status_fd管道
- Flash memory E2Rom 等常用到的页写算法
- windows10 系统更新失败解决办法
- android 登陆、提交数据或加载数据时提示页面
- Dalvik虚拟机相关的可执行程序
- C++第三次作业
- PowerDesigner(七)-数据库的生成和修改
- Java中int与String互转
- memadmin监控memcached
- c++第三次上级实验