- 博客(17)
- 资源 (11)
- 收藏
- 关注
转载 linux分配内存
一、kmalloc函数内幕 kmalloc的使用已经比较熟悉了,它的函数原型是: 1: #include 2: void *kmalloc(size_t size, int flags);其中size表示要分配的块的大小, flags是分配标志。下面分别详细说明这两个参数: * size参数 实际上内核能分配的最小内存大小不是任意的,而
2013-08-30 09:56:07 830
转载 linux设备和驱动加载的先后顺序
Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢。Linux系统使用两种方式去加载系统中的模块:动态和静态。静态加载:将所有模块的程序编译到Linux内核中,由do_initcall函数加载核心进程(/init/main.c)kernel_inità do_basic_setup()àdo_initcalls()该函数中会将在_
2013-08-29 16:52:10 1399
转载 Linux 设备和驱动加载的先后顺序
Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢。Linux系统使用两种方式去加载系统中的模块:动态和静态。静态加载:将所有模块的程序编译到Linux内核中,由do_initcall函数加载核心进程(/init/main.c)kernel_inità do_basic_setup()àdo_initcalls()该函数中会将在_
2013-08-29 16:49:34 639
转载 FLV文件格式解析
FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与Flash Player紧密的结合,使得网页播放FLV视频轻而易举,也是FLV流行的原因之一。 FLV视频格式是Adobe公司设计开发的,目前已经免费开放,现在的版本是v10。下面我们
2013-08-26 16:57:21 1095
转载 FLV视频封装格式详解
简介: FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与Flash Player紧密的结合,使得网页播放FLV视频轻而易举,也是FLV流行的原因之一。可以通过Adobe公司的RTMP(Real Time Messaging Pr
2013-08-23 17:03:59 6144 2
转载 总线地址、物理地址、虚拟地址相关概念澄清
Now, on normal PCs the bus address is exactly the same as the physicaladdress, and things are very simple indeed. However, they are that simplebecause the memory and the devices share the same address
2013-08-21 17:55:34 1169
转载 异步通知fasync
linux设备驱动归纳总结(三):7.异步通知fasyncxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx异步通知fasync是应用于系统调用signal和sigaction函数,下面我会使用signal函数。简单的说,signal函数就是让一个信
2013-08-21 14:56:51 723
转载 Linux设备驱动之Ioctl控制
Linux设备驱动之Ioctl控制 大部分驱动除了需要具备读写设备的能力之外,还需要具备对硬件控制的能力。 一、在用户空间,使用ioctl系统调用来控制设备,原型如下:int ioctl(int fd,unsigned long cmd,...);/*fd:文件描述符cmd:控制命令...:可选参数:插入*argp,具体内容依赖于cmd*/ 用户程
2013-08-20 10:31:34 759
转载 linux-2.6.26内核中ARM中断实现详解(1)
看了一些网络上关于linux中断实现的文章,感觉有一些写的非常好,在这里首先感谢他们的无私付出,然后也想再补充自己对一些问题的理解。先从函数注册引出问题吧。一、中断注册方法在linux内核中用于申请中断的函数是request_irq(),函数原型在Kernel/irq/manage.c中定义:int request_irq(unsigned int irq, irq_han
2013-08-19 16:43:04 752
转载 linux之DMA动态映射指南
DMA动态映射指南translated by JHJ(jianghuijun211@gmail.com)本文通过伪代码指导驱动开发者如何正确使用DMA API。关于API更精确的描述,请参考DMA-API.txt。大多是64位平台有一些特殊硬件可以将总线地址(DMA地址)转换为物理地址。这个和CPU如何利用页表或TLB将虚拟地址转换成物理地址有点像。这种地址转换是有必要的,
2013-08-13 15:40:50 7212 1
转载 [内存管理] linux kernel内存映射实例分析
引子现在android智能手机市场异常火热,硬件升级非常迅猛,arm cortex A9 + 1GB DDR似乎已经跟不上主流配置了。虽说硬件是王道,可我们还是不禁还怀疑这么强大的硬件配置得到充分利用了吗?因此以后我都会正对ARM平台分析kernel的内容。 正文在linux内存管理中,有两个资源非常重要,一个是虚拟地址,一个是物理地址。听起来似乎是废话,实际上内存管理主要
2013-08-09 12:01:41 2201
转载 Linux内存管理之mmap详解
Linux内存管理之mmap详解一. mmap系统调用1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作
2013-08-08 14:14:22 798
转载 旧方式映射
#include #include #include #include #include #include #include #include #include #include #include #include #include #define SHARE_MEM_COUNT 4#define SHARE_MEM_SIZE (PAGE_SIZE*SHARE_MEM_
2013-08-08 09:31:49 705
转载 内存映射nopage()
struct vm_operations_struct①在2.6.23之前struct vm_operations_struct中只有struct page * (*nopage)(struct vm_area_struct * area, unsigned long address, int *type)从2.6.24后在struct vm_operations_st
2013-08-08 09:26:07 4343 2
转载 Linux设备驱动之内存映射
1. 内存映射所谓的内存映射就是把物理内存映射到进程的地址空间之内,这些应用程序就可以直接使用输入输出的地址空间,从而提高读写的效率。Linux提供了mmap()函数,用来映射物理内存。在驱动程序中,应用程序以设备文件为对象,调用mmap()函数,内核进行内存映射的准备工作,生成vm_area_struct结构体,然后调用设备驱动程序中定义的mmap函数。 2. 映
2013-08-07 16:02:33 816
转载 vm_area_struct (vm_pgoff没看懂)
原文:http://blog.csdn.net/ywf861029/article/details/6114794Linux内核中,关于虚存管理的最基本的管理单元应该是struct vm_area_struct了,它描述的是一段连续的、具有相同访问属性的虚存空间,该虚存空间的大小为物理内存页面的整数倍。 下面是struct vm_area_struct结构体的定义
2013-08-07 14:19:12 7580
转载 linux 内存映射 remap_pfn_range操作
mmap 理解的总不是太好,又做了一个读写例子,大部分都是在网找的源代码#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #i
2013-08-06 10:14:55 5618 1
lcd驱动更改,不太详细
2010-05-19
Windows驱动编程基础教程.doc
2010-05-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人