摘要:kpp.c---------------------------------------------#include <linux/kernel.h>#include <linux/module.h>#include <linux/fs.h>#include <linux/slab.h>#include <linux/init.h>#in...
阅读全文
随笔分类 - linux kernel
摘要:一、GPIO寄存器定义1.#define GPCON(x) __REG2(0x56000000, (x) * 0x10) 这句是定义2410的GPIO的控制寄存器,注意:__REG2的参数是寄存器的物理地址,这个物理地址经_REG2宏转换为虚拟地址,对照2410的手册可以得到一下对应关系:GPCON(1) ------ PORT A 0x56000000GPCON(2) ------ PORT B...
阅读全文
摘要:软件准备:gcc-3.2.2-5.i386.rpm :用来编译ncurses-5.6.tar.gz:用来配合make menuconfig 命令配置内核bison-2.4.tar.gz :语法解析器flex-2.5.35.tar.bz2 :词法解析器m4-1.4.9.tar.gz: modutils-2.4.26.tar.bz2 : module-init-tools-3.2.2.tar.bz2:...
阅读全文
摘要:0.包含头文件:#include <linux/timer.h>1.定义时间结构体变量:static struct timer_list kbd_timer;2.初始化时间结构体变量:init_timer(&kbd_timer);3.指定定时器超时服务函数:void kbd_timer_handler(unsigned long){...}kbd_timer.funciton ...
阅读全文
摘要:软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。很多情况下,软中断和"信号"有些类似,同时,软中断又是和硬中断相对应的,"硬中断是外部设备对CPU的中断","软中断通常是硬中断服务程序对内核的中断","信号则是由内核(或其他进程)对某个进程的中断"(《Linux内核源代码情景分析》第三章)。软中断的一种典型应用就是所谓的"下半部"(bottom half),它的得名来自于将硬件中断处理分离成"上半部"和"下半部"两个阶段的机制:上半部在屏蔽中断的上下文中运行,用于完成关键性的处理动作;而下半部则相对来说并不是非常紧急的,通常还是比较耗时的,因此由系统自行安排运行时机,不在中断服务上下文中执行。bottom half的应用也是激励内核发展出目前的软中断机制的原因,因此,我们先从bottom half的实现开始。
阅读全文
摘要:信号量的API有:DECLARE_MUTEX(name) 该宏声明一个信号量name并初始化它的值为0,即声明一个互斥锁。DECLARE_MUTEX_LOCKED(name) 该宏声明一个互斥锁name,但把它的初始值设置为0,即锁在创建时就处在已锁状态。因此对于这种锁,一般是先释放后获得。void sema_init (struct semaphore *sem, int val); ...
阅读全文
摘要:一、内核裁减与编译1、安装make ,gcc, make-kpkg,运行menuconfig等等和编译内核相关的工具。安装命令如下$sudo apt-get install build-essential kernel-package libncurses5-dev如果无法安装请检查/etc/apt/sources.list2、解压源代码可以解压到任意目录,我们在这里解压到/usr/srctar ...
阅读全文
摘要:本文详细的介绍了Linux内核中的同步机制:原子操作、信号量、读写信号量和自旋锁的API,使用要求以及一些典型示例
阅读全文


浙公网安备 33010602011771号