抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

对于 I2C 主机驱动,一旦编写完成就不需要再做修改,其他的 I2C 设备直接调用主机驱动提供的 API 函数完成读写操作即可。这个正好符合 Linux 的驱动分离与分层的思想,因此 Linux内核也将 I2C 驱动分为两部分: ①、I2C 总线驱动, I2C 总线驱动就是 SOC 的 I2C 控制器驱动,也叫做 I2C 适配器驱动。 ②、I2C 设备驱动, I2C 设备驱动就是针对具体的...

RTC 也就是实时时钟,用于记录当前系统时间,对于 Linux 系统而言时间是非常重要的,就和我们使用 Windows 电脑或手机查看时间一样,我们在使用 Linux 设备的时候也需要查看时间。 I.MX6U 内部也有个 RTC 模块,但是不叫作“RTC”,而是叫做“SNVS”。 SNVS 直译过来就是安全的非易性存储, SNVS 里面主要是一些低功耗的外设,包括一个安全的...

LCD 是很常用的一个外设,在搭配 QT 这样的 GUI 库下可以制作出非常精美的 UI 界面。 1.Linux下LCD驱动简析1.1Framebuffer 设备 裸机 LCD 驱动编写流程如下: 初始化 I.MX6U 的 eLCDIF 控制器,重点是 LCD 屏幕宽(width)、高(height)、 hspw、hbp、 hfp、 vspw、 vbp 和 vfp 等信息。...

按键、鼠标、键盘、触摸屏等都属于输入(input)设备, Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。输入设备本质上还是字符设备,只是在此基础上套上了 input 框架,用户只需要负责上报输入事件,比如按键值、坐标等信息, input 核心层负责处理这些事件。 1.input子系统 input 就是输入的意思,因此 input 子系统就是管理输入的子...

misc 的意思是混合、杂项的,因此 MISC 驱动也叫做杂项驱动。 1.内核自带MISC驱动简介 所有的 MISC 设备驱动的主设备号都为 10,不同的设备使用不同的从设备号。 MISC 设备会自动创建 cdev,不需要像我们以前那样手动创建,因此采用 MISC 设备驱动可以简化字符设备驱动的编写。 需要向 Linux 注册一个 miscdevice 设备, miscdevic...

1.内核自带LED驱动使能 platform平台 内核自带的驱动,都是通过图形化界面配置,选择使能或者不使用。 输入:make menuconfig 使能驱动后再.config里面就会存在:CONFIG_LEDS_GPIO=y 在Linux内核源码里面一般驱动文件夹下Makefile会只用CONFIG_XXX来决定要编译哪个文件。 12obj-$(CONFIG_LEDS_GPIO) +=...

1.Linux驱动分离与分层 Linux 系统要考虑到驱动的可重用性,因此提出了驱动的分离与分层这样的软件思路,在这个思路下诞生了我们将来最常打交道的platform 设备驱动,也叫做平台设备驱动。 1.1驱动的分隔与分离 每个平台的 I2C 控制器都提供一个统一的接口(也叫做主机驱动),每个设备的话也只提供一个驱动程序(设备驱动),每个设备通过统一的 I2C接口驱动来访问,这样就可以...

1.异步通知1.1异步通知简介 中断是处理器提供的一种异步机制,我们配置好中断以后就可以让处理器去处理其他的事情了,当中断发生以后会触发我们事先设置好的中断服务函数,在中断服务函数中做具体的处理。 同样的, Linux 应用程序可以通过阻塞或者非阻塞这两种方式来访问驱动设备,通过阻塞方式访问的话应用程序会处于休眠态,等待驱动设备可以使用,非阻塞方式的话会通过 poll 函数来不断的轮询,查看...

因为格式化了sd卡,但是板子是从sd卡启动的uboot,导致uboot的环境变量全没了,得重新设置。 1.下载uboot到sd卡uboot也是一个裸机程序,使用imxdownload下载,使用前先make编译好uboot。 1./imxdownload uboot.bin /dev/sdb 下载后单片机选择sd卡启动。 2.修改bootdelay12setenv bootdelay 1sa...

1.阻塞与非阻塞IO1.1阻塞与非阻塞简介 这里的“IO”并不是我们学习 STM32 或者其他单片机的时候所说的“GPIO”(也就是引脚)。这里的 IO 指的是 Input/Output,也就是输入/输出,是应用程序对驱动设备的输入/输出操作。 阻塞: 当资源不可用的时候,应用程序就会挂起。 当资源可用的时候,唤醒任务。 应用程序使用open打开驱动文...