开发环境:MDK
目 的:实现代码重定位(从nandflash重定位到sdram的0x3000,0000)
思 路:根据s3c2451的特性,上电时执行IROM中的启动代码,将nandflash中的前8k内容拷贝到stepping stone中执行,
如果生成的bin文件小于8k,并不能说明代码从nandflash重定位到内存成功,所以我在工程中加入图片数据,并
让lcd显示,最后生成的bin文件大小为159K
遇到问题:使用minitools将bin文件下载到内存0x3000,0000地址,lcd可以正常初始化并显示图片(成功率100%),但是将bin
下载到nandflash,只有偶尔可以正常初始化,
大部分情况下上电后直接白屏(背光可以正常点亮)问题分析:①可能是代码拷贝不成功
排除方法:下载到nandflash并从nandflash启动,用串口将从0x3000,0000的160k数据全部读出来
下载到sdram运行,用串口将从0x3000,0000的160k数据全部读出来
对比这两个数据,完全一样,说明代码拷贝成功
②可能是superboot做了某些操作,我的代码里面没有做
排除方法:下载到sdram中后屏可以正常显示,说明寄存器配置正确,将所有与lcd相关的寄存器读出来
从nandflash启动,读出所有寄存器,两种情况下,寄存器读出的值相同
代码地址:
http://pan.baidu.com/s/1i5qZWvr[ 此帖被zhangcheng23在2017-08-30 18:07重新编辑 ]