上一页 1 2 3 4 5 6 7 8 ··· 24 下一页
该文被密码保护。 阅读全文
posted @ 2018-08-08 20:08 Crystal_Guang 阅读(4) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-08-05 00:03 Crystal_Guang 阅读(4) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-07-28 11:17 Crystal_Guang 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 问题描述:全局变量,会被莫名其妙更改!打印为50,后面做比较的时候这个值为0了。 第一,我肯定没有犯低级错误,没有其他的更改,搜索全部代码,没有发现这个变量因为我程序问题导致不符合预期,同时找了两位同事检验;第二,volatile肯定是修饰了变量的。 同时在网上搜索了一下,并没有得到满意的答复,但是 阅读全文
posted @ 2018-07-10 23:47 Crystal_Guang 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 最近项目中遇到keil中使用sscanf时,采取类正则表达 阅读全文
posted @ 2018-05-28 22:12 Crystal_Guang 阅读(330) 评论(0) 推荐(0) 编辑
摘要: linux输入子系统(linux input subsystem)从上到下由三层实现,分别为:输入子系统事件处理层(EventHandler)、输入子系统核心层(InputCore)和输入子系统设备驱动层。 对于输入子系统设备驱动层而言,主要实现对硬件设备的读写访问,中断设置,并把硬件产生的事件转换 阅读全文
posted @ 2018-05-12 17:28 Crystal_Guang 阅读(1020) 评论(0) 推荐(1) 编辑
摘要: 之前我们的按键程序没有考虑抖动的情况。 按键按下的会有尖峰脉冲,常见的两种消抖方式: 第一:硬件消抖 并联一个电容,利用电容的充放电过程消抖。 第二:软件消抖 一般的用法就是一个延时,在不是us、ns必争的的场合,延时个几毫秒(一般5-10ms)再读取按键值就可以消除抖动了。 韦老师的方法是在按键中 阅读全文
posted @ 2018-05-02 22:50 Crystal_Guang 阅读(6754) 评论(0) 推荐(1) 编辑
摘要: 1. 原子操作 原子操作指的是在执行过程中不会被别的代码路径所中断的操作。常用原子操作函数举例:atomic_t v = ATOMIC_INIT(0); //定义原子变量v并初始化为0atomic_read(atomic_t *v); //返回原子变量的值void atomic_inc(atomic 阅读全文
posted @ 2018-05-01 16:05 Crystal_Guang 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 为了使设备支持异步通知机制,驱动程序中涉及以下 3 项工作:1. 支持 F_SETOWN 命令,能在这个控制命令处理中设置 filp->f_owner 为对应进程 ID。不过此项工作已由内核完成,设备驱动无须处理。2. 支持 F_SETFL 命令的处理,每当 FASYNC 标志改变时,驱动程序中的 阅读全文
posted @ 2018-05-01 10:11 Crystal_Guang 阅读(471) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-04-30 23:37 Crystal_Guang 阅读(7) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-04-30 23:08 Crystal_Guang 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 关于这个韦老师给了一个简单的参考文档: poll机制分析 韦东山 2009.12.10 所有的系统调用,基本都可以在它的名字前加上“sys_”前缀,这就是它在内核中对应的函数。比如系统调用open、read、write、poll,与之对应的内核函数为:sys_open、sys_read、sys_wr 阅读全文
posted @ 2018-04-30 11:45 Crystal_Guang 阅读(683) 评论(0) 推荐(0) 编辑
摘要: cpu发生中断,跳到异常向量入口执行动作 1.此时需要保存被中断的现场 2.执行中断处理函数 3.恢复被中断的现场 写程序时:先设置异常入口 异常向量入口: 0地址和0xffff0000两个入口, 嵌入式 arm linux中的选择后者为入口 vim .config文件查看中断向量表的起始地址 AR 阅读全文
posted @ 2018-04-26 23:34 Crystal_Guang 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 总的来说这个驱动和之前的没有太大差别,只是熟悉并复习一下之前的知识,比如裸机的按键查询和前面的first_drv的构建过程: Linux操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制 Code(可看备注回忆知识点): 刚开始 阅读全文
posted @ 2018-04-09 22:35 Crystal_Guang 阅读(460) 评论(0) 推荐(0) 编辑
摘要: mdev是busybox提供的一个工具,用在嵌入式系统中,相当于简化版的udev,作用是在系统启动和热插拔或动态加载驱动程序时, 自动创建设备节点。文件系统中的/dev目录下的设备节点都是由mdev创建的。在加载驱动过程中,根据驱动程序,在/dev下自动创建设备节点。 前面的博客实现了第一个版本,但 阅读全文
posted @ 2018-04-02 23:48 Crystal_Guang 阅读(561) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 24 下一页