上次的简易bootloader虽然下载验证成功,可以成功引导内核启动linux,但是LCD一直处于白屏状态,没有显示。而mini2440的vivi就没有这情况,所以问题可能出在一些与LCD有关的初始化上。经过查看原理图和对照源代码,做了一些修改,最后LCD可以正常工作。
修改工作主要就是将对应LCD控制线和数据线的GPIO口进行初始化:
主要代码如下:
- void port_init(void)
- {
- GPACON = 0x7fffff;
- GPBCON = 0x044555;
- GPBUP = 0x7ff;
- GPCCON = 0xaaaaaaaa;
- GPCUP = 0xffff;
- GPDCON = 0x00151544;
- GPDDAT = 0x0430;
- GPDUP = 0x877A;
- GPECON = 0xaa2aaaaa;
- GPEUP = 0xf7ff;
- GPFCON = 0x55aa;
- GPFUP = 0xff;
- GPGCON = 1<<8;
- GPGDAT = 0;
- GPHCON = 0x16faaa;
- GPHUP = 0x7ff;
- EXTINT0 = 0x22222222;
- EXTINT1 = 0x22222222;
- EXTINT2 = 0x22222222;
- }
将 port_init 函数加到boot.c中的主函数里即可。