又是一个不眠之夜。
昨天王哥做的新板子,用我编译的内核无法启动,卡在串口的初始化。但用开发板光盘上自带的内核确可以启动。
对比两个内核的打印信息。
[31m[UART] DMA init CH:0
[0m[31m[UART] DMA init CH:1
[0m
[31m[UART] DMA init CH:1
[0m[31m[UART] DMA init CH:2
[0m[31m m_dwDevIndex == 2
[0mUART3 Rx Tx Configured
[31m[UART] DMA init CH:3
再联想到开发板的调试串口用的uart0,我用的是uart2,因此将我的内核的调试串口也改为uart0,系统可以启动。
应该是开发板的bsp和王哥做的板子有冲突。因为王哥的板子是uart2作为调试串口的。而开发板式uart0作为调试串口。但这样一来
我就看不到串口的打印信息了,明天还要资讯一下周工,看怎么解决冲突问题。
下面说一下怎么修改调试串口。
C:\WINCE600\PLATFORM\SMDKV210下有一个SMDKV210.bat文件,它就是bsp的环境变量。
将set BSP_DEBUGPORT=SERIAL_UART0这句改为我们需要的串口,然后运行这个bat文件,rebuild bsp即可。
内核能启动了,接下来测一下小屏的驱动,王哥的GPIO管脚定义如下:
GPJ0--DB
GPJ11--R/W
GPJ12--RS
GPJ13--E
GPJ14--RST 需要始终置高电平
发现与bsp有冲突。bsp里有一个led灯的gpio驱动占用了GPJ03、GPJ04、GPJ05这3个GPIO管脚,果断将其
屏蔽,正好环境变量里有set BSP_NO_LED=这句,将其置1即可。