嵌入式Linux中文站

Linux 系统错误码及其说明

阅读(75)

#defineEPERM 1/* Operation not permitted */ #defineENOENT 2/* No such file or directory */ #defineESRCH 3/* No such process */ #defineEINTR 4/* Interrupted system call */ #defineEIO 5/* I/O error */ #defineENXIO 6/* No such device or address */ #defineE2B

linux 用户空间与内核空间——高端内存详解

阅读(276)

摘要:Linux 操作系统和驱动程序运行在 内核空间 ,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。用户空间的内存映射采用段页式,而内核空间有自己的规则;本文旨在探讨内核空间的地址映射。 Linux内核地址空间划分 通常 32位Linux内核虚拟 地址空间 划分0~3G为用户空间, 3~4G为内核空间(注意,内核可以使用的线性地址只有1G) 。注意这里是32位内核地址空间划分,6

Linux/Unix ulimit命令详解

阅读(210)

Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数 可以用ulimit -a 来显示当前的各种用户进程限制。 下面我把某linux用户的最大进程数设为10000个: ulimit -u 10240 对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言, 最好通过使用 ulimit -n xx 修改每个进程可打开的文件数,缺省值是 1024。 ulimit -n 4096 将每个进程可以打开的文件数目加大到4096,

Linux安装ARM交叉编译器步骤

阅读(249)

安装交叉编译环境 ==================================== gcc是linux环境下的asm和c语言编译器,生成的是可以在x86平台上运行的可执行程序; 而在开发板上运行的程序则需要arm平台专用的编译器,也称为交叉编译器; 交叉编译器可以由开发人员手工定制,也可用使用别人已经编译好的,比如arm-linux-gcc; (1)安装交叉编译器 ---------------------- $cd /home/zhang/tools/ $tar xzvf crosstools-

linux启动优化:mdev -s

阅读(68)

linux启动优化:mdev -s自从创建节点,启动时间比较长 标签: linux 优化 mdev it 分类: 工作中遇到的问题 转载请说明出处:http://control.blog.sina.com.cn/admin/article/article_add.php 近期工作中遇到的问题如下: linux启动后加载根文件系统时,会停留时间很久,跟人一种死机的感觉,于是老大要求优化linux的启动时间。 先第一步做的是给linux内核启动加上时间戳,方法:配置linux内核 make menuconfi

写linux驱动程序的步骤

阅读(83)

第一步:建立Linux驱动的骨架 linux内核使用驱动时候,需要先初始化,包括建立设备文件,分配内存地址空间等,退出的时候要释放资源,删除设备文件,释放内存地址空间等。所以在linux驱动中需要提供两个函数来分别处理驱动初始化和退出的工作,这两个函数分别用module_init和module_exit宏来指定,linux驱动一般都需要指定这两个函数,所以linux驱动有一个C文件,文件中包含处理驱动初始化和退出的函数,以及指定这两个函数的module_init和module_exit宏. 第二步:注册和

Linux中readl和writel函数的使用方法

阅读(301)

readX/writeX() are used to access memory mapped devices. On some * architectures the memory mapped IO stuff needs to be accessed * differently. On the simple architectures, we just read/write the * memory location directly. writel() 往内存映射的 I/O 空间上写数据,wirt

对于linux下system()函数的深度理解

阅读(194)

这 几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为是其他的代码影响到这个,或是内核驱动文件系统什么的异常导致,昨天有出现了这个问题,就随手百了一下度,问题出现了,很多人都说system()函数要慎用要少用要能不用则不用,system()函数不稳定? 下面对system函数做一个简单的介绍: 头文件 #i nclude 定义函数 int system(con