2020年5月15日
摘要: 中断机制的下半部实现机制:软中断、tasklet、工作队列。 软中断 软中断适用于像网络这样性能要求非常高的情况使用,可以再所有处理器上执行,两个类型相同的软中断有可能被同时执行。 软中断在编译期间必须进行静态注册。 软中断使用的比较少; 软中断对时间要求比较严格,对加锁要求高。 如果需要扩展到多处 阅读全文
posted @ 2020-05-15 17:27 裸睡的猪 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 1. 概念 ioctl 是设备驱动程序中设备控制接口函数,一个字符设备驱动通常会实现设备打开、关闭、读、写等功能,在一些需要细分的情境下,如果需要扩展新的功能,通常以增设 ioctl() 命令的方式实现。 在文件 I/O 中,ioctl 扮演着重要角色,本文将以驱动开发为侧重点,从用户空间到内核空间 阅读全文
posted @ 2020-05-15 16:33 裸睡的猪 阅读(711) 评论(0) 推荐(0) 编辑
摘要: 杂项设备 linux里面的misc杂项设备是主设备号为10的驱动设备 定义头文件<linux/miscdevice.h> 杂项设备的结构体: struct miscdevice{ int minor; //杂项设备的此设备号(如果设置为MISC_DYNAMIC_MINOR,表示系统自动分配未使用的m 阅读全文
posted @ 2020-05-15 14:43 裸睡的猪 阅读(6239) 评论(0) 推荐(0) 编辑
摘要: C 库函数 - sscanf() C 标准库 - <stdio.h> 描述 C 库函数 int sscanf(const char *str, const char *format, ...) 从字符串读取格式化输入。 参数 str -- 这是 C 字符串,是函数检索数据的源。 format -- 阅读全文
posted @ 2020-05-15 14:06 裸睡的猪 阅读(683) 评论(0) 推荐(0) 编辑
摘要: 一.main()函数参数通常我们在写主函数时都是void main()或int main() {..return 0;},但ANSI-C(美国国家标准协会,C的第一个标准ANSI发布)在C89/C99中main()函数主要形式为:(1).int main(void)(2).int main(int 阅读全文
posted @ 2020-05-15 13:50 裸睡的猪 阅读(513) 评论(0) 推荐(0) 编辑
摘要: copy_from_user copy_from_user函数的目的是从用户空间拷贝数据到内核空间,失败返回没有被拷贝的字节数,成功返回0. copy_from_user(void *to, const void __user *from, unsigned long n) 1. @*to 将数据拷 阅读全文
posted @ 2020-05-15 13:45 裸睡的猪 阅读(821) 评论(0) 推荐(0) 编辑
摘要: 一、 ioremap() 函数基础概念 几乎每一种外设都是通过读写设备上的相关寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: a -- I/O 映射方式(I/O-mapped) 典型地,如X 阅读全文
posted @ 2020-05-15 11:20 裸睡的猪 阅读(13350) 评论(0) 推荐(2) 编辑
摘要: kmalloc 函数原型: void *kmalloc(size_t size, gfp_t flags); kmalloc() 申请的内存位于物理内存映射区域,而且在物理上也是连续的,它们与真实的物理地址只有一个固定的偏移,因为存在较简单的转换关系,所以对申请的内存大小有限制,不能超过128KB。 阅读全文
posted @ 2020-05-15 11:09 裸睡的猪 阅读(803) 评论(0) 推荐(1) 编辑
摘要: 一、sprintf() 头文件:#include <stdio.h>作用:将一个格式化的字符串输出到一个目的字符串中,原型:int sprintf(char *str, char * format [, argument, ...]);参数:str为要写入的字符串;format为格式化字符串,与pr 阅读全文
posted @ 2020-05-15 10:51 裸睡的猪 阅读(6960) 评论(0) 推荐(0) 编辑
摘要: 1. memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组, c:是赋给buffer的值, count:是buffer的长度. 这个函数在socket中多用于清空数组.如:原型是memset(b 阅读全文
posted @ 2020-05-15 10:08 裸睡的猪 阅读(521) 评论(0) 推荐(0) 编辑