1 介紹
目的:解決數據如何從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;
??
??
??
??
??
??
??
??
新聞熱點
疑難解答