在應用程式中操作NorFlash

2022-05-02 11:06:08 字數 2483 閱讀 8398

相對於操作nandflash,操作norflash相對簡單,因為基本不需要考慮壞塊,norflash也沒有oob區域,也跟ecc沒有一毛錢關係。它的讀寫擦除相對容易。

int

dealwithnor()

; 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伺服器啟動報錯。...