摘要:
http://www.wowotech.net/linux_kenrel/dma_engine_api.html 补充 http://www.zhimengzhe.com/linux/259646.html Linux kernel scatterlist API介绍 http://www.wowo 阅读全文
随笔分类 - Linux内核
Linux内核源代码目录结构详解
2018-02-07 11:05 by nigaopeng, 363 阅读, 收藏,
摘要:
http://blog.csdn.net/u013014440/article/details/44024207 阅读全文
深入浅出down_interruptible
2018-02-07 11:03 by nigaopeng, 704 阅读, 收藏,
摘要:
http://blog.csdn.net/ce123_zhouwei/article/details/7547973 阅读全文
内核request_mem_region 和 ioremap的理解
2018-02-06 20:57 by nigaopeng, 389 阅读, 收藏,
摘要:
http://blog.csdn.net/skyflying2012/article/details/8672011 http://blog.csdn.net/decisiveness/article/details/45060931 阅读全文
访问IO设备
2018-02-06 17:21 by nigaopeng, 252 阅读, 收藏,
摘要:
http://blog.csdn.net/goodluckwhh/article/details/16986871 内存屏障主要解决的问题是编译器的优化和CPU的乱序执行。编译器在优化的时候,生成的汇编指令可能和c语言程序的执行顺序不一样,在需要 程序严格按照c语言顺序执行时,需要显式的告诉编译不需 阅读全文
关于Spinlock机制的一点思考
2017-11-17 13:42 by nigaopeng, 687 阅读, 收藏,
摘要:
存在两段代码同时在多核上执行的情况,这时候才需要一个真正的锁来宣告代码对资源的占有。 几个核可能会同时access临界区,这时的spinlock是如何实现的呢? 要用到CPU提供的一些特殊指令,对lock变量进行原子操作。 SMP中spin_lock的实现 实现在include/linux/spin 阅读全文
spinlock变量没有初始化
2017-11-16 20:01 by nigaopeng, 460 阅读, 收藏,
摘要:
http://blog.csdn.net/longwang155069/article/details/52224284 阅读全文
SPI总线协议介绍
2017-11-08 15:33 by nigaopeng, 242 阅读, 收藏,
摘要:
http://blog.csdn.net/ce123_zhouwei/article/details/6897293 https://www.cnblogs.com/yangguang-it/p/7111181.html 阅读全文
NorFlash、NandFlash、eMMC比较区别
2017-11-08 15:29 by nigaopeng, 2823 阅读, 收藏,
摘要:
快闪存储器(英语:Flash Memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器。这种科技主要用于一般性数据存储,以及在电脑与其他数字产品间交换传输数据,如储存卡与U盘。闪存是非易失性的存储器,所以单就保存数据而言, 它是不需要消耗电力的。 与硬盘相比,闪存也 阅读全文
modprobe lsmod
2017-11-08 15:22 by nigaopeng, 335 阅读, 收藏,
摘要:
modprobe是linux的一个命令,可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。 简介 简介 Linux命令:modprobe 。 功能说明:自动处理可载入模块。 阅读全文
obj-y,obj-m 区别
2017-11-08 15:21 by nigaopeng, 1795 阅读, 收藏,
摘要:
obj-y:把由foo.c 或者 foo.s 文件编译得到foo.o 并连接进内核.obj-m: 则表示该文件作为模块编译.除了y、m以外的obj-x 形式的目标都不会被编译。除了obj-形式的目标以外,还有lib-y library 库、hostprogs-y 主机程序。hello-objs := 阅读全文
linux initcall机制
2017-09-27 19:16 by nigaopeng, 651 阅读, 收藏,
摘要:
Linux系统启动过程很复杂,因为它既需要支持模块静态加载机制也要支持动态加载机制。模块动态加载机制给系统提供了极大的灵活性,驱动程序既可支持静态编译进内核,也可以支持动态加载机制。Linux系统中对设备和子系统的初始化在最后进行,主要过程可以用下图表示。 图1 进入子系统初始化时,在内核init进 阅读全文
linux时间管理 之 jiffies
2017-09-27 18:58 by nigaopeng, 2406 阅读, 收藏,
摘要:
1、jiffies 又称时钟滴答,是一个全局变量,它的值在系统引导的时候初始化为0,在时钟中断初始化完成后,每次时钟中断发生,在时钟中断处理例程中都会将jiffies的值 +1。 jiffies_64:为了解决jiffies溢出问题,更重要的是通过jiffies_64可以知道自开机以来的时间间隔。 阅读全文
IOCTL函数用法
2017-09-27 16:41 by nigaopeng, 4661 阅读, 收藏,
摘要:
一、ioctl的简介: 虽然在文件操作结构体"struct file_operations"中有很多对应的设备操作函数,但是有些命令是实在找不到对应的操作函数。如CD-ROM的驱动,想要一个弹出光驱的操作,这种操作并不是所有的字符设备都需要的,所以文件操作结构体也不会有对应的函数操作。 出于这样的原 阅读全文
内核request_mem_region 和 ioremap的理解
2017-09-21 10:33 by nigaopeng, 850 阅读, 收藏,
摘要:
几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为 阅读全文
request_irq() | 注册中断服务
2017-09-21 10:15 by nigaopeng, 24099 阅读, 收藏,
摘要:
一、中断注册方法 在linux内核中用于申请中断的函数是request_irq(),函数原型在Kernel/irq/manage.c中定义: int request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags 阅读全文
内核中的中断处理模型
2017-09-21 10:15 by nigaopeng, 714 阅读, 收藏,
摘要:
内核版本: Linux 2.6.19 Kernel中断处理模型结构图如下: 下面简单介绍一下: 1. Linux定义了名字为irq_desc的中断例程描述符表:(include/linux/irq.h) struct irqdesc irq_desc[NR_IRQS]; NR_IRQS表示中断源的数 阅读全文
linux中的阻塞机制及等待队列
2017-09-20 19:31 by nigaopeng, 686 阅读, 收藏,
摘要:
阻塞与非阻塞是设备访问的两种方式。驱动程序需要提供阻塞(等待队列,中断)和非阻塞方式(轮询,异步通知)访问设备。在写阻塞与非阻塞的驱动程序时,经常用到等待队列。 一、阻塞与非阻塞 阻塞调用是没有获得资源则挂起进程,被挂起的进程进入休眠状态,调用的函数只有在得到结果之后才返回,进程继续。 非阻塞是不能 阅读全文
access_ok | 检查用户空间内存块是否可用
2017-09-20 19:21 by nigaopeng, 923 阅读, 收藏,
摘要:
access_ok() 函数是用来代替老版本的 verify_area() 函数的。它的作用也是检查用户空间指针是否可用。函数原型:access_ok (type, addr, size);变量说明:type : 访问类型,其值可为 VERIFY_READ 或者 VERIFY_WRITE 。注意,V 阅读全文
浙公网安备 33010602011771号