求助OK6410裸机显示,调试正常,但是用sd烧录,会有2个图显示乱
最近本人在OK6410开发板上遇到一个问题,用RVDS2.2调试都ok,但是,用SD写入到falsh后(编译启动为0xc0008000,然后SD卡上有U-boot,zImage),启动后,大致正常,但是有2个菜单显示有乱码,(rvds调试时30多个菜单界面都正常!),后来,通过串口把这2个界面的显示数据传了出来,发现这样一个现象:本来图片界面数据是用数据const unsigned char gImage_set 定义的,然后显示时,从falsh中取出,送到显示缓冲,我发现在这个过程中,串口把falsh中取出的数与gImage_set数据不对,如图片gImage_set是0X86,0X31,而从flash读出,送到串口为0X84,0X33这样 。所以,我一直无法解决,不知道是编译出错,还是从PC机传zImage给SD卡错,还是SD启动后,传给NandFlash错?请大家指点,谢谢!
附上显示的效果,背景原来是 像 计算器一样的输入窗口, 目前只有后来叠加的显示框正确,背景乱码了!
请大家指点! 等大家指教啊 跪求指教!!!!!!!!
试了一个晚上,发现有规律的事,每次烧录好,复位运行,这2幅图也是正常的,但是 ,一旦断电了,就出问题了。且出问题的总是这2个图,比如tu1【261120】、tu2【261120】是有问题的,而tu3【261120】一直没有问题,我就把tu3【261120】的名字改为tu1【261120】,此时显示ok,而把tu2的名字改为tu3,则也显示乱码,按说,这样就只定位在tu1【261120】、tu2【261120】里面的数据有问题,但是,不能解释的是,为何JILNK调试正常,SD烧录后不断电的时候正常?
而且另外发现调用延时函数时,
void msdelay(int time)
{
volatile unsigned int i,j;
for(i = 0; i < 2000; i++)
for(j=0; j<time; j++);
}
SD烧录后msdelay(50); =15ms ;而rvds调试, 才2ms! 但是 用定时器产生的时间却是一致的。 顶啊 .。。。。。。
页:
[1]