这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [求助]Nand Flash read 疑問

共3条 1/1 1 跳转至

[求助]Nand Flash read 疑問

菜鸟
2007-02-03 06:46:05     打赏

請教

讀取nandflash裡面的data需要特別注意什麼嗎?
目前我使用s3c2410.從vivi boot後跳到main(),我把圖片資料也一併複製到sdram上.
然後寫到framebuffer .LCD PANEL上顯示正常.但是考慮若是30幾張圖片一次複製到SDRAM.會耗時
蠻長的.我想省略複製到SDRAM的動作,需要秀圖時再直接從NAND FLASH讀取圖片資料.
試了多次,顯示出來的畫面是看的出人物風景,但是夾雜有規律性的水平白色線段.或規律的色點段.
我懷疑資料讀取錯誤或是有缺漏,或是MAKE完燒到NANDFLASH上的資料不是連續性存放...
請前輩們指導.是哪裡我疏忽了.

燒寫一張65536色圖片資料,size=320x240.data length=320x240x2bytes=153600 Bytes
我是用arm-elf-objdump -t 指令去抓圖片起始位址


程式是修改vivi Nand_read.c
/**********************************************
* Display NandFlash Image
***********************************************/
int Display_NandFlash_Image(unsigned long start_addr, unsigned int size)
{

unsigned int i=0,j=0,k=0,index=0;
unsigned int data=0;
unsigned char buf[153600];

/*
if ((start_addr & NAND_BLOCK_MASK) || (size & NAND_BLOCK_MASK)) {
return -1; // invalid alignment
}*/

/* chip Enable */
NFCONF &= ~0x800;
for(i=0; i<10; i++);

for(i=start_addr; i < (start_addr + size);) {

NFCMD = 0; /* READ0 */

/* Write Address */
NFADDR = i & 0xff;
NFADDR = (i >> 9) & 0xff;
NFADDR = (i >> 17) & 0xff;
NFADDR = (i >> 25) & 0xff;

wait_idle();

for(j=0; j < NAND_SECTOR_SIZE; j++, i++)
{
buf[index]= (NFDATA& 0xff);
index++;
}

}

/* chip Disable */
NFCONF |= 0x800; /* chip disable */

for(k=0;k<153600;k+=4)
{
data=(buf[k]<<24)|(buf[k+1]<<16)|(buf[k+2]<<8)|(buf[k+3]);
*(volatile unsigned int *)(0x31400000+k)=data;//frame buffer

}

}




关键词: 求助     Flash     疑問    

菜鸟
2007-02-03 08:53:00     打赏
2楼
剛剛試了一下
燒到nand的資料pic.bin用燒寫軟體讀出來後比對是正確的
目前畫面沒有雜線段.但是有偏移情況.圖片整塊向左移了約60pixels.
528*32=16896 16896*20=0x52800 燒錄pic.bin起始點

菜鸟
2007-02-05 08:06:00     打赏
3楼

从CPU的角度来看,NAND FLASH的读操作是透明的。你对比测试也说明了这个问题。

显示的问题会不会是读操作的速度差异造成的。


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]