24BPP bootloader读取NAND中LOGO,图像杂乱
BOOTLOADER 中 从 NANDFLASH 读取LOGO RGB888的纯数据,显示,下面代码可有问题?我死活看不出问题了,但是图像显示完全是乱的。
LOGO存放在第10个BLOCK,每个BLOCK 32个page
图片大小 320*240*3
(LCD中显示RGB三条RGB色块无问题)后
LcdAddrPointer=(U32*)IMAGE_FRAMEBUFFER_DMA_BASE;
//logoBuffer = IMAGE_FRAMEBUFFER_DMA_BASE;
dwSector =10<<5;
dwLength = 450;
while (dwLength)
{
if(!NF_ReadSector(dwSector, (unsigned char*)Buf512))
{
//Uart_SendString("\nBAD! : ");
//Uart_SendDWORD((DWORD)dwSector);
}
for(i=0;i<512;i=i+3)
{
*LcdAddrPointer++=(t32_0=Buf512[i])|((t32_1=Buf512[i+1])<<8)|((t32_2=Buf512[i+2])<<16);
}
temp1=Buf512[510];
temp2=Buf512[511];
if(!NF_ReadSector(dwSector, (unsigned char*)Buf512))
{
//Uart_SendString("\nBAD! : ");
//Uart_SendDWORD((DWORD)dwSector);
}
temp0=Buf512[0];
*LcdAddrPointer++=temp1|(temp2<<8)|(temp0<<16);
for(i=0;i<512;i=i+3)
{
*LcdAddrPointer++=(t32_0=Buf512[i])|((t32_1=Buf512[i+1])<<8)|((t32_2=Buf512[i+2])<<16);
}
temp2=Buf512[511];
if(!NF_ReadSector(dwSector, (unsigned char*)Buf512))
{
//Uart_SendString("\nBAD! : ");
//Uart_SendDWORD((DWORD)dwSector);
}
*LcdAddrPointer++=temp2|((t32_0=Buf512[0])<<8)|((t32_1=Buf512[1])<<16);
for(i=0;i<512;i=i+3)
{
*LcdAddrPointer++=(t32_0=Buf512[i+2])|((t32_1=Buf512[i+3])<<8)|((t32_1=Buf512[i+4])<<16);
}
dwSector=dwSector+3;
dwLength=dwLength-3;
}