lcd_drvice分析

发布时间:2021-07-09 16:38:21 作者:ranyue 阅读量:12

1. APP和内核隔离

rt-smart中,APP无法直接访问硬件寄存器,必须通过驱动程序来操作硬件。
而APP和内核是隔离的,APP无法直接调用内核中驱动程序的函数。

APP使用驱动的流程如下图所示:


在smart系统中,app是无法直接访问硬件的,而是通过系统提供的一套io接口来对硬件设备进行操作的(是在应用程序看来是这样)。通过一整套标准的接口来操作硬件。

2.对lcd的驱动分析

第一,先对lcd的ops结构体进行分析,可以看出,lcd驱动只实现了,两个对硬件的操作接口。因此在应用层调用的时候,只有两个接口可以使用

1.rt_device_init();
2.rt_device_control();
/*实现的驱动接口*/
1.static rt_err_t imx6ull_elcd_init(rt_device_t device)
2.static rt_err_t imx6ull_elcd_control(rt_device_t device, int cmd, void *args)


3.来分析imx6ull_elcd_init()


这个函数主要是来配置相应的lcd的硬件参数。


1.如配置lcd的时钟,利用 CLOCK_InitVideoPll(&pll_config);来配置lcd所需的时钟频率


2.利用 ELCDIF_RgbModeInit(elcd_dev->config->ELCDIF, &lcd_config);ELCDIF_RgbModeStart(elcd_dev->config->ELCDIF);;来配置相应的lcd参数,比如屏幕的宽,高,bbp等


4.分析int rt_hw_elcd_init(void)