上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 29 下一页
摘要: 我们使用中断的目的,就是为了在中断发生时,才去读操作,避免像查询一样一直read,从而占据大量的CPU。 一、阻塞: 当进程在读取外部设备的资源(数据),资源没有准备好,进程就会休眠。 linux应用中,大部分的函数接口都是阻塞 scanf(); read(); write(); accept(); 阅读全文
posted @ 2020-02-29 23:41 朱果果 阅读(485) 评论(0) 推荐(0) 编辑
摘要: 目录: 1、中断号 2、获取中断号 3、实现中断处理 4、中断编程—实现字符设备驱动框架 5、驱动实现将硬件数据传递给数据 6、示例 1、中断号 中断号是系统分配给每个中断源的代号,以便识别和处理。在采用向量中断方式的中断系统中,CPU必须通过它才可以找到中断服务程序的入口地址,实现程序的转移。 在 阅读全文
posted @ 2020-02-29 18:47 朱果果 阅读(3167) 评论(0) 推荐(0) 编辑
摘要: 实现按键驱动,板上加载驱动出错,Oops信息如下: 可知,是因为使用了空指针,导致内核访问了非法地址,在源码中去看一下: 1 ... 2 //按键中断的处理函数 3 irqreturn_t key_irq_handler(int irqno, void *devid) 4 { 5 printk(" 阅读全文
posted @ 2020-02-29 18:08 朱果果 阅读(559) 评论(0) 推荐(0) 编辑
摘要: 目录: 1、驱动与应用程序的设计思想 2、字符设备驱动编写步骤与规范 3、操作寄存器地址:readl / writel 4、实例:实现LED灯闪烁 1、驱动与应用程序的设计思想 用户态:应用程序 玩策略: 怎么去做 1, 一闪一闪 2,10s闪一次,也可以1s闪一次 3,一直亮 4,跑马灯 控制权是 阅读全文
posted @ 2020-02-28 20:32 朱果果 阅读(881) 评论(1) 推荐(0) 编辑
摘要: 目录·: 1、概述 2、设备号、设备节点 3、字符设备驱动框架 4、申请设备号 5、创建设备节点 6、实现文件IO接口--fops 7、应用程序控制驱动 8、驱动程序控制外设 1、概述: linux中一切皆文件,设备也如此,并且以操作文件即文件IO的方式访问设备。 应用程序只能通过库函数中的系统调用 阅读全文
posted @ 2020-02-28 01:51 朱果果 阅读(1001) 评论(0) 推荐(0) 编辑
摘要: 设备节点被创建在/dev下,是连接内核与用户层的枢纽,就是设备是接到对应哪种接口的哪个ID 上。 相当于硬盘的inode一样的东西,记录了硬件设备的位置和信息在Linux中,所有设备都以文件的形式存放在/dev目录下,都是通过文件的方式进行访问,设备节点是Linux内核对设备的抽象,一个设备节点就是 阅读全文
posted @ 2020-02-27 11:54 朱果果 阅读(2799) 评论(0) 推荐(1) 编辑
摘要: 目录: 1、Linux软件系统的层次关系 2、驱动程序的分类 3、驱动程序的开发步骤 1、Linux软件系统的层次关系 软件系统可分为:应用程序、库、操作系统(内核)、驱动程序 以点亮LED为例,分析各层间的写作关系 1)应用程序调用库提供的open函数打开代表LED的设备文件; 2)库根据open 阅读全文
posted @ 2020-02-26 23:09 朱果果 阅读(1078) 评论(0) 推荐(1) 编辑
摘要: 目录: 1、驱动模块开发 编写驱动hello.c 编写Makefile insmod加载KO模块 lsmod查看系统加载的模块 rmmod卸载模块 2、模块ko参数传递 3、ko模块符号导出 新建math.c math.h 修改Makefile hello.c 调用模块符号 1、驱动模块开发 驱动代 阅读全文
posted @ 2020-02-26 21:07 朱果果 阅读(1050) 评论(0) 推荐(1) 编辑
摘要: volatile详解见:https://wenku.baidu.com/view/9ec1690eee06eff9aef80745.html volatile修饰的变量可以避免编译器的优化,即不会从存取速度较快的寄存器中访问变量,而是访问原始内存地址。因为变量在原始内存里的志可能被改变却不会同步其寄 阅读全文
posted @ 2020-02-25 19:54 朱果果 阅读(220) 评论(0) 推荐(0) 编辑
摘要: static部分转载于博文:static的作用 static在嵌入式C编程中很常见,现总结一下其作用: 1、隐藏 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性 示例:同时编译a.c 与 main.c 1 #include <stdio.h> 2 char a = ' 阅读全文
posted @ 2020-02-25 17:43 朱果果 阅读(527) 评论(0) 推荐(0) 编辑
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 29 下一页