目录
1.原理图
2.资料查阅
详见数据手册Section 9 MULTIMEDIA----》1 DISPLAY CONTROLLER
2.1.1显示控制器概述
显示控制器包括用于将图像数据从相机接口控制器的本地总线或系统内存中的视频缓冲区传输到外部LCD驱动器接口的逻辑。 LCD驱动程序接口支持三种接口,即RGB接口,indirect-i80接口和用于回写的YUV接口。显示控制器最多使用五个重叠图像窗口,这些窗口支持各种颜色格式,256级alpha混合,颜色键,x-y位置控制,软滚动和可变窗口大小等。
显示控制器支持各种颜色格式,例如RGB(1 bpp至24 bpp)和YCbCr 4:4:4(仅本地总线)。它被编程为支持屏幕上与水平和垂直像素数,数据接口的数据线宽,接口时序和刷新率有关的不同要求。
显示控制器传输视频数据并生成必要的控制信号,例如RGB_VSYNC,RGB_HSYNC,RGB_VCLK,RGB_VDEN和SYS_CS0,SYS_CS1,SYS_WE。除了生成控制信号外,显示控制器还包含视频数据的数据端口(RGB_VD [23:0]和SYS_VD),如图1-1所示。
2.1.2显示控制器的主要功能
显示控制器的主要功能包括:
总线接口 | AMBA AXI 64位主设备/ AHB 32位从设备 总线接口本地视频总线(YCbCr / RGB) |
视频输出接口 | RGB接口(24位并行/ 8位串行) (虚拟插入,颜色子采样(RGB跳过)模式) (一般,三角结构) 间接i80介面 WriteBack接口(YUV444 30位) |
双路输出模式 | 支持i80和WriteBack 支持RGB和WriteBack |
画中画(OSD)功能 | 支持8-bpp(每像素位数)的调色板颜色 支持16 bpp非码垛颜色 支持未包装的18-bpp非码垛颜色 PIP(OSD)功能支持未包装的24-bpp非货盘彩色 |
支持X,Y索引位置 | |
支持8位Alpha混合(平面/像素) | |
源格式 | 窗口0 支持1、2、4或8-bpp(每像素位数)的调色板颜色 支持16、18或24 bpp非货盘颜色 支持来自本地总线(FIMC0)的RGB(8:8:8)本地输入 窗口1 支持1、2、4或8-bpp(每像素位数)的调色板颜色 支持16、18或24 bpp非货盘颜色 支持来自本地总线(FIMC1)的RGB(8:8:8)本地输入 视窗2 支持1、2、4或8-bpp(每像素位数)的调色板颜色 支持16、18或24 bpp非货盘颜色 支持来自本地总线(FIMC2)的RGB(8:8:8)本地输入 视窗3/4 支持1、2、4或8-bpp(每像素位数)的调色板颜色 支持16、18或24 bpp非货盘颜色 |
可配置的突发长度 | 可编程4/8/16突发DMA |
调色板 | 窗口0/1/2/3/4 支持256 x 32位调色板内存(5ea:每个窗口一个调色板内存) |
软滚动 | 水平= 1字节分辨率 垂直= 1像素分辨率 |
虚拟屏幕 | 虚拟图像的最大图像大小为16MB。 每个窗口可以有自己的虚拟区域。 |
透明覆盖 | 支持透明覆盖 |
色彩键(色度键) | 支持色彩键功能 同时支持色彩键和混合功能 |
部分显示 | 通过i80接口支持LCD部分显示功能 |
影像增强 | 支持伽玛控制 |
支持色相控制 | |
支持色彩增益控制 | |
支持像素补偿(仅适用于增量结构) |
2.1.3显示控制器的功能说明
2.1.3.1子块的简要说明
显示控制器由VSFR,VDMA,VPRCS,VTIME和视频时钟发生器组成。
为了配置显示控制器,VSFR具有121个可编程寄存器组,一个gamma LUT寄存器组(64个寄存器),一个i80命令寄存器组(12个寄存器)和五个256x32调色板存储器。
VDMA是专用的显示DMA,可将帧存储器中的视频数据传输到VPRCS。通过使用此特殊的DMA,您可以在无需CPU干预的情况下在屏幕上显示视频数据。
在将视频数据更改为合适的数据格式后,VPRCS从VDMA接收视频数据,然后通过数据端口(RGB_VD或SYS_VD)将其发送到显示设备(LCD)。例如,每像素模式8位(8 bpp模式)或每像素模式16位(16 bpp模式)。
VTIME由可编程逻辑组成,以支持不同LCD驱动器中常见的接口时序和速率的可变要求。 VTIME块生成RGB_VSYNC,RGB_HSYNC,RGB_VCLK,RGB_VDEN,VEN_VSYNC,VEN_HSYNC,VEN_FIELD,VEN_HREF和SYS_CS0,SYS_CS1,SYS_WE等。
使用显示控制器数据,可以通过设置DISPLAY_PATH_SEL [1:0](0xE010_7008)选择上述数据路径之一。有关更多信息,请参见第02.03节“时钟控制器”。
2.1.3.2数据流
2.1.3.2.1接口
显示控制器支持三种类型的接口:
•第一种是常规的RGB接口,它使用RGB数据,垂直/水平同步,数据有效信号和数据同步时钟。
•第二种类型是间接i80接口,它使用地址,数据,芯片选择,读/写控制和寄存器/状态指示信号。 使用i80接口的LCD驱动程序包含一个帧缓冲区,并且可以自我刷新,因此显示控制器仅向LCD写入一次即可更新一个静止图像。
•第三种类型是带有CAMIF2的FIFO接口用于回写。
2.1.3.3颜色数据概述
2.1.3.3.1 RGB数据格式
显示控制器请求帧缓冲区的指定存储格式。 下表显示了每种显示模式的一些示例。
1.3.3.2 25BPP 显示(A888)
2.1.3.4颜色空间转换(CSC)
2.1.3.4.1颜色空间转换YCbCr到RGB(CSCY2R)
2.1.3.4.2颜色空间转换RGB到YCbCr(CSCR2Y)
2.1.3.5调色板用法
2.1.3.5.1面板配置和格式控制
显示控制器支持256色调色板来选择颜色映射。 使用这些格式,您可以从32位颜色中最多选择256种颜色。
256个调色板由256个(深度)×32位SPSRAM组成。 调色板支持8:8:8、6:6:6、5:6:5(R:G:B)和其他格式。
例如:
参见A:5:5:5格式,写调色板,如表1-2所示。
将VD引脚连接到TFT LCD面板(R(5)= VD [23:19],G(5)= VD [15:11]和B(5)= VD [7:3])。 AEN位控制混合功能,启用或禁用。 最后,将WPALCON(W1PAL,case window0)寄存器设置为0’b101。 32位(8:8:8:8)格式直接具有alpha值,而无需使用alpha值寄存器(ALPHA_0 / 1)。
2.1.3.5.2调色板读/写
当垂直状态(VSTATUS)寄存器处于活动状态时,您不应访问调色板内存。
必须检查VSTATUS才能在面板上执行读/写操作。
2.1.3.6窗口混合
2.1.3.6.1窗口融合概述
VPRCS模块的主要功能是窗口混合。 显示控制器包括五个窗口层
(win0〜win4)。
应用示例:
系统使用
win0作为OS窗口,完整的电视屏幕窗口等。
像win2一样小的win1电视屏幕(下一个频道)。
以win3为标题。
win4作为频道信息。
当在Color LUT中使用颜色索引时,win3和win4具有颜色限制。 此功能通过降低整个系统的数据速率来增强系统性能。
总共五个窗口的示例:
WIN0(基本):本地/(YCbCr,RGB不带调色板)
WIN1(Overlay1):RGB与调色板
WIN2(Overlay2):RGB与调色板
WIN3(字幕):RGB(1/2/4)与16级Color LUT
WIN4(游标):RGB(1/2)与4级色彩LUT
重叠优先权
Win 4 > Win 3 > Win 2 > Win 1 > Win 0
颜色键
ColorKey寄存器的寄存器值必须以24位RGB格式设置。
2.1.3.6.2混合图
显示控制器可以同时为一个像素混合五层。 ALPHA0_R,ALPHA0_G,ALPHA0_B,ALPHA1_R,ALPHA1_G和ALPHA1_B寄存器控制为每个窗口层和颜色(R,G,B)实现的alpha值(混合因子)。
下面的示例使用每个窗口的ALPHA_R值显示R(红色)输出。
所有窗口都有两种alpha混合值:
•透明度启用的Alpha值(AEN值== 1)
•禁用透明度的Alpha值(AEN值== 0)。
如果启用了WINEN_F和BLD_PIX而禁用了ALPHA_SEL,则使用以下命令选择AR
方程:
•AR =(像素(R)的AEN值== 1’b1)? Reg(ALPHA1_R):Reg(ALPHA0_R);
•AG =(像素(G)的AEN值== 1’b1)? Reg(ALPHA1_G):Reg(ALPHA0_G);
•AB =(像素(B)的AEN值== 1’b1)? Reg(ALPHA1_B):Reg(ALPHA0_B);
(其中BLD_ PIX == 1,ALPHA_SEL == 0)
如果启用了WINEN_F而禁用了BLD_PIX,则AR由ALPHA_SEL ALPHA0控制。不再使用AEN位信息。
例:
窗口n的混合因子决定(n = 0、1、2、3、4)。 有关更多信息,请参阅“ SFR”部分。
注意:如果使用DATA [15:12](BPPMODE_F = b'1110,ARGB4444格式)进行混合,则alpha值为{DATA [15:12],DATA [15:12]}(4位-> 8- 扩展)。
2.1.3.6.3色键功能
2.1.3.6.4混合和颜色键功能
2.1.3.7图像增强
2.1.3.7.1伽玛控制
2.1.3.7.2图像增强概述
2.1.3.7.3 颜色增益控制
色彩增益控制由每种颜色的三个寄存器组成:红色,绿色和蓝色。 色彩增益的最大值为3.99609375(约4),分辨率为8位。
•R(色彩增益)= R•CG_RGAIN
•G(色彩增益)= G•CG_GGAIN
•B(色彩增益)= B•CG_BGAIN
CG_R(G,B)GAIN由2位整数和8位小数组成。
(在8位分辨率下,最大值约为4。)输出值在255处达到饱和。
2.1.3.7.4色相控制
色相控制包含八个用于色相矩阵系数的寄存器。
•Cb <色相> = CBG0•(Cb + OFFSET_IN)+ CBG1•(Cr + OFFSET_IN)+ OFFSET_OUT
•Cr <色相> = CRG0•(Cb + OFFSET_IN)+ CRG1•(Cr + OFFSET_IN)+ OFFSET_OUT
(通常,OFFSET_IN是“ -128”,而OFFSET_OUT是“ +128”。)
•CBG0 =(Cb + OFFSET_IN)> = 0? CBG0_P:CBG0_N
•CBG1 =(Cr + OFFSET_IN)> = 0? CBG1_P:CBG1_N
•CRG0 =(Cb + OFFSET_IN)> = 0? CRG0_P:CRG0_N
•CRG0 =(Cr + OFFSET_IN)> = 0? CRG1_P:CRG1_N
2.1.3.7.5像素补偿控制
2.1.3.8 VTIME控制器操作
VTIME包含两个块,即:
•VTIME_RGB_TV用于RGB时序控制
•VTIME_I80用于间接i80接口时序控制
2.1.3.8.1 RGB接口控制器
VTIME会为RGB接口生成控制信号,例如RGB_VSYNC,RGB_HSYNC,RGB_VDEN和RGB_VCLK信号。 在配置VSFR寄存器中的VIDTCON0 / 1/2寄存器时使用这些控制信号。
根据VSFR中显示控制寄存器的可编程配置,VTIME模块生成支持不同类型显示设备的可编程控制信号。
RGB_VSYNC信号使LCD的行指针从显示的顶部开始。 HOZVAL字段和LINEVAL寄存器的配置都控制RGB_VSYNC和RGB_HSYNC的脉冲生成。 根据以下等式,LCD面板的尺寸确定HOZVAL和LINEVAL:
•HOZVAL =(水平显示尺寸)-1
•LINEVAL =(垂直显示尺寸)-1
VIDCON0寄存器中的CLKVAL字段控制RGB_VCLK信号的速率。 表1-5定义了RGB_VCLK和CLKVAL的关系。 CLKVAL的最小值为1。
− RGB_VCLK(Hz)= HCLK /(CLKVAL + 1),其中CLKVAL> = 1
VSYNC,VBPD,VFPD,HSYNC,HBPD,HFPD,HOZVAL和LINEVAL配置RGB_HSYNC和RGB_VSYNC信号。 有关更多信息,请参见图9.1-20。
帧速率是RGB_VSYNC信号频率。 帧速率与VSYNC,VBPD,VFPD,LINEVAL,HSYNC,HBPD,HFPD,HOZVAL和CLKVAL寄存器的字段有关。 大多数LCD驱动器都需要自己足够的帧速率。
要计算帧速率,请使用以下公式:
•帧频= 1 / [{((VSPW + 1)+(VBPD + 1)+(LIINEVAL + 1)+(VFPD + 1)} x {((HSPW + 1)+(HBPD +1)
+(HFPD + 1)+(HOZVAL +1)} x {((CLKVAL + 1)/(时钟源的频率)}]
2.1.3.8.2 I80接口控制器
VTIME_I80控制CPU样式LDI的显示控制器。 它具有以下功能:
•生成I80接口控制信号
•CPU样式的LDI命令控制
•VDMA和VDPRCS的时序控制
2.1.3.8.3输出控制信号的产生
VTIME_I80生成SYS_CS0,SYS_CS1,SYS_WE和SYS_RS控制信号(有关时序图,请参见图9.1-27)。 它们的时序参数LCD_CS_SETUP,LCD_WR_SETUP,LCD_WR_ACT和LCD_WR_HOLD通过I80IFCONA0和I80IFCONA1 SFR进行设置。
2.1.3.8.4部分显示控制
尽管部分显示是CPU样式LDI的主要功能,但VTIME_I80在硬件逻辑中不支持此功能。
此功能通过SFR设置(LINEVAL,HOZVAL,OSD_LeftTopX_F,OSD_LeftTopY_F,OSD_RightBotX_F,OSD_RightBotY_F,PAGEWIDTH和OFFSIZE)实现。
2.1.3.8.5 LDI命令控制
LDI接收命令和数据。 命令指定用于选择LDI中的SFR的索引。 在命令和数据的控制信号中,只有SYS_RS信号具有特殊功能。 通常,SYS_RS发出命令的极性为“ 1”,反之亦然。
显示控制器具有两种命令控制:
•自动指令
•普通命令
自动命令是自动发出的,即无需软件控制并以预定义的速率发出(速率= 2、4、6,... 30)。 如果速率等于4,则表示在每4个图像帧的末尾将自动命令发送到LDI。 软件控件发出“正常”命令。
2.1.3.9命令设置
2.1.3.9.1自动命令
如果每10帧需要将0x1(索引),0x32、0x2(索引),0x8f,0x4(索引)或0x99发送到LDI,则建议执行以下步骤:
•LDI_CMD0←0x1,LDI_CMD1←0x32,LDI_CMD2←0x2,
•LDI_CMD3←0x8f,LDI_CMD4←0x4,LDI_CMD5←0x99
•CMD0_EN←0x2,CMD1_EN←0x2,CMD2_EN←0x2,
•CMD3_EN←0x2,CMD4_EN←0x2,CMD5_EN←0x2
•CMD0_RS←0x1,CMD1_RS←0x0,CMD2_RS←0x1,
•CMD3_RS←0x0,CMD4_RS←0x1,CMD5_RS←0x0
•AUTO_CMD_RATE←0x5
注意:
1.有关检查RS极性的信息,请参阅LDI规范。
2.不需要将LDI_CMD从LDI_CMD0连续打包到LDI_CMD11。 例如,只能使用LDI_CMD0,LDI_CMD3和LDI_CMD11。
3.最多有12个自动命令可用。
2.1.3.9.2 正常命令
要执行普通命令,请按照下列步骤操作:
将命令放入LDI_CMD0〜11(最多12个命令)。
在LDI_CMDCON0中设置CMDx_EN以启用普通命令x(例如,如果要启用命令4,则必须将CMD4_EN设置为0x01)。
在I80IFCONB0 / 1中设置NORMAL_CMD_ST。
显示控制器具有以下命令操作特征:
•12条命令中的每条命令都可以使用自动/常规/自动和常规命令模式。
•在正常操作中,每帧之间最多发送12条命令(正常操作表示ENVID = 1,并且LCD面板中显示视频数据)。
•按照CMD0→CMD1→CMD2→CMD3→…→CMD10→CMD11的顺序发出命令。
•跳过禁用的命令(CMDx_EN = 0x0)。
−发送12个以上的命令(在“正常”命令和系统初始化中可能)。
−设置12个LDI_CMDx,CMDx_EN和CMDx_RS。
−设置NORMAL_CMD_ST。
−通过轮询读取NORMAL_CMD_ST。 如果为0,请转到NORMAL_CMD_ST设置。
2.1.3.9.3 中断(一帧的完成会产生帧完成中断。)
2.1.3.9.3.1间接I80接口输出模式
2.1.3.10虚拟显示
2.1.3.11 RGB接口规格
2.1.3.11.1 信号
信号 | 输入/输出 | 描述 | 管脚 | 类型 |
LCD_HSYNC | 输出 | 水平同步信号 | XvHSYNC | 复用 |
LCD_VSYNC | 输出 | 垂直同步信号 | XvVSYNC | 复用 |
LCD_VCLK | 输出 | 像素时钟 | XvVCLK | 复用 |
LCD_VDEN | 输出 | 数据有效标志 | XvVDEN | 复用 |
LCD_VD[23:0] | 输出 | YCbCr数据输出 | XvVD[23:0] | 复用 |
2.1.3.11.2 LCD RGB接口时序
(1)一行的通信过程是这样的:LCD控制器先发送一个HSYNC高电平脉冲(脉冲宽度是HSPW),脉冲告诉驱动器下面的信息是一行信息。然后开始这一行信息,这一行信息包括3部分:HBPD+有效行信息+HFPD。其中前肩和后肩都属于时序信息(和LCD屏幕具体有关),有效行信息就是横向分辨率。所以你可以认为一行总共包含4部分:HSPW+HBPD+有效行信息+HFPD。
(2)一帧图像其实就是一列,一列图像由多个行组成,每行都是上面讲的这个时序。
(3)一帧图像的通信过程是这样的:整个帧图像信号分为4部分:VSPW+VBPD+帧有效信号+VFPD。VSPW是帧同步信号宽度,用来告诉驱动器一帧图像要开始了;VBPD和VFPD分别是垂直同步信号前后肩。
(4)必须说明:这6个参数对于LCD显示器其实本来是没用的,这些信号其实是老式的CRT显示器才需要的,LCD本身不需要,但是出于历史兼容性要求,LCD选择了兼容CRT显示器的这些时序要求,所以理解LCD显示器时序和编程时,用CRT的方式来理解不会错。
(5)要注意,这几个时序参数本身是LCD屏幕本身的参数,与LCD控制器无关。所以同一个主板如果接的屏幕不一样则时序参数设置也会不同。这些参数的来源一般是:第一,厂家会直接给出,一般以实例代码的形式给出;第二,来自于LCD的数据手册。
2.1.3.11.3并行输出
1.3.11.3.1通用24位输出(RGBSPSEL = 0,RGB_SKIP_EN = 0)
1.3.11.3.2 RGB跳过8位输出(彩色子采样)(RGBSPSEL = 0,RGB_SKIP_EN = 1)
2.1.3.11.4串行8位输出
1.3.11.4.1通用8位输出(RGBSPSEL = 1,RGB_DUMMY_EN = 0)
1.3.11.4.2虚拟插入输出(RGBSPSEL = 1,RGB_DUMMY_EN = 1)
1.3.11.5输出配置结构
1.3.11.5.1颜色顺序控制
1.3.11.5.2增量结构示例
1.3.12 LCD间接I80系统接口
2.1.4编程模型
2.1.4.1程序模型概述
使用以下寄存器来配置显示控制器:
1. VIDCON0:配置视频输出格式并显示启用/禁用。
2. VIDCON1:指定RGB I / F控制信号。
3. VIDCON2:指定输出数据格式控件。
4. VIDCON3:指定图像增强控件。
5. I80IFCONx:指定CPU接口控制信号。
6. VIDTCONx:配置视频输出时序并确定显示尺寸。
7. WINCONx:指定每个窗口功能设置。
8. VIDOSDxA,VIDOSDxB:指定窗口位置设置。
9. VIDOSDxC,D:指定OSD大小设置。
10. VIDWxALPHA0 / 1:指定Alpha值设置。
11. BLENDEQx:指定混合方程式设置。
12. VIDWxxADDx:指定源图像地址设置。
13. WxKEYCONx:指定颜色键设置寄存器。
14. WxKEYALPHA:指定颜色键的alpha值设置。
15. WINxMAP:指定窗口颜色控件。
16. GAMMALUT_xx:指定伽玛值设置。
17. COLORGAINCON:指定色彩增益值设置。
18. HUExxx:指定色相系数和偏移值设置。
19. WPALCON:指定调色板控制寄存器。
20. WxRTQOSCON:指定RTQoS控制寄存器。
21. WxPDATAxx:指定每个索引的窗口调色板数据。
22. SHDOWCON:指定阴影控制寄存器。
23. WxRTQOSCON:指定QoS控制寄存器
2.1.5 寄存器描述
LCD相关寄存器寄存器介绍:因为这里面的寄存器实在太多了,我们的一个原则就是能够
让LCD工作就行了,所以很多寄存器我们都没有涉及到,同一个寄存器中有些位也是没有
涉及到的,所以需要用到的位我们就设置,不需要我们暂且不管,如果以后做方面相关
的时候再去好好研究。
(1)VIDCON0:
bit[0]: 当前帧结束后是否使能视频输出控制器,也就是一帧画面显示结束后是否使能
LCD控制器,1使能 0禁止
bit[1]: 使能视频输出控制器(指的是当前) 1使能 0禁止
bit[2]: 时钟源选择 0=HCLK_DSYS 1=SCLK_FIMD
bit[13:6]: 时钟源分频器分频系数设置 本LCd控制器时钟不超过100MHZ,最终的时钟频
率是需要考虑LCD控制器和LCD驱动器两个方面,要低于两个中的最小值。
bit[4]: 时钟控制,使用分频器设置后的时钟还是源时钟,0是源时钟 1是分频器设置
后 的时钟。
bit[18]: 选择显示的模式,0是RGB并行模式 1是RGB串行模式
bit[28:26]: 选择视频输出格式,000=RGB接口 010=I80接口 011=I80接口...
(2)VIDCON1:
bit[4]: VSYNC信号反转控制,要跟LCd驱动器的电平要一致
bit[5]: HSYNC信号反转控制,要跟LCD驱动器的电平要一致
(3)VIDTCON0:
bit[7:0]: VSPW设置,意思在上面已经说过
bit[15:8]: VFPD设置
bit[23:16]: VBPD设置
(4)VIDTCON1:
bit[7:0]: HSPW设置
bit[15:8]: HFPD设置
bit[23:16]: HBPD设置
(5)VIDTCON2:
bit[10:0]: 显示水平大小设置,水平分辨率
bit[21:11]: 显示垂直大小设置,垂直分辨率
(6)WINCON0,WINCON1,WINCON2,WINCON3,WINCON4:
分别设置5个虚拟显示,对应分配的5个显存
bit[0]: 使能位,0禁止当前显存 1使能当前显存
bit[5:2]: 选择像素深度(bpp)
0000=1bpp 0001=2bpp 0010=4bpp.....1011=24bpp(R:8 G:8 B:8)
bit[15]: 像素交换使能控制位,像素交换就是 24位数据怎么分布的问题,是RGB还是
BGR
0禁止 1使能交换
(7)VIDOSD0A,VIDOSD1A,VIDOSD2A,VIDOSD3A....
用来设置虚拟显存的位置相关的
bit[10:0]: 指定左上像素的垂直坐标
bit[21:11]: 指定左上像素的水平坐标
(8)VIDOSD0B................
bit[10:0]: 指定右下角像素的垂直坐标
bit[21:11]: 指定右下角像素的水平坐标
(9)VIDOSD0C....... 设置显存的大小、注意显存的大小可以大于LCD实际的一帧数据的大
小的,这是需要理解的。
bit[23:0]: 注意这里设置其实是以像素为单位的,也就是说这里设置的是我们的显存
的
(10)VIDW00ADD0B0(分为5组)分别对应我们的5个虚拟显存
bit[31:0]: 显存的内存地址设置 , 将地址值写入这个寄存器
VIDW00ADD1B0(分为5组)分别对应我们的5个虚拟显存
bit[31:0]: 显存的大小,以字节为单位
SHADOWCON:用来设置我们的5个虚拟显存使能控制位和叠加方式寄存器,如果我们显示
的图片是需要叠加的话是需要好好看看这里的。
bit[0]: win0显存使能控制开关 0禁止 1使能 所以由此可知我们的每一个虚拟显存
的使能开关有两个一个就是在各自的寄存器上,另一个就是在这里集中的控制
,当然我们还有总的视频控制输出开关,之前说过了。
3.代码编写
https://gitee.com/x210bv3s
4.拓展