linux嵌入式
linux嵌入式驱动开发
qq_41169114
这个作者很懒,什么都没留下…
展开
-
Linux 中断(十一)
下半部:如果中断处理过程比较耗时,那么就将这些比较耗时的代码提出来,交给下半部去执行,这样中断处理函数就会快进快出。,那些处理过程比较快,不会占用很长时间的处理就可以放在上半部完成。3、 free_irq 函数。:中断标志,//在文件。:要申请中断的中断号。里面查看所有的中断标志。5、设备树中断信息节点。原创 2023-06-21 15:38:56 · 497 阅读 · 0 评论 -
Linux MISC 驱动实验(十)
设备驱动最终是需要使用用户提供的。就是字符设备的操作集合,函数向系统中注册一个。原创 2023-06-21 13:38:07 · 108 阅读 · 0 评论 -
Linux 并发与竞争(九)
3.使用的时候判断原子变量的值。1.定义一个原子变量。原创 2023-06-08 15:06:28 · 61 阅读 · 0 评论 -
linux - timer定时器(八)
* 将设备结构体作为参数 */(传递给回调函数function的参数)function 就是定时器超时以后的定时处理函数,我们要做的工作就放到这个函数里面,需要我们编写这个定时处理函数。器,那么这个定时器的超时时间就是 jiffies+(2*HZ),因此 expires=jiffies+(2*HZ)del_timer_sync 函数是 del_timer 函数的同步版,会等待其他处理器使用完定时器再删除,内核定时器并不是周期性运行的,Linux 内核使用 timer_list 结构体表示内核定时器。原创 2023-06-01 10:58:41 · 433 阅读 · 0 评论 -
Linux MISC 驱动(七)
注册设备用 misc_register。MISC 设备 misc_deregister。其他和设备树使用一样,就是省去了创建cdev。设备驱动最终是需要使用用户提供的。就是字符设备的操作集合,原创 2023-05-31 17:26:00 · 49 阅读 · 1 评论 -
linux内核自带的LED驱动(六)
选择“LED Support for GPIO connected LEDs”,将其编译进 Linux 内核此选项上按下“Y”键,使此选项前面变为“”⑤可以设置“default-state”属性值,可以设置为 on、 off 或 keep,为 on 的时候 LED 灯默。认打开,为 off 的话 LED 灯默认关闭,为 keep 的话 LED 灯保持当前模式。heartbeat: LED 灯作为心跳指示灯,可以作为系统运行提示灯。timer: LED 灯周期性闪烁,由定时器驱动,闪烁频率可以修改。原创 2023-05-31 16:57:38 · 399 阅读 · 1 评论 -
Platform-设备树(五)
【代码】Platform-设备树。原创 2023-05-31 16:18:06 · 103 阅读 · 1 评论 -
linux GPIO(四)
打开 imx6ull-alientekemmc.dts,4.进入“/proc/device-tree”目录中,检查节点是否存在。在根节点“/”下创建 LED 灯节点,节点名为“gpioled”子节点下创建一个名为“pinctrl_led”的子节点,LED 灯使用了 GPIO1_IO03 这个 PIN。3.检查PIN是否被其他外设使用。1、添加 pinctrl 节点。2、添加 LED 设备节点。LED 灯驱动程序编写。原创 2023-05-30 17:17:02 · 149 阅读 · 1 评论 -
linux设备树-LED(三)
1.打开 imx6ull-alientek-emmc.dts,在根节点下创建子节点。定义一个结构体、实现init初始化、write写函数、exit出口函数。2 make dtbs 编译设备树,发送到开发板。子节点reg存放的是是寄存器地址。原创 2023-05-30 16:35:56 · 93 阅读 · 1 评论 -
linux设备树(二)
i2c1 表示要访问 i2c1 这个 label 所对应的节点,也就是 imx6ull.dtsi 中的“i2c1:i2c@021a0000”make dtbs。从驱动函数中调用设备树值。原创 2023-05-09 18:14:32 · 184 阅读 · 1 评论 -
linux设备树(一)
unit-address”一般表示设备的地址或寄存器首地址,如果某个节点没有地址或者寄存器的话“unit-address”可以不要。在驱动程序中,如果设备节点的 compatible 属性值和 OF 匹配表中的任何一个值相等,那么就表示设备可以使用这个驱动。“兼容性”属性,compatible 属性的值格式如下所示:"manufacturer,model"。#address-cells 属性值决定了子节点 reg 属性中。#size-cells 属性值决定了子节点 reg 属性中。原创 2023-05-09 17:53:33 · 104 阅读 · 2 评论 -
Linux i2c和spi(十二)
构建i2c_driver构建i2c_msg发送数据之前要先构建好i2c_msg发送数据读取寄存器数据最后用client->adaptermsg2函数发送。原创 2023-06-28 16:56:31 · 204 阅读 · 1 评论