上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 45 下一页

2011年7月7日

摘要: Linux下进程通信的八种方法:管道(pipe),命名管道(FIFO),内存映射(mapped memeory),消息队列(message queue),共享内存(shared memory),信号量(semaphore),信号(signal),套接字(Socket).(1) 管道(pipe):管道允许一个进程和另一个与它有共同祖先的进程之间进行通信;(2) 命名管道(FIFO):类似于管道,但是它可以用于任何两个进程之间的通信,命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建;(3) 信号(signal):信号是比较复杂的通信方式,用于通知接收进程 阅读全文
posted @ 2011-07-07 21:55 yming0221 阅读(163) 评论(0) 推荐(0)
摘要: 1.Buddy算法linux对空闲内存空间管理采取buddy算法,Buddy算法:把内存中所有页面按照2^n划分,其中n=0~5,每个内存空间按1个页面、2个页面、4个页面、8个页面、16个页面、32个页面进行六次划分。划分后形成了大小不等的存储块,称为页面块,简称页块,包含一个页面的页块称为1页块,包含2个页面的称为2页块,依次类推。每种页块按前后顺序两两结合成一对Buddy“伙伴”。系统按照Buddy关系把具有相同大小的空闲页面块组成页块组,即1页块组、2页块组……32页块组。 每个页块组用一个双向循环链表进行管理,共有6个链表,分别为1、2、4、8、16、32页块链表。分别挂到free_ 阅读全文
posted @ 2011-07-07 21:41 yming0221 阅读(303) 评论(0) 推荐(0)
摘要: 1.原理Linux的伙伴算法把所有的空闲页面分为10个块组,每组中块的大小是2的幂次方个页面,例如,第0组中块的大小都为20(1个页面),第1组中块的大小为都为21(2个页面),第9组中块的大小都为29(512个页面)。也就是说,每一组中块的大小是相同的,且这同样大小的块形成一个链表。我们通过一个简单的例子来说明该算法的工作原理。假设要求分配的块其大小为128个页面(由多个页面组成的块我们就叫做页面块)。该算法先在块大小为128个页面的链表中查找,看是否有这样一个空闲块。如果有,就直接分配;如果没有,该算法会查找下一个更大的块,具体地说,就是在块大小为256个页面的链表中查找一个空闲块。如果存 阅读全文
posted @ 2011-07-07 21:33 yming0221 阅读(139) 评论(0) 推荐(0)

2011年7月6日

摘要: 首先介绍一下注册一个驱动的步骤:1、定义一个platform_driver结构2、初始化这个结构,指定其probe、remove等函数,并初始化其中的driver变量3、实现其probe、remove等函数看platform_driver结构,定义于include/linux/platform_device.h文件中:structplatform_driver{int(*probe)(structplatform_device*);int(*remove)(structplatform_device*);void(*shutdown)(structplatform_device*);int(* 阅读全文
posted @ 2011-07-06 20:42 yming0221 阅读(481) 评论(0) 推荐(0)

2011年7月4日

摘要: 硬件平台:FL2440(S3C2440)内核版本:Linux 2.6.28主机平台:Ubuntu 11.04内核版本:Linux 2.6.39交叉编译器版本:arm-linux-gcc 3.4.1原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/65842851、实时时钟概述实时时钟(RTC)单元可以在断电的情况下使用纽扣电池继续计时工作。RTC使用STRB/LDRB ARM操作传输二进制码十进制数的8位数据给CPU。其中的数据包括秒、分、时、日期、天、月、年的时间信息。可以执行报警功能。2、实时时钟操作下面是RTC模块的电路 阅读全文
posted @ 2011-07-04 22:18 yming0221 阅读(577) 评论(0) 推荐(0)
摘要: 为了方便大家和自己查看,这里转载自:http://hbhuanggang.cublog.cn一、开发环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand, Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2二、相关概念1、平台设备:通常在Linux中,把SoC系统中集成的独立外设单元(如:I2C、IIS、RTC、看门狗等)都被当作平台设备来处理。在Linux中用platform_device结构体来描述一个平台设备,在2.6.30.4内核中定义在:include/linux/platform_device.h中,如下:struct 阅读全文
posted @ 2011-07-04 21:29 yming0221 阅读(225) 评论(0) 推荐(0)
摘要: 硬件平台:FL2440内核版本:2.6.28主机平台:Ubuntu 11.04内核版本:2.6.39原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6584285首先修改内核源码/arch/arm/mach-s3c2410/mach-smdk2410.c添加红色字体部分static struct platform_device *smdk2410_devices[] __initdata = { &s3c_device_usb, &s3c_device_lcd, &s3c_device_wdt, &a 阅读全文
posted @ 2011-07-04 20:24 yming0221 阅读(550) 评论(0) 推荐(0)
摘要: 自己编译新的内核后安装完毕vmware 7.1.4后启动编译模块的时候提示如下错误Logging to /tmp/vmware-root/setup-3155.logERROR: modinfo: could not find module vmmonERROR: modinfo: could not find module vmnetERROR: modinfo: could not find module vmblockERROR: modinfo: could not find module vmciERROR: modinfo: could not find module vsockE 阅读全文
posted @ 2011-07-04 13:57 yming0221 阅读(242) 评论(0) 推荐(0)

2011年7月3日

摘要: 原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6581719持续更新中.......ubuntu下在连接arm开发板的情况下,使用无线网卡上网设置基于S3C2440的busybox的移植 yaffs根文件系统制作FL2440下触摸屏校准Mplayer的移植ARM 开发板 NAND FLASH空间不足解决方法关于vmlinux,vmlinuz,bzImage,zImage的区别和联系U-boot编译出错-软浮点编译错误ARM-Linux 内核移植--基于FL2440开发板(修改为Linux单系统)Partially writ 阅读全文
posted @ 2011-07-03 13:06 yming0221 阅读(129) 评论(0) 推荐(0)
摘要: 以下是原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6581715持续更新......通过IO端口读取外部数据,带中断s3c2410_gpio_cfgpin函数解析控制IO端口 s3c2410_gpio_setpin()的使用Linux 驱动--ADC驱动ARM-Linux驱动--ADC驱动(中断方式)S3C2440上touchscreen触摸屏驱动ARM-Linux驱动-触摸屏驱动分析S3C2440上RTC时钟驱动开发实例讲解ARM-Linux驱动--RTC(实时时钟)驱动分析ARM-Linux驱动--Watch Dog 阅读全文
posted @ 2011-07-03 12:58 yming0221 阅读(164) 评论(0) 推荐(0)
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 45 下一页

导航