以下内容摘录总结自《朱有鹏老师嵌入式linux核心课程》的1.14.ARM裸机第十四部分-LCD显示器 中的笔记
SOC显示图片的工作过程如下所示:
(1)首先可以肯定的是,在SOC没有上电之前,图像信息(以jpg格式的图片为例)是存储在flash中的。在程序执 行过程中,SOC首先将flash中的数据通过SOC内部的flash控制器读入到内存中。
(2)但是此时内存中jpg格式的数据是不能让LCD显示的,需要将此信息解码成LCD能够显示的像素信息。存储在 图中“像素信息”的位置(此位置是程序员自己规定的,此部分即称之为显存)。
(3)之后设置SOC内部的LCD控制器。然后通过配置将LCD控制器和这一段内存(以后称为显存)连接起来构成 一个映射关系。一旦这个关系建立之后,LCD控制器就会自动从显存中读取像素数据传输给LCD驱动器。
这个显示的过程不需要CPU的参与(这样做极大的提高了显示图像的效率)。
(4)显示体系建立起来后,CPU就不用再管LCD控制器、驱动器、LCD液晶这些东西了;
以后CPU就只关心显存了,因为我只要把要显示的图像的像素数据丢到显存中,
硬件就会自动响应(屏幕上就能自动看到显示的图像了)。
总结:LCD显示是分为2个阶段的:
第一个阶段就是建立显示体系的过程,
目的就是CPU初始化LCD控制器使其和显存联系起来构成映射;
第二个阶段就是映射建立之后,
此阶段主要任务是将要显示的图像丢到显存中去。