摘要:
相对于上一篇测试程序CMA连续物理内存用户空间映射---(一)
增加功能:
1、分配和映射统一放在IOCTL,一次完成,可以连续多次分配并映射到用户空间,提高操作性;
2、驱动增加链表,使分配的多块内存在链表中管理,方便添加删除;
3、增加内存释放和解除映射;
4、使用rmmod删除驱动模块时,将释放所有内存;
映射流程:
1、用户通过IOCTL分配大小传给驱动ioctl-...
分类:
其他好文 时间:
2014-07-18 11:09:20
阅读次数:
386
http://www.xenomai.org/index.php/Xenomai:Roadmap
Xenomai最开始的理念就是提供一套方案来解决传统的实时API在Linux上的移植问题。目前已经支持了多平台和对多个OS的对应。
目前的版本是Xenomai2,主要是实现了用户态下的实时支持。
包括POSIX 1003.1b和原生Xenomai skin的支持以及内核下的RTDM(实时驱动模块...
分类:
其他好文 时间:
2014-07-14 17:42:17
阅读次数:
275
Linux 2.4版本的内核之前,Nginx的事件驱动方式是使用的poll、select函数。进程需要等待连接上有事件发生(收到数据)时,需要把所有连接都告诉内核,由内核找出哪些连接上有事件发生。由于需要把大量连接从用户空间拷贝到内核空间,所以开销巨大,因此,使用poll、select事件驱动方式,最大并发数量只能达到几千。Linux 2.6版本之后添加了epoll函数接口,使得最大并发数量可以达...
分类:
其他好文 时间:
2014-07-13 17:27:34
阅读次数:
311
不同的操作系统对应不同的事件驱动机制,在Linux 2.6之后使用epoll机制,对应的事件驱动模块是ngx_epoll_module。Nginx的ngx_event_core_module模块根据操作系统确定使用哪一个事件驱动模块。事件驱动模块在ngx_module_t的ctx通用接口是ngx_event_module_t,定义如下所示:
typedef struct {
ngx_st...
分类:
其他好文 时间:
2014-07-09 12:01:13
阅读次数:
230
在使用linux的ramoops驱动模块时,在编译完加载时,会发现驱动加载不成功。明明直接使用的内核代码,为什么会出现这样的情况呢?
首先看一下ramoops的初始化代码:
180 static int __init ramoops_init(void)
181 {
182 return platform_driver_probe(&ramoops_driver, ramoops_pr...
分类:
其他好文 时间:
2014-07-04 00:24:28
阅读次数:
761
“helloworld”驱动实现过程(ARM板上)
1、 在/home/sxy/目录下新建hello_1文件夹,在此文件夹下编写hello.c和Makefile文件(假设已经编写好了),make生成模块文件;
PS:hello.ko就是用于需要使用的驱动模块。
hello.c代码:
Makefile代码:
注意Makefile文件中的黑色填充部分:
①选择交叉编译器...
分类:
其他好文 时间:
2014-06-03 04:45:00
阅读次数:
238
说明 本文通过目录和代码两个层面分析某产品xDsl驱动模块代码,将其精简为原始代码量的2%。一
完整代码 某产品xDsl驱动模块目录结构如下所示。其中,二级目录Lxx1通常为芯片厂家代码,Lxx2为自定义适配代码。 ├─L010 │ ├─include │
└─source ├─L020...
分类:
其他好文 时间:
2014-05-29 20:14:51
阅读次数:
309
KERNELDIR
=/home/wenhao/platform/linux-2.6.34PWD := $(shell pwd)CROSS_COMPILE =
/usr/local/arm/4.3.2/bin/arm-linux-CC = $(CROSS_COMPILE)gccobj-m := ke...
分类:
系统相关 时间:
2014-05-21 19:30:10
阅读次数:
292
一:wifi驱动模块加载
在hardware/libhardware_legacy/wifi/wifi.c调用函数
WIFI_DRIVER_MODULE_ARG := "firmware_path=/etc/wifi/40181/fw_bcm40181a2.bin nvram_path=/etc/wifi/40181/nvram.txt"
insmod(DRIVER_MODULE_PAT...
分类:
其他好文 时间:
2014-05-08 16:22:22
阅读次数:
450
2014.04.28module 首测1)环境:Centos release 6.5 (Final)
kernel:
2.6.32-358.23.2.e16.centos.plus.i6862)源文件及Makefile源文件:是一个入门的Hello.c文件,网上到处可以找得到。Makefile...
分类:
系统相关 时间:
2014-04-29 17:25:50
阅读次数:
634