环境:
ubuntu 20.04
arm-linux-gnueabihf-gcc 的版本是6.3.1 可使用arm-linux-gnueabihf-gcc -V 查看
gcc 版本9.4.0 使用命令gcc -v 查看
正点原子7寸显示屏
参考文章:
资料下载地址:
因为NXP官方测试使用的是480x272的显示屏,预要实现在正点原子7寸显示屏上显示uboot启动logo,需要对uboot的LCD驱动进行修改。
1、电路原理图对比
首先截下正点原子的LCD电路图,和NXP官方EVK开发板的LCD电路图。
对其引脚进行比对
LCD显示屏接口 | I、MX6ULL_EVK 开发板 | ALIENTEK-ALPHA开发板(正点) |
---|---|---|
LCD_DATA[23:0] | LCD_DATA[23:0] | LCD_DATA[23:0] |
LCD_PCLK | LCD_CLK | LCD_CLK |
LCD_HSYNC | LCD_HSYNC | LCD_HSYNC |
LCD_VSYNC | LCD_VSYNC | LCD_VSYNC |
LCD_DE | LCD_DE | LCD_DE |
BLT_PWM | BLT_PWM(GPIO1_IO08) | BLT_PWM(GPIO1_IO08) |
RESET | SNVS_TAMPER9 | 电源硬件复位 |
从表中可以看见,除了复位引脚不同其它所有的引脚都是相同的。
2、修改设备树中关于LCD的配置
参考正点原子官方例程,修改设备LCD IO配置,将lcd中子节点pinctrl_lcdif_data中引脚的电器属性修改为 0x49。进入arch/arm/dts 打开 imx6ul-alientek.dtsi
因为正点原子的7寸显示屏没用使用软件复位,而是直接使用硬件复位,所有在子系统pinctrl_lcdif_ctrl中,不需要初始化 MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x79 引脚。所以修改为
接下来就是根据实际的LCD显示屏大小来修改参数(找厂家发显示屏参数)
水平显示区域 | 800 | tCLK |
HSPW | 48 | tCLK |
HBP | 88 | tCLK |
HFP | 40 | tCLK |
垂直显示区域 | 480 | th |
VSPW | 3 | th |
VBP | 32 | th |
VFP | 13 | th |
像素时钟 | 31 | MHz |
&lcdif {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lcdif_dat
&pinctrl_lcdif_ctrl>;
display = <&display0>;
status = "okay";
display0: display@0 {
bits-per-pixel = <24>;
bus-width = <24>;
display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <31000000>;
hactive = <800>;
vactive = <480>;
hfront-porch = <40>;
hback-porch = <88>;
hsync-len = <48>;
vback-porch = <32>;
vfront-porch = <13>;
vsync-len = <3>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
pixelclk-active = <0>;
};
};
};
};
因为正点原子没用到软件复位,所以需要进入到board/freescale/mx6ull_alientek_emmc.c文件中,找到setup_lcd函数,将软件复位那段话屏蔽。
然后保存并运行
下载到SD卡后,使用工具打印出现结果为