- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串口及控制台驱动的作用 在嵌入式Linux中,控制台(console)是系统重要的输出设备。在通过Bootloader引导内核的时候,可以使用console=…的命令行来指定控制台。当没有指定控制台的时候,系统利用第一个注册的终端设备(tty)作为系统的控制台。 串口及控制台驱动的作用 嵌入式处理器一般都具有串口控制器(UART)。在嵌入式Linux,串口的地位非常重要,尤其在系统调试阶段,一切有用的信息都可以从串口输入到主机。 串口及控制台驱动的作用 Linux串口驱动结构 串口驱动程序的核心部分 : drivers/char/serial_core.h drivers/char/serial_core.c 串口驱动(struct uart_driver) 串口端口(struct uart_port) 端口操作的数据结构(struct uart_ops) 串口状态(struct uart_state) 包含串口的 操作struct uart_ops Linux串口驱动结构 结构体uart_driver是串口驱动程序的框架; 结构体struct uart_port用于描述一个UART端口,其中包含到struct uart_ops的指针。 结构体struct uart_ops是serial_core.h中定义的另外一个重要的数据结构,它表示对串口的操作; 结构体struct uart_state表示串口的状态。 Linux控制台驱动结构 控制台的主要数据结构,在linux源代码的include/linux/console.h下。 数据结构struct console定义Linux的控制台,console_cmdline定义了命令行中的控制台。 在Linux内核启动的时候,使用console=…指定的控制台的名字就是使用console_cmdline类型结构体中的名字name[8]。 Linux控制台驱动结构 控制台命令行数据结构: struct console_cmdline { char name[8]; /* 驱动的名称 */ int index; /* 驱动次设备系引 */ char *options; /* 驱动的可选项 */ }; Linux控制台驱动结构 控制台数据结构: struct console { char name[8]; void (*write)(struct console *, const char *, unsigned); int (*read)(struct console *, const char *, unsigned); kdev_t (*device)(struct console *); void (*unblank)(void); int (*setup)(struct console *, char *); short flags; short index; int cflag; struct console *next; }; 控制台的写操作必须实现,为printk的输出所使用,读操作可以不实现。 setup 函数指针实现初始化的功能。 11.2 FrameBuffer驱动 LCD驱动原理 显示内存 FrameBuffer驱动结构 LCD驱动原理 LCD的含义为液晶显示屏,在嵌入式系统中,通常使用处理器内部LCD控制器连接LCD完成显示工作。嵌入式系统中流行LCD主要包括两种类型: STN(Super Twisted Nematic,超扭曲向列型) ——被动型 TFT(Thin Film Transistor,薄膜晶体管型) ——主动型 STN和TFT的LCD显示屏需要的驱动电平不同。 LCD驱动原理 嵌入式处理器的LCD控制器的共同点: LCD控制器集成在处理器芯片之中 CPU通过读写LCD控制器的寄存器进行配置 使用系统内存作为显示内存 显示内存一般由CPU写,有LCD控制器读。 LCD驱动原理 LCD的操作中,主要涉及到以下部件: ?LCD控制器(片内) ?LCD DMA(片内) ?CPU(片内) ?内存控制器(片内) ?总线控制器(片内) ?LCD显示屏(片外) ?内存(片外) DMA用于让LCD控制器访问内存。 LCD驱动原理 使用DMA方式读取显示内存 显示内存 FrameBu
文档评论(0)