dsfdfdd1 介绍
目的:解决数据如何从A搬到B,一般是整体搬移,或者是分块搬移,比如现实中搬运的数据超过limt时,就做一个动作,否则,不做
2 现实应用
1 按照一定的扇区搬运,防止出错,节省内存资源等
2 当数据大于某个limt时,就发送一次握手,防止前面板重启
3 设计思路
len 数据总量
sector_size 块大小
writecount 写大小
1 逐次逼近法
定义limit
每次搬运数据writecount = len > g_sector_size ? g_sector_size:len;
总结:算法效率较高,程序简洁。
2 除法和求余的运用
用"/"来求出总量包含多少块,"%"算出余数
4 实现过程
1 逐次逼近法
while(len > 0)
{
write_size = len > sector_size ? sector_size:len
spi_Flash_write(flash,src_buffer,write_size,des_buffer)
len -=write_size;
des_buffer += write_size;
src_buffer += write_size;
}
2 除法求余结合法
//
int recy = len/sector_size;
if(recy)
{
for(i = 0; i < recy; i++){
spi_flash_write(flash,src_buffer,sector_size,des_buffer);
des_buffer += sector_size;
src_buffer += sector_size;
}????????
}
spi_flash_write(flash,src_buffer,len%sector_size,des_buffer);
src_buffer += len%sector_size;
??
??
??
??
??
??
??
??