相對於操作nandflash,操作norflash相對簡單,因為基本不需要考慮壞塊,norflash也沒有oob區域,也跟ecc沒有一毛錢關係。它的讀寫擦除相對容易。
intdealwithnor()
; unsigned
int allsize = 0
;
#define maxpartitions 40
struct
deviceinfo
devinfo[maxpartitions];
//用來儲存裝置資訊
bzero(devinfo,
sizeof(struct
deviceinfo));
/*這是一種方法,但是有乙個缺點,當mtd裝置大於10個是,通過glob搜尋出來的結果
會出問題,下面採用會採用第二種方法
*///
if(searchmtd(&mtdbuf) != 0)
//else
////
bzero(&mtd, sizeof(struct mtd_info_user));
//if (ioctl(fd, memgetinfo,&mtd) < 0)
////
//strcpy(devinfo[i].dir, mtdbuf.gl_pathv[i]);
//devinfo[i].fd = fd;
//devinfo[i].size = mtd.size;
//devinfo[i].erasesize = mtd.erasesize;//}
//globfree(&mtdbuf);
//for(i=0; i////}
/*下面是第二種方法,這種方法克服了第一種方法的缺陷,不受mtd裝置數量的限制
*/for(i=0; i)
strcpy(devinfo[i].dir, devname);
devinfo[i].fd =fd;
devinfo[i].size =mtd.size;
devinfo[i].erasesize =mtd.erasesize;
}else
}for(i=0; i)
if(allsize for(i=startdev; i)
g_allimgwrite +=erase.length;
erase.start +=mtd.erasesize;
}printf(
"\n\rerased blocks: %d/%d (100%%)\n
", blocks, blocks);
/*** 再進行寫操作
*/printf (
"\nbegin to write block %s\n\n
", devinfo[i].dir);
g_allimgwrite = 0
; k =bufsize;
while
(size)
printf(
"\033[1a");
printf(
"\r%s usage: %dk/%dk (%d%%)\n",\
devinfo[i].dir, kb (g_allimgwrite + k), kb (devinfo[i].size), (int)percentage (g_allimgwrite +k, devinfo[i].size));
fprintf(stderr,
"writing data: %dk/%ldk (%d%%)
", kb (written + k), kb (stateofimage.st_size), (int)percentage (written +k, stateofimage.st_size));
result = write(devinfo[i].fd, &uppack[written], k);
if (k !=result)
debug(
"short write count returned while writing to x%.8x-0x%.8x on %s: %d/%d bytes written to flash\n
", \
written,written + k, devinfo[i].dir, written +result, devinfo[i].size);
return1;
}written +=k;
size -=k;
g_allimgwrite +=k;
if(g_allimgwrite >=devinfo[i].size)
} printf(
"wrote %d / %ldk bytes\n
", written, (unsigned long
int)(stateofimage.st_size));
}munmap(uppack, upgrade_shm_size);
for(i=0; i)
return0;
}
在Silverlight應用程式中操作Cookie
很多朋友來信問如何在silverlight 2中操作cookie,這裡專門寫篇文章介紹一下。為了實現在silverlight應用程式中對於cookie的操作,我們需要借助於htmlpage.document物件。在使用htmlpage.document之前,請先新增system.windows.br...
在應用程式中宿主MEF
在應用程式中宿主mef其實非常簡單,只需要建立乙個組合容器物件 compositioncontainer 的例項,然後將需要組合的部件 parts 和當前宿主程式新增到容器中即可。首先需要新增mef框架的引用,既system.componentmodel.composition.dll,詳細如下 塊...
在tomcat web應用程式
在tomcat web應用程式 某人曰 在沒其他工具的情況下不會手動新增web應用的程式設計師是乙個菜鳥 軍哥曰 乙個不會使用好的ide開發工具的程式設計師絕對不是乙個好的程式設計師 開發web應用時,不同型別的檔案有嚴格的存放規則,否則不僅可能會使web應用無法訪問,還會導致web伺服器啟動報錯。...