今天小编要和大家分享的是嵌入式技术相关信息,接下来我将从嵌入式Linux系统的键盘驱动怎样去实现,cpu 内存 i/o接口及周边硬件设备计算机操作系统底层核心应用编程这几个方面来介绍。

嵌入式技术相关技术文章嵌入式Linux系统的键盘驱动怎样去实现cpu 内存 i/o接口及周边硬件设备计算机操作系统底层核心应用编程

嵌入式技术相关技术文章嵌入式Linux系统的键盘驱动怎样去实现

1引言

由于其具有内核强大且稳定,易于扩展和裁减,丰富的硬件支持等诸多优点,在嵌入式系统中得到了广泛的应用。很多嵌入式系统,特别是一些具有与用户强交互的嵌入式系统,往往需要配备一个特殊键盘,此时开发者需要根据实际情况,为自己的特殊键盘编写驱动程序。

2键盘驱动简介

Linux中的大多数驱动程序都采用了层次型的体系结构,键盘驱动程序也不例外。在Linux中,键盘驱动被划分成两层来实现。其中,上层是一个通用的键盘抽象层,完成键盘驱动中不依赖于底层具体硬件的一些功能,并且负责为底层提供服务;下层则是硬件处理层,与具体硬件密切相关,主要负责对硬件进行直接操作。键盘驱动程序的上层公共部分都在/。c中。该文件中最重要的就是内核用EXPORT_SYMBOL这个宏导出的_scancode函数。_scancode完成的功能是:首先将扫描码转换成键码,接着根据shift,alt等扩展键的按下情况将键码转换成目标码,一般情况下是码,最后将该码放到终端设备的缓冲区中,并且调度一个tasklet负责将其在显示器上回显出来。可以看出,这个函数完成的是键盘驱动程序中最核心的一些工作,而这些核心的逻辑功能是不依赖于底层硬件的,所以可以将其独立出来,并且导出给底层的硬件处理函数调用。在这个文件中还定义了其它几个回调函数,它们由键盘驱动程序中的上层公共部分调用,并由底层硬件处理函数实现。比如kbd__hw,kbd_translate,kbd_unexpected_up等等。其中kbd_translate由_scancode调用,负责将扫描码转换成键码;键盘驱动程序的底层硬件处理部分则根据不同的硬件有不同的实现。例如PC平台上标准键盘的底层硬件处理函数都集中在/Pc_keyb。c中。这个文件包括了键盘中断处理函数_,扫描码到键码转换函数pckbd_translate等一些与底层硬件密切相关的函数。

嵌入式Linux系统的键盘驱动怎样去实现

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查