-
[综合] ifconfig 的简单实现
一般,用户在shell中使用ifconfig命令对网络接口进行参数配置,及接口的打开,关闭等操作。ifconfig实现网络接口配置的原理在于代表网络接口的结构体structnet_device的成员ip_ptr。前文已经讲过,ip_ptr实际指向的是一个结构体structin_device,in_d...
4
热度 -
[综合] ifconfig 源码分析
intmain(intargc,char**argv){……argc--;argv++;while(argc&&*argv[0]=='-') { ……}打开内核支持的所有协议的套接字,主要是一个循环调用socket的过程if((skfd=sockets_open(0))<0) ...
68
热度 -
[综合] Linux网络协议栈之网络设备管理
成都的天气好像越来越好了,前几天还穿着穿着外套直打哆嗦,到今天已经“拨开阴云见太阳”,暖洋洋的,心情也暖洋洋的。暖和的正好想睡觉。打个呵欠,把网络设备管理这部份总结下吧。 Linux素以优秀的网络管理能力而著称,linux为何具有这么高的效率?我们从网络设备的管理说起。 Linux为何要对网络设备单...
11
热度 -
74
热度 -
[综合] linux2.6内核 list_head结构分析
一、链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链...
30
热度 -
[综合] memcpy() -- 拷贝内存内容
memcpy()--拷贝内存内容 2007年07月06日星期五09:07 相关函数:bcopy(),memccpy(),memmove(),strcpy(),strncpy()表头文件:#include<string.h>定义函数:void*memcpy(void*des...
34
热度 -
[综合] Android 架构解析及驱动 键盘篇
--作者:老树--发布时间:2010-6-215:01:19--Android架构解析及驱动键盘篇 一、用户空间 ADROID2.1架构解析7键盘以上链接,详细介绍了Android用户空间按键的操作,最终通过不断轮询所有设备,直到读取有POLLIN事件产生的设备状态:if(mFDs[i].reven...
68
热度 -
[综合] linux spi子系统 驱动分析续
上文从下到上的介绍了spi子系统,现在反过来从上到下的来介绍spi子系统的使用:intspi_register_driver(structspi_driver*sdrv){ sdrv->driver.bus=&spi_bus_type;if(sdrv->probe)sdrv-&g...
99
热度 -
[综合] Linux 2.6下SPI设备模型--------基于AT91RM9200分析
Linux2.6下SPI设备模型--------基于AT91RM9200分析Atmel公司的ARMAT系列,其SPI驱动在kernel2.6.23里已经包含。如果你打了at91-patch补丁的话,则在内核配置时要小心。在DeviceDrivers---->Characterdevices--...
17
热度 -
[综合] 开关功率mos管介绍
在使用MOS管设计开关电源或者马达驱动电路的时候,大部分人都会考虑MOS的导通电阻,最大电压等,最大电流等,也有很多人仅仅考虑这些因素。这样的电路也许是可以工作的,但并不是优秀的,作为正式的产品设计也是不允许的。下面是我对MOSFET及MOSFET驱动电路基础的一点总结,其中参考了一些资料,非全部原...
38
热度 -
[综合] Porting Guide of Android Power to Marvell 2.6.24
正在作基于Marvell9xx的Android平台,因为平台内核为2.6.24,而Android1.0Release的是2.6.25.Androidpower本对于系统来说是可选的,但为了更好的体现Android的设计思想和理念以及UIExperience,AndroidPower一定要enable...
85
热度 -
[综合] Android电源管理概念
Android电源管理一、相关概念1.出于节电的需要,一般应用在用户一段时间无操作的情况下屏幕变暗,然后进后休眠状态2.用户只能在”设置->声音和显示”中设置所有应用默认的屏幕亮度和进行待机的时间3.电源管理的实现分内核应用两部分,通过下面介绍的接口,我们可以设置应用程序的电源管理,以控制与其...
95
热度 -
[综合] 老手经验谈:Linux驱动程序开发学习步骤
1.学会写简单的makefile 2.编一应用程序,可以用makefile跑起来 3.学会写驱动的makefile 4.写一简单char驱动,makefile编译通过,可以insmod,lsmod,rmmod.在驱动的init函数里打印helloworld,insmod后应该能够通过dmesg...
24
热度 -
[综合] platform_device的注册过程分析
《Linux设备驱动程序》的linux设备模型章中说到设备模型中,所有设备都通过总线相连。添加设备devA,必须指定其device结构体的bus_type域,初始化其他域,然后调用device_register(&devA),将设备devA注册到指定总线。添加该设备驱动driverA,也必须...
47
热度 -
[综合] linux2.6中的工作队列接口 workqueue_struct
工作队列接口 工作队列接口是在2.5的开发过程中引入的,用于取代任务队列接口(用于调度内核任务)。每个工作队列有一个专门的线程,所有来自运行队列的任务在进程的上下文中运行(这样它们可以休眠)。驱动程序可以创建并使用它们自己的工作队列,或者使用内核的一个工作队列。工作队列用以下方式创建: struct...
2
热度 -
57
热度 -
[综合] Linux工作队列的使用
Linux工作队列是一种把工作推后执行的机制。推后的工作交由一个内核线程去执行,因此工作队列的优势就在于它允许重新调度甚至睡眠。使用工作队列的流程:主要有两种,一种使用内核缺省的队列,一种是我们自己创建一个工作队列。对于默认缺省的工作队列,如果工作队列负载太重,执行效率会很低。下面是自己创建的工作队...
59
热度 -
[综合] Linux 工作队列
工作队列(workqueue)是另外一种将工作推后执行的形式,它和我们前面讨论的所有其他形式都有不同。工作队列可以把工作推后,交由一个内核线程去执行,也就是说,这个下半部分可以在进程上下文中执行。这样,通过工作队列执行的代码能占尽进程上下文的所有优势。最重要的就是工作队列允许被重新调度甚至是睡眠。 ...
97
热度 -
[综合] Linux 进程调度原理
进程调度依据调度程序运行时,要在所有可运行状态的进程中选择最值得运行的进程投入运行。选择进程的依据是什么呢?在每个进程的task_struct结构中有以下四项:policy、priority、counter、rt_priority。这四项是选择进程的依据。其中,policy是进程的调度策略,用来区分...
17
热度 -
[综合] globalfifo精彩问答
自己在看globalfifo驱动的时候看得不是很明白,有些地方没搞懂,今天有幸看到论坛上一个帖子,把我没搞懂的都搞懂了,摘录下来供参考! =============================我是分割线============================== LZ: /...
18
热度