Linux
文章平均质量分 79
shangyaowei
这个作者很懒,什么都没留下…
展开
-
常见嵌入式笔试题
1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2).懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不原创 2013-12-19 20:31:32 · 524 阅读 · 0 评论 -
USB驱动程序之描述符
原创 2013-12-19 20:31:46 · 338 阅读 · 0 评论 -
Makefile的编写
目的: 基本掌握了make 的用法,能在Linux系统上编程。环境: Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。准备: 准备三个文件:file1.c, file2.c, file2.h file1.c: #include #include原创 2013-12-19 20:31:21 · 376 阅读 · 0 评论 -
linux笔试
一.填空题: 1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用 i节点 来标识.4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块.5. 链接分为: 硬链接 和 符号链接 .6. 超级块包含了i节点表 和 空闲块表 等重要的文件系统原创 2013-12-19 20:31:30 · 449 阅读 · 0 评论 -
linux 让你的进程后台运行
fg、bg、jobs、&、ctrl+ z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的一。& 最经常被用到 这个用在一个命令的最后,可以把这个命令放到后台执行二。ctrl + z 可以将一个正在前台执行的命令放到后台,并且暂停三。jobs 查看当前有多少在后台运行的命令四。fg 将后台中的命令调至前台继续运行 如原创 2013-12-19 20:31:39 · 359 阅读 · 0 评论 -
Linux下的硬件驱动——USB设备(下)…
前言在上篇《 Linux下的硬件驱动--USB设备(上)(驱动配制部分)》中,我们知道了在Linux下如何去使用一些最常见的USB设备。但对于做系统设计的程序员来说,这是远远不够的,我们还需要具有驱动程序的阅读、修改和开发能力。在此下篇中,就是要通过简单的USB驱动的例子,随您一起进入USB驱动开发的世界。回页首USB驱动开发在掌握了USB设备的配置后,对于程序员,我们就可以原创 2013-12-19 20:31:48 · 391 阅读 · 0 评论 -
Linux下的硬件驱动——USB设备(上)…
前言USB是英文"Universal SerialBus"的缩写,意为"通用串行总线"。是由Compaq(康柏)、DEC、IBM、Intel、NEC、微软以及NorthernTelecom(北方电讯)等公司于1994年11月共同提出的,主要目的就是为了解决接口标准太多的弊端。USB使用一个4针插头作为标准插头,并通过这个标准接头,采用菊花瓣形式把所有外设连接起来,它采用串行方式传输数据,目原创 2013-12-19 20:31:50 · 479 阅读 · 0 评论 -
Linux设备驱动编程之内存与I/O操作…
Linux设备驱动编程之内存与I/O操作(九)对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。 进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC原创 2013-12-19 20:31:52 · 365 阅读 · 0 评论 -
linux命令集锦 [呕心沥血收集-吐血…
linux命令集锦[呕心沥血收集-吐血推荐]成功地管理任何系统的关键之一,是要知道系统中正在发生什么事。Linux中提供了异常日志,并且日志的细节是可配置的。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心。下面我们就来详细的介绍各种操作命令。本专题收录了linux几乎原创 2013-12-19 20:31:54 · 465 阅读 · 0 评论 -
Linux下Makefile的automake生成全…
Linux下Makefile的automake生成全攻略作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 在本文中,将给大家介绍如何使用autoconf和automake两个原创 2013-12-19 20:31:56 · 351 阅读 · 0 评论 -
关于linux驱动(应用)程序头文件使…
驱动程序:#include是在linux-2.6.29/include/linux下面寻找源文件。#include是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。#include //最基本的文件,支持动原创 2013-12-19 20:31:58 · 361 阅读 · 0 评论 -
linux 头文件作用 功能说明!!!
1、 一些头文件的作用::ANSIC。提供断言,assert(表达式):GCC。GTK,GNOME的基础库,提供很多有用的函数,如有数据结构操作函数。使用glib只需要包含:GCC。文件夹操作函数。structdirent,structDIR,opendir(),closedir(),readdir(),readdir64()等:ANSIC。字符测试函数。isdigit(),is原创 2013-12-19 20:32:00 · 443 阅读 · 0 评论 -
S3C2440上触摸屏驱动实例开发讲解(…
共享资源,欢迎转载:http://hbhuanggang.cublog.cn一、开发环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand, Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2二、前提知识1、Linux输入子系统(Input Subsystem): 在Linux中,输入子系统是由输入子系统设备驱原创 2013-12-19 20:35:15 · 581 阅读 · 0 评论 -
C 语言 undefined reference to 's…
C 语言 undefined referenceto 'sqrt' 问题解决2011-04-1812:31 50人阅读评论(0) 收藏 举报题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:2原创 2013-12-19 20:37:32 · 512 阅读 · 0 评论 -
动态链接库
在《LINUX下动态链接库的创建与应用》 一文中,我介绍了LINUX动态链接库的基本知识.其要点是:用户根据实际情况需要,利用dlopen,dlsym,dlclose等动态链接库操作函 数,装入指定的动态链接库中指定的函数,然后加以执行.程序中使用很少的动态函数时,这样的做法尚可.如果程序需要调用大量的动态函数,那么采用这样的编 程手段将是非常繁复的,所以我们必须使用一种更为聪明的办法,以减少代码原创 2013-12-19 20:37:34 · 404 阅读 · 0 评论 -
工作队列的初始化(INIT_WORK的参…
在编写工作队列的小例子时,遇到error: macro "INIT_WORK" passed 3 arguments, but takes just2 从2.6.20的内核开始,INIT_WORK宏做了改变,原来是三个参数,后来改成了两个参数 from http://blog.csdn.net/fudan_abc/archive/2007/08/20/1751565.aspx原创 2013-12-19 20:37:38 · 1067 阅读 · 0 评论 -
linux工作队列(转)
linux工作队列(转)(转载)[前记]Linux自从2.6.20之后,工作队列发生了一些变化,目前从网络上搜索的资料一般都是介绍老版本的工作队列,很少见到对新版本的介绍。本文对新老版本都做了简要概述,并分别提供了简单的实作案例。******************************************************************************原创 2013-12-19 20:37:40 · 356 阅读 · 0 评论 -
跟我一起写udev规则(译)
目录介绍 关于本文档 更新历史概念 术语: devfs,sysfs, nodes, etc. 为什么? 内置固定命名设计编写规则 规则文件和语义 规则语法 基本规则 sysfs匹配属性 设备级联结构 字符串替换 字符串匹配从sysfs中查找合适信息 sy原创 2013-12-19 20:37:44 · 382 阅读 · 0 评论 -
LInux sysfs
LInuxsysfs分类:kernelspace 2009-09-0716:16 1320人阅读评论(0) 收藏 举报"sysfs is a ram-based filesystem initially based on ramfs. Itprovides a meansto export kernel data structures, their attributes, a原创 2013-12-19 20:37:48 · 350 阅读 · 0 评论 -
udev(八):实战:使用udevadm修…
原创文章,转载请注明出处,谢谢! 作者:清林,博客名: 飞空静渡 udev的规则的编写,我这里就不说了,大家可以在udev的文档中可以了解,有时间的话我在安排一章在说明udev的规则了。 下面是我要做的一个测试,我的系统是ubuntu9.10,我有一个usb优盘,是kinston的4G的优盘。 运行:原创 2013-12-19 20:37:52 · 563 阅读 · 0 评论 -
为Android内核添加新驱动,并添加…
2010-12-0218:20:34| 分类: Linux |字号 订阅为Android内核添加新驱动,并提供menuconfig选项 为Android的Linux内核2.6.25添加驱动。 1. 在drives目录下添加hello目录,内含hello.c Kconfig Makefile hello.c内容: #include #include原创 2013-12-19 20:38:00 · 458 阅读 · 0 评论 -
怎样写linux下的USB设备驱动程序
引言随着人们生活水平的提高,我们用到的USB设备也越来越多,但是Linux在硬件配置上仍然没有做到完全即插即用,对于Linux怎样配置和使用他们,也越来越成为困扰我们的一大问题;本文的目地是使大家了解怎样编制USB设备驱动,为更好地配置和使用USB设备提供方便;对于希望开发Linux系统下USB设备驱动的人员,也可作为进一步学习USB驱动的大体架构进而编写出特殊USB设备的驱动程序。USB基原创 2013-12-19 20:38:14 · 597 阅读 · 0 评论 -
Linux中gcc g++常用编译选项以及ma…
2009-09-0714:12:28| 分类: Linux |字号 订阅Linux中gcc,g++常用编译选项-x language filename设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定,C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀名是.pig 哈哈,那你就要用这个参数,这个参数对他后面的原创 2013-12-19 20:40:20 · 886 阅读 · 0 评论 -
linux下的时间函数
inux下的时间函数我们在编程中可能会经常用到时间,比如取得系统的时间(获取系统的年、月、日、时、分、秒,星期等),或者是隔一段时间去做某事,那么我们就用到一些时间函数。linux下存储时间常见的有两种存储方式,一个是从1970年到现在经过了多少秒,一个是用一个结构来分别存储年月日时分秒的。time_t 这种类型就是用来存储从1970年到现在经过了多少秒,要想更精确一点,可以用结构str原创 2013-12-19 20:40:42 · 370 阅读 · 0 评论 -
逻辑地址、线性地址、物理地址和虚…
要过年了,发个年终总结贴,只是个人理解,不包正确哈。本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。一、概念物理地址(physicaladdress)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存原创 2013-12-19 20:40:54 · 354 阅读 · 0 评论 -
Linux线程同步之条件变量
与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果一个条件为假,一个原创 2013-12-19 20:40:59 · 362 阅读 · 0 评论 -
linux 下 C 程序(进程) 内存布局
转载自 分享最终编辑 wind_liao内存管理模块是操作系统的心脏;它对应用程序和系统管理非常重要。今后的几篇文章中,我将着眼于实际的内存问题,但也不避讳其中的技术内幕。由于不少概念是通用的,所以文中大部分例子取自32位x86平台的Linux和Windows系统。本系列第一篇文章讲述应用程序的内存布局。 在多任务操作系统中的每一个进程都运行在一个属于它自己的内存沙盘中。原创 2013-12-19 20:41:03 · 424 阅读 · 0 评论 -
Linux init详解
一、什么是INIT: init是Linux系统操作中不可缺少的程序之一。 所谓的init进程,它是一个由内核启动的用户级进程。 内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。 内核会在过去曾使用过init的几个地方查找它,它的原创 2013-12-19 20:41:20 · 285 阅读 · 0 评论 -
禁止所有的中断(关中断/开中断)
如果你要禁止所有的中断该怎么办? 在2.6内核中,可以通过下面两个函数中的其中任何一个关闭当前处理器上的所有中断处理,这两个函数定义在中: void local_irq_save(unsigned longflags); void local_irq_disable(void); 对local_irq_save的调用将把当前中断状态保存到flags中,然后禁用当前处原创 2013-12-19 20:42:11 · 7702 阅读 · 0 评论 -
S3C2410 Linux IIS音频设备驱动分…
Linux 下的IIS 音频驱动程序主要都在/kernel/drivers/sound/s3c2410-uda1341.c文件中。在音频驱动程序中有2个比较重要的结构体:typedef struct {int size; char *start; (内存虚拟地址起始地址)dma_addr_t dma_addr; (内存物理地址起始地址)struct se原创 2013-12-19 20:42:16 · 412 阅读 · 0 评论 -
s3c2410的dma操作的一般步骤
2009-04-10 17:33 345人阅读 评论(0) 收藏 举报 一般的,在s3c2440中,要想进行dma传输,需要一下七个步骤:一:int s3c2410_dma_request(unsigned int channel, struct s3c2410_dma_client *client, void *dev原创 2013-12-19 20:42:18 · 523 阅读 · 0 评论 -
MOD_INC_USE_COUNT和MOD_DEC_USE_C…
2.4内核中,模块自身通过MOD_INC_USE_COUNT, MOD_DEC_USE_COUNT宏来管理自己被使用的计数。 2.6内核提供了更健壮、灵活的模块计数管理接口try_module_get(&module),module_put(&module)取代2.4中的模块使用计数管理宏;模块的使用计数不必由自身管理,而且在管理模块使用计数时考虑到SMP与PREEMPT机制的影响。原创 2013-12-19 20:42:24 · 1812 阅读 · 0 评论 -
Linux内核抢占实现机制分析(转)
Sailor_forever [email protected] 转载请注明http://blog.csdn.net/sailor_8318/archive/2008/09/03/2870184.aspx 【摘要】本文详解了Linux内核抢占实现机制。首先介绍了内核抢占和用户抢占的概念和区别,接着分析了不可抢占内核的特点及实时系统中实现内核抢占的必要性。然后分析了禁止内核抢占的情原创 2013-12-19 20:42:41 · 427 阅读 · 0 评论 -
成功移植linux2.6.38内核到TQ2440 …
标签: 杂谈分类: Linux 经过一个星期的不停修改错误,看代码,每天都忙到2点才睡,今天终于解决了所有问题,成功移植linux2.6.38内核到TQ2440。移植步骤:1.修改根目录的Makefile中的ARCH=arm,CROSS-COMPILE=arm-linux-2.在arch/arm/mach-s3c2440/mach-smdk2440.c中,将原创 2013-12-19 20:42:52 · 759 阅读 · 0 评论 -
Linux移植随笔:终于解决Tslib的问…
Linux移植随笔:终于解决Tslib的问题了前段时间让Tslib搞晕头了,原来一切都是版本惹的祸。本文只是一个随笔,随笔者,随意用笔写下心得而已,因此不必较真。正如我所欣赏的“乘兴而来,兴尽而返”一样。——估计当年王子猷是赏完了夜景,兴致也完了,就回家了。闲话少提。搞tslib时,出现了许多错误,像No raw modules loaded.ts_config: Succ原创 2013-12-19 20:42:54 · 569 阅读 · 0 评论 -
pthread_create使用类中函数指针的…
原有的程序是利用一台PC机的共享内存来实现两个程序间的通讯的,最近要求改了,要设计2台PC间这两个的程序的通讯,想把通讯部分的程序做成类封装起来。其中,由于要有多线程的部分。就是说,可能在一个线程里读,在另一个线程里写。所以得用到类成员函数的函数指针部分。为了验证可行性,编写了下面的程序:class MyThread{public: static int num; st原创 2013-12-19 20:43:56 · 1029 阅读 · 0 评论 -
linux库知识,静态库和动态库
在xmeeting中,关于usb手柄部分,采用动态库调用方式,下面翻译一篇David A.Wheeler写的文章。文章就如何创建和使用静态库,共享库以及动如何动态装载库进行了论述。内容纲要如下: 1.概述 2.静态库 3.共享库 3.1 约定 3.2 使用 3.3环境变量 3.4 创建共享库 3.5 安装与使用 3.6 兼容性 4.动态加载原创 2013-12-19 20:44:14 · 322 阅读 · 0 评论 -
嵌入式LINUX环境下视频采集知识
Video for Linuxtwo(Video4Linux2)简称V4L2,是V4L的改进版。V4L2是linux操作系统下用于采集图片、视频和音频数据的API接口,配合适当的视频采集设备和相应的驱动程序,可以实现图片、视频、音频等的采集。在远程会议、可视电话、视频监控系统和嵌入式多媒体终端中都有广泛的应用。 一、Video for Linux two 在Linux下,所有外设都原创 2013-12-19 20:44:22 · 433 阅读 · 0 评论 -
关于udelay(); mdelay(); ndelay()…
在Linux Driver开发中,经常要用到延迟函数:msleep,mdelay/udelay.虽然msleep和mdelay都有延迟的作用,但他们是有区别的.mdeday还忙等待函数,在延迟过程中无法运行其他任务.这个延迟的时间是准确的.是需要等待多少时间就会真正等待多少时间.而msleep是休眠函数,它不涉及忙等待.你如果是msleep(10),那实际上延迟的时间,大部分时候是要多于原创 2013-12-19 20:44:56 · 365 阅读 · 0 评论 -
GCC笔记 (转载)
2008-11-15 13:30)分类: LinuxProgramming The Historyof GCC1984年,Richard Stallman发起了自由软件运动,GNU (Gnu's NotUnix)项目应运而生,3年后,最初版的GCC横空出世,成为第一款可移植、可优化、支持ANSI C的开源C编译器。GCC最初的全名是GNU C Compiler,原创 2013-12-19 20:45:07 · 368 阅读 · 0 评论