代码改变世界

ARM-Linux移植之二

2013-01-31 17:19 by superlcc, 2822 阅读, 0 推荐, 收藏, 编辑
摘要:ARM-Linux内核移植之(二)——Linux2.6.22内核移植K-Style转载请注明来自于衡阳师范学院08电2 K-Style http://blog.csdn.net/ayangke,QQ:843308498 邮箱:yangkeemail@qq.com平台:mini2440 交叉工具链:arm-linux-gcc-4.3.2一、内核移植基本知识 移植内核也叫构建BSP(boardsupprot packet)。BSP的作用有两个:一是为内核运行提供底层支持,二是屏蔽与板相关的细节。 BSP的构建分三个层次 1、体系结构层次 对一些体系结提供linux内核支持,比如说ARM,X86等芯 阅读全文

linux iic分析

2013-01-30 14:24 by superlcc, 1112 阅读, 0 推荐, 收藏, 编辑
摘要:/* arch/arm/plat-samsung/include/plat/iic.h*/#ifndef __ASM_ARCH_IIC_H#define __ASM_ARCH_IIC_H __FILE__#define S3C_IICFLG_FILTER (1<<0) /* enable s3c2440 filter *//** * struct s3c2410_platform_i2c - Platform data for s3c I2C. * @bus_num: The bus number to use (if possible). * @flags: A... 阅读全文

位域结构体详细解析

2012-09-14 13:27 by superlcc, 382 阅读, 0 推荐, 收藏, 编辑
摘要:这一节,我们针对大家提出的有关定义寄存器结构体的问题进行解析。在NIOS II软件开发过程中,如果使用我们提出的寄存器操作方式的话,首先需要定义一个寄存器结构体,之所以这样做是为了在软件书写过程中操作方便,更是为了增强程序的可读性。我们就拿UART来举例说明。 首先,我们看一下UART的寄存器说明,如下表所示 我们通过上表可以看到,UART包括6个寄存器(由于最后一个寄存器一般不用,所以建立的结构体中没有加入它),假设基地址为0x00的话,那么他们的地址分别为0x00,0x01,0x02,0x03,0x04,0x05。也就是说,各个寄存器之间是存在顺序的。那么,在我们建立结构体过程中也要注意他 阅读全文

位域结构体详细解析

2012-09-13 10:59 by superlcc, 5462 阅读, 0 推荐, 收藏, 编辑
摘要:这一节,我们针对大家提出的有关定义寄存器结构体的问题进行解析。在NIOS II软件开发过程中,如果使用我们提出的寄存器操作方式的话,首先需要定义一个寄存器结构体,之所以这样做是为了在软件书写过程中操作方便,更是为了增强程序的可读性。我们就拿UART来举例说明。 首先,我们看一下UART的寄存器说明,如下表所示 我们通过上表可以看到,UART包括6个寄存器(由于最后一个寄存器一般不用,所以建立的结构体中没有加入它),假设基地址为0x00的话,那么他们的地址分别为0x00,0x01,0x02,0x03,0x04,0x05。也就是说,各个寄存器之间是存在顺序的。那么,在我们建立结构体过程中也要注意他 阅读全文

各种initcall的执行先后顺序(module_init、postcore_initcall、arch_initcall、subsys_initcall、 fs_initcall)

2012-09-12 16:00 by superlcc, 4198 阅读, 0 推荐, 收藏, 编辑
摘要:现在以module_init为例分析initcall在内核中的调用顺序在头文件init.h中,有如下定义:#define module_init(x) __initcall(x);很明显,module_init()只是一个面具而已,揭开这个面具,下面藏着的是__initcall()__initcall()又是何方神圣呢?继续揭露真相:#define __initcall(fn) device_initcall(fn)藏得真深,继续看:#define device_initcall(fn) __define_initcall("6",fn,6)#define __define 阅读全文

sysfs接口函数的建立_DEVICE_ATTR

2012-08-08 15:02 by superlcc, 23780 阅读, 0 推荐, 收藏, 编辑
摘要:sysfs接口函数到建立_DEVICE_ATTR最近在弄Sensor驱动,看过一个某厂家的成品驱动,里面实现的全都是sysfs接口,hal层利用sysfs生成的接口,对Sensor进行操作。说道sysfs接口,就不得不提到函数宏DEVICE_ATTR原型是#define DEVICE_ATTR(_name, _mode, _show, _store) \struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store)函数宏DEVICE_ATTR内封装的是__ATTR(_name,_mode,_show, 阅读全文

request_threaded_irq

2012-08-08 14:49 by superlcc, 2001 阅读, 0 推荐, 收藏, 编辑
摘要:Namerequest_threaded_irq — allocate an interrupt lineSynopsisintfsfuncrequest_threaded_irq(unsigned intirq,irq_handler_thandler,irq_handler_tthread_fn,unsigned longirqflags,const char *devname,void *dev_id);ArgumentsirqInterrupt line to allocatehandlerFunction to be called when the IRQ occurs. Prima 阅读全文

对Linux内核中进程上下文和中断上下文的理解

2012-08-07 15:02 by superlcc, 210 阅读, 0 推荐, 收藏, 编辑
摘要:作者:杨硕,华清远见嵌入式学院讲师。内核空间和用户空间是操作系统理论的基础之一,即内核功能模块运行在内核空间,而应用程序 运行在用户空间。现代的CPU都具有不同的操作模式,代表不同的级别,不同的级别具有不同的功能,在较低的级别中将禁止某些操作。Linux系统设计时利 用了这种硬件特性,使用了两个级别,最高级别和最低级别,内核运行在最高级别(内核态),这个级别可以进行所有操作,而应用程序运行在较低级别(用户 态),在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。内核态和用户态有自己的内存映射,即自己的地址空间。正是有了不同运行状态的划分,才有了上下文的概念。用户空间的应用程序,如 阅读全文

linux kernel api(好东西)

2012-08-07 14:23 by superlcc, 280 阅读, 0 推荐, 收藏, 编辑
摘要:http://www.gnugeneration.com/books/linux/2.6.20/kernel-api/ 阅读全文

关于内核编译

2012-08-07 13:46 by superlcc, 1261 阅读, 0 推荐, 收藏, 编辑
摘要:字体大小:大 中 小博文linux设备驱动归纳总结(一):内核的相关基础概念 (2012-07-19 16:42)标签: 转载 分类: linux内核与驱动原文地址:linux设备驱动归纳总结(一):内核的相关基础概念 作者:diytvgylinux设备驱动归纳总结(一):内核的相关基础概念xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一.linux设备驱动的作用内核:用于管理软硬件资源,并提供运行环境。如分配4G虚拟空间等。linux设备驱动:是连接硬件和内核之间的桥 阅读全文