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