lv14专题

【lv14 day10内核模块参数传递和依赖】

一、模块传参 module_param(name,type,perm);//将指定的全局变量设置成模块参数 /* name:全局变量名 type: 使用符号 实际类型 传参方式 bool bool insmod xxx.ko 变量名=0 或 1 invbool bool insmod xxx.ko 变量名=0 或 1 charp char * insmod xxx.ko 变量名=“字符串内容”

lv14 led驱动设备树版本 13

led驱动代码中无法给其他开发板重用,编程依据不清晰,如下,修改后尽量在代码中不直接修改寄存器。 把编程依据写到设备树中 一、起源 减少垃圾代码 减轻驱动开发工作量 驱动代码和设备信息分离 参考Open Fireware设计 用来记录硬件平台中各种硬件设备的属性信息 二、基本组成 设备树文件一共两种源文件: xxxxx.dts dts是device tree so

lv14 内核内存管理、动态分频及IO访问 12

一、内核内存管理框架 内核将物理内存等分成N块4KB,称之为一页,每页都用一个struct page来表示,采用伙伴关系算法维护 补充: Linux内存管理采用了虚拟内存机制,这个机制可以在内存有限的情况下提供更多可用的内存空间。每个进程都有自己独立的虚拟地址空间,应用程序只能访问自己的地址空间,而不能直接访问其他进程的地址空间或内核空间。 当应用程序需要访问某些数据时,它会使用虚拟地址来

lv14 内核定时器 11

一、时钟中断 硬件有一个时钟装置,该装置每隔一定时间发出一个时钟中断(称为一次时钟嘀嗒-tick),对应的中断处理程序就将全局变量jiffies_64加1 jiffies_64 是一个全局64位整型, jiffies全局变量为其低32位的全局变量,程序中一般用jiffies HZ:可配置的宏,表示1秒钟产生的时钟中断次数,一般设为100或200 二、延时机制 短延迟:忙等待 1.

lv14 多路复用及信号驱动 8

1 多路复用 描述符: 文件描述符:设备文件、管道文件 socket描述符 1.1 应用层:三套接口select、poll、epoll select:位运算实现 监控的描述符数量有限(32位机1024,64位机2048,监控对象有限) 效率差 poll:链表实现,监控的描述符数量不限 效率差 epoll:效率最高,监控的描述符数量不限 select int select(