摘要: 以hello world模块为例 Makfile: make输出信息: 从输出信息中可以看出 ,最终的目的是生成了 helloworld.ko 这个文件 运行结果: 为什么需要使用printk 函数来打印了? 在模块运行过程中,不能依赖于c库,模块能够调用printk是因为在 insmod函数装入模 阅读全文
posted @ 2019-04-24 22:32 Dipsyhu 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 现象:把usb设备接入电脑 1.Windows发现设备 2.跳出一个对话框提示安装驱动程序 问1:既然没有驱动程序,为什么了够知道是什么驱动了?? 答1:Windows里面已经有了usb总线驱动程序,接入usb设备后,是“总线驱动程序知道”是什么驱动。提示安装设备驱动程序 usb总线驱动程序负责识别 阅读全文
posted @ 2019-04-15 23:10 Dipsyhu 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 使用input输入子系统 1.分配input_dev 2.设置 3.注册 4.硬件相关操作(有数据产生时,需要调用input_event来上报,给input_handle 最终调用到input_handler 中的event函数) input_dev结构体 入口函数: 出口函数: 按键中断: ls 阅读全文
posted @ 2019-03-22 20:59 Dipsyhu 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 在使用Open的时候,就自己能够使用。如果需要将驱动程序制作成通用的。就需要使用到输入子系统,就是在现成的驱动中修改成自己板子需要的驱动。 input输入子系统 自己写的时候 1.确定主设备号major 2.构造一个file_operetion结构体 里面有Open write read close 阅读全文
posted @ 2019-03-17 23:07 Dipsyhu 阅读(675) 评论(0) 推荐(0) 编辑
摘要: 2019-3-12系统滴答定时器中断使用 定义一个timer ​​ 其实就是使用系统的滴答定时器产生一个中断。 初始化timer init_timer函数 实现如下 void fastcall init_timer(struct timer_list *timer) { timer->entry.n 阅读全文
posted @ 2019-03-12 22:09 Dipsyhu 阅读(986) 评论(0) 推荐(0) 编辑
摘要: 查询:消耗资源 中断:read 一直要去读 poll :指定起始时间 异步通知 signal 测试程序 include <stdio.h> include <signal.h> void my_signal(int signum) { static unsigned int cnt; printf( 阅读全文
posted @ 2019-03-07 22:37 Dipsyhu 阅读(142) 评论(0) 推荐(0) 编辑
摘要: liunx 中断 先设置异常入口 异常向量 void __init trap_init(void) 构造了异常向量 vector_irq+offset 按下按键: cpu自动进入异常模式 注册中断 使用request_irq(irq,handler,flags,name,dev_id) { 分配一个 阅读全文
posted @ 2019-03-03 18:00 Dipsyhu 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 自动挂接根文件系统(直接从NFS启动) 修改uboot命令行 把 bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200 改为: set bootarges noinitrd root=/dev/nfs n 阅读全文
posted @ 2019-02-24 23:20 Dipsyhu 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 指针数组与数组指针 1.从字面意思来分析指针数组与数组指针 (1)指针数组的实质就是一个(数组),只是这个数组中存在的所有元素是指针变量。(指针数组与数组没有区别)(2)数组指针的实质是一个(指针),指针指向的是一个数组。 2.指针数组与数组指针表达式(1)int *p[5]; int (*p)[5 阅读全文
posted @ 2019-02-03 16:58 Dipsyhu 阅读(3543) 评论(1) 推荐(0) 编辑
摘要: 2440外部中断的使用 1、设置io为外部中断引脚 通过2440数据手册可以知道需要使用io的外部中断需要配置那些位 a、通过上面的表格可以看出,如果要使用io的外部中断需要把对应的位设置为10 例如:GPF0和GPF2这两个io需要使用外部中断 b、通过上面这个表格可以看出,需要设置外部中断的触发 阅读全文
posted @ 2018-04-07 22:08 Dipsyhu 阅读(352) 评论(0) 推荐(0) 编辑