发布时间:2012-12-18 14:25:39
在linux驱动中有一类杂散(misc)设备,其实他本质上还是字符设备,只是内核开发者对字符设备驱动模型做了进一步的封装。杂散设备的主设备号同意使用10,次设备号从0~256。下面来具体分析一下杂散设备的原理。
在内核代码linux/drivers/char/misc.c中我们可以看到这么一句subsys_initcall(misc_init);这说明在内核启动的时候会调用misc_init()函数,这个函数也在linux/drivers/char/misc.c文件中,它主要完成的功能是注册一......【阅读全文】
发布时间:2012-12-22 17:52:13
Linux下spi驱动开发(1)
一、概述
基于子系统去开发驱动程序已经是linux内核中普遍的做法了。前面写过基于I2C子系统的驱动开发。本文介绍另外一种常用总线SPI的开发方法。SPI子系统的开发和I2C有很多的相似性,大家可以对比学习。本主题分为两个部分叙述,第一部分介绍基于SPI子系统开发的理论框架;第二部分以华清远见教学平台FS_S5PC100上的M25P10芯片为例(内核版本2.6.29),编写一个SPI驱动程序实例。
二、SPI总线协议简介
介绍驱动开发前,需要先熟悉下SPI通讯协议中的几个关键的地方,后面在编写驱动时,需要考虑相关因素。
SPI总线由MISO(串行......【阅读全文】
发布时间:2012-12-21 10:14:10
在不同版本的内核源码上,头文件所在的位置是不同的,比如说在 #include<asm/arch/regs-gpio.h> #include<mach/regs-gpio.h> 同样是regs-gpio.h,<asm/arch/regs-gpio.h>是在比较低的版本(比如2.6.25)上位于arch/arm/include/asm中,而mach/regs-gpio.h则是位于arch/arm/mach-s3c2410/include/mach中,2.6.30版本的内核是这种结构,所以,要根据所采用的不同的版本内核来修改头文件的位置!俺就是照抄别人的......【阅读全文】
发布时间:2012-12-19 12:05:18
原文:
1)TEXT_OFFSET 内核在RAM中的起始位置相对于RAM起始地址偏移。值为0x00008000
./arch/arm/Makefile
111 textofs-y := 0x00008000
112 textofs-$(CONFIG_ARCH_CLPS711X) := 0x00028000
113 # We don't want the htc bootloader to corrupt kernel during resume
114 textofs-$(CONFIG_PM_H1940) := 0x00108000
115......【阅读全文】
发布时间:2012-12-18 15:56:28
关于do_initcalls函数的说明 - 嵌入式 分类: linux基础 2010-11-25 21:18 260人阅读 评论(0) 收藏 举报 1.在看linux核心代码的时候看到/init/main.c 里面的do_initcalls函数static void __init do_initcalls(void)742 {743 initcall_t *call;744 745 f......【阅读全文】