苦与乐---linux
文章平均质量分 81
insoonior
希望能结交志同道合的朋友!~~~
展开
-
设备驱动的基础笔记
http://blog.chinaunix.net/uid-28663205-id-3507222.html/proc/devices/----设备名 /dev/-----节点名称一、驱动程序:驱动程序是应用层和硬件设备之间的一个软件层它向应用层提供了一组标准化的调用接口, 同时完全隐藏设备的工作细节二、操作系统的作用:1、转载 2013-04-12 13:41:02 · 289 阅读 · 0 评论 -
ARM Linux静态映射分析
http://www.embedu.org/Column/Column225.htm作者:易松华,华清远见嵌入式学院讲师。在华清远见上课过程中,发现静态映射方面初学者比较难于掌握和理解,下面分析一下静态映射机制的原理并通过GPIO和USB、LCD等的静态映射作为例子来说明如何通过这种静态映射的方式访问外设资源。内核提供了一个重要的结构体struct machine_desc ,这个结构转载 2012-10-20 02:23:14 · 405 阅读 · 0 评论 -
深析静态链接库和动态链接库相同函数覆盖及库调用顺序问题
原文地址:http://blog.csdn.net/crazyjixiang/article/details/6614250最近一个项目遇到的一个问题,MongoDB和自家库中的md5函数出现冲突, 而且报的是莫名错误,经过仔细debug终于找到md5中的md5_finish覆盖出现的问题,今天抽了点时间写了些小程序测试了下注意:编译器为gcc,若使用g++, 请在库里面加转载 2012-06-08 09:50:31 · 1536 阅读 · 0 评论 -
IO端口和IO内存的区别及分别使用的函数接口
IO端口和IO内存的区别及分别使用的函数接口 每个外设都是通过读写其寄存器来控制的。外设寄存器也称为I/O端口,通常包括:控制寄存器、状态寄存器和数据寄存器三大类。根据访问外设寄存器的不同方式,可以把CPU分成两大类。一类CPU(如M68K,Power PC等)把这些寄存器看作内存的一部分,寄存器参与内存统一编址,访问寄存器就通过访问一般的内存指令进行,所以,这种CPU没转载 2012-09-23 23:29:47 · 11548 阅读 · 10 评论 -
详解 ARM Linux启动过程分析
原文:http://mobile.51cto.com/symbian-271893.htm ARM Linux启动过程分析是本人要介绍的内容,嵌入式 Linux 的可移植性使得我们可以在各种电子产品上看到它的身影。对于不同体系结构的处理器来说Linux的启动过程也有所不同。本文以S3C2410ARM处理器为例,详细分析了系统上电后 bootloader的执行流程及 ARM Linux的转载 2012-10-14 14:10:37 · 335 阅读 · 0 评论 -
U-boot 添加命令 U_BOOT_CMD
U-Boot的每一个命令都是通过U_BOOT_CMD宏定义的。这个宏在include/command.h头文件中定义,每一个命令定义一个cmd_tbl_t结构体。/*命令宏U_BOOT_CMD*/ #define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \ cmd_tbl_t __u_boot_cmd_##name转载 2012-03-05 18:39:20 · 3718 阅读 · 0 评论 -
DECLARE_GLOBAL_DATA_PRT,__ASM__
1。#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")这个声明告诉编译器使用寄存器r8来存储gd_t类型的指针gd,即这个定义声明了一个指针,并且指明了它的存储位置。register表示变量放在机器的寄存器volatile用于指定变量的值可以由外部过程异步修改并且这个指针在start_armboot()转载 2012-03-05 13:41:54 · 570 阅读 · 0 评论 -
linux-2.6.26内核中ARM中断实现详解
原文地址:http://www.360doc.com/content/11/1214/19/7891085_172265212.shtml看了一些网络上关于linux中断实现的文章,感觉有一些写的非常好,在这里首先感谢他们的无私付出,然后也想再补充自己对一些问题的理解。先从函数注册引出问题吧。一、中断注册方法在linux内核中用于申请中断的函数是request_ir转载 2012-02-28 23:05:11 · 637 阅读 · 0 评论 -
s3c6410 uboot代码分析
http://hi.baidu.com/__eabi/blog/item/be67533797bc73f014cecb49.html以下用以记录uboot代码的分析过程,目标是s3c6410,如有错误,欢迎指正。强调,内容与三星原厂提供的uboot-1.1.6有更改的地方,因为外接外设的区别,特别是nand_flash、外接网卡芯片和LCD芯片以下纯代码情景分析,请结合ub转载 2012-02-27 22:48:10 · 3934 阅读 · 1 评论 -
使uboot支持S3C6410的SD启动
这里使用的uboot并非uboot官方发布的uboot代码,而是为三星定制的一个uboot版本s3c-u-boot-1.1.6,其代码作者就包括了三星的程序员与denx的员工。这个版本支持SD启动,不过默认是nand启动,使它支持uboot需要做以下事情: 1、 虽然支持uboot启动,但是uboot代码里不叫SD启动方式,而是叫movinand启动方式,在incluede/confi转载 2012-02-27 22:39:07 · 503 阅读 · 0 评论 -
Linux设备驱动之I/O端口与I/O内存
http://www.cnblogs.com/geneil/archive/2011/12/08/2281367.html一、统一编址与独立编址该部分来自于:http://blog.chinaunix.net/space.php?uid=21347954&do=blog&id=443670,感谢mason_hu的分享。 从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上转载 2012-10-20 11:27:47 · 843 阅读 · 0 评论 -
如何单独编译Android源代码中的模块
第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命令,经过漫长的等待之后,就可以得到Android系统镜像system.img了。以后如果我们修改了Android源代码中的某个模块或者在Android源代码工程新增一个自己的模块,是不是还是执行make命令呢?答案是否定的,Google为我们准备了另外的命令来支持编译单独的模块,以及重新打包system转载 2012-11-09 00:09:43 · 360 阅读 · 0 评论 -
udev在linux2.6中怎样生成设备文件
用udev在/dev/下动态生成设备文件,这样用户就不用手工调用mknod了。http://linux.chinaunix.net/bbs/viewthread.php?tid=892777利用的kernel API: class_create : 创建class class_destroy : 销毁class转载 2013-04-12 14:27:23 · 275 阅读 · 0 评论 -
Linux内核驱动自动创建设备节点文件
http://biancheng.dnbcw.info/linux/408057.htmlLinux下生成驱动设备节点文件的方法有3个:1、手动mknod;2、利用devfs;3、利用udev在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在转载 2013-04-12 13:30:10 · 401 阅读 · 0 评论 -
Linux下读写芯片的I2C寄存器
Linux下读写芯片的I2C寄存器2012-01-10 11:40:18标签:Linux 寄存器 驱动 读写 I2C原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/760965 要想在Linux下读写芯片的I2C寄存器,一般需转载 2013-04-11 16:37:11 · 306 阅读 · 0 评论 -
用户空间访问I2C设备驱动
用户空间访问I2C设备驱动2012-01-11 15:33:43标签:Linux I2C 字符设备 设备驱动 用户空间原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/761830 关于Linux下如何编写芯片的I2C驱动,本系转载 2013-04-11 16:35:33 · 262 阅读 · 0 评论 -
教你写Linux I2C设备驱动
手把手教你写Linux I2C设备驱动原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/760020 Linux I2C驱动是嵌入式Linux驱动开发人员经常需要编写的一种驱动,因为凡是系统中使用到的I2C设备,几乎都需转载 2013-04-11 16:33:44 · 343 阅读 · 1 评论 -
ramdisk.img及boot.img的生成过程
http://blog.csdn.net/hnzzh1986/article/details/7056780ramdisk.imgramdisk.img是组成boot.img的重要部分,从Android/build/core/Makefile中可以看到ramdisk.img的生成该过程. # the ramdisk INTERNAL_RAMDISK_转载 2012-11-20 00:53:23 · 2216 阅读 · 0 评论 -
单独编译Android的image文件
http://blog.csdn.net/cupidove/article/details/8156592Android比较重要的三个img文件:make systemimage - system.imgmake userdataimage - userdata.imgmake ramdisk - ramdisk.imgmake snod - 快转载 2012-11-20 00:50:17 · 1377 阅读 · 0 评论 -
内核模块编译怎样绕过insmod时的版本检查
原文地址:http://blog.sina.com.cn/s/blog_53931eca01015uky.html在開發kernel driver時,總是會遇到討人厭的vermagic檢查,只要目前在run的kernel版本跟driver編譯時用的kernel版本不一致,就沒辦法insmod。bash-3.2# insmod sdio.kosdio: version magic '转载 2012-11-11 12:48:33 · 2043 阅读 · 0 评论 -
Kbuild Makefile
原文地址:http://haohetao.iteye.com/blog/994620 从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这同过去的编译系统有很大的不同,尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的Makefile,然后根据读到的内容第二次读取Kbuild的M转载 2012-11-11 17:22:40 · 302 阅读 · 0 评论 -
u-boot(Makefile)
当我们编译U-BOOT的时候,大家键入make smdk2410_config,make 的时候都作了那些动作呢,这里我先大概介绍一下Makefile的内容,然后在大概理解一下命令执行的流程。如果有错的地方,希望大家指正,谢谢。1.u-boot顶层目录的Makefile分析:HOSTARCH := $(shell uname -m | \ sed -e s/i.86/i3转载 2012-02-26 22:07:17 · 624 阅读 · 0 评论 -
Makefile自动依赖
Makefile自动依赖 Makefile生成自动依赖的方法有两种:1. 将所有.o文件的依赖关系写入单独文件,然后在Makefile中调用该文件2. 每个.c文件对应一个.d文件,将依赖关系写入.d文件中 一、对于第一种方法,Makefile的写法如下:#file startCC = gccSRCS := $(wildcard *.c)O转载 2012-02-26 22:30:45 · 547 阅读 · 0 评论 -
Qt4.4.3 在s3c2440平台的移植
Qt4.4.3 在s3c2440平台的移植<br />首先,从http://trolltech.com/downloads下载针对嵌入式设备的Device Creation版,目前最新稳定版是<br />qt-embedded-linux-opensource-src-4.4.3。下面是详细的移植步骤:<br />1.解压缩<br /> tar zxf qt-embedded-linux-opensource-src-4.4.3.tar.gz<br /> cd qt-embedded-linux-op转载 2011-03-25 20:46:00 · 346 阅读 · 0 评论 -
将qt-embedded-linux移植至arm(s3c2440)
<br />将qt-embedded-linux移植至arm(s3c2440)<br />宿主机:Fedora13<br />目标 机:s3c2440<br />交叉 编译 器:arm-linux-gcc- 3.4.1<br />交叉编译器路径:/usr/local/arm/3.4.1<br />qt版本:qt-embedded-linux-opensource-src-4.5.3<br />tslib版本:tslib-1.4.tar.gz<br />一、移植tslib<br />1.下载TSLIB-1.4转载 2011-03-25 20:41:00 · 997 阅读 · 0 评论 -
Android HAL实例解析
<br />华清远见讲师 刘洪涛<br />一、概述 <br /> 本文希望通过分析台湾的Jollen的mokoid 工程代码,和在s5pc100平台上实现过程种遇到的问题,解析Andorid HAL的开发方法。 <br />二、HAL介绍<br /> 现有HAL架构由Patrick Brady (Google) 在2008 Google I/O演讲中提出的,如下图。<br /><br /> <br /> Android的HAL是为了保护一些硬件提供商的知识产权而提出的,是为转载 2011-03-22 14:26:00 · 565 阅读 · 0 评论 -
file_operation(文件操作)file(文件)inode(节点)
file_operation(文件操作)file(文件)inode(节点)file_operation就是把系统调用和驱动程序关联起来的关键数据结构。这个结构的每一个成员都对应着一个系统调用。读取file_operation中相应的函数指针,接着把控制权转交给函数,从而完成了Linux设备驱动程序的工作。 在系统内部,I/O设备的存取操作通过特定的入口点来进行,而这组特定的入口点恰恰是由设备驱动程序提供的。通常这组设备驱动程序接口是由结构file_operations结构体向系统说明的,它定义在incl转载 2011-03-12 22:44:00 · 559 阅读 · 0 评论 -
Linux设备驱动程序学习-Linux设备模型(总线、设备、驱动程序和类)
<br />Linux设备驱动程序学习-Linux设备模型(总线、设备、驱动程序和类)<br /> <br />文章的例子和实验使用《LDD3》所配的lddbus模块(稍作修改)。<br />总线<br />总线是处理器和一个或多个设备之间的通道,在设备模型中, 所有的设备都通过总线相连, 甚至是内部的虚拟"platform"总线。总线可以相互插入。设备模型展示了总线和它们所控制的设备之间的实际连接。<br />在 Linux 设备模型中, 总线由 bus_type 结构表示, 定义在 <linux/dev转载 2011-03-09 21:48:00 · 265 阅读 · 0 评论 -
android intent和intent action大全
android 中intent是经常要用到的。不管是页面牵转,还是传递数据,或是调用外部程序,系统功能都要用到intent。在做了一些intent的例子之后,整理了一下intent,希望对大家有用。由于intent内容太多,不可能真的写全,难免会有遗落,以后我会随时更新。如果你们有疑问或新的intent内容,希望交流。 <br />★intent大全: <br />1.从google搜索内容 <br />Intent intent = new Intent(); <br />intent.setAction转载 2011-02-11 12:22:00 · 309 阅读 · 0 评论 -
Linux 设备驱动 Edition 3
linux设备驱动学习网站:Linux 设备驱动 Edition 3<br />http://oss.org.cn/kernel-book/ldd3/index.html原创 2011-02-27 11:55:00 · 199 阅读 · 0 评论 -
adb操作命令详解
<br />【操作命令】<br /> 1. 查看设备<br /> <br /> adb devices<br /> 这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示<br /><br /><br /> 2.安装软件<br /> adb install<br /> adb install <apk文件路径> :这个命令将指定的apk文件安装到设备上<br /><br /><br /> 3. 卸载软件<br /> adb uninstall <软件名转载 2011-01-20 15:07:00 · 241 阅读 · 0 评论 -
vim使用大全[转]
<br />vi/vim 基本使用方法<br />本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!<br /><br />vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。<br /><br />1、转载 2010-11-09 23:10:00 · 211 阅读 · 0 评论 -
关于linux的配置文件
一、1.Linux系统启动后第一个脚本配置文件为/etc/profile ,该文件遍历/etc/profile.d/*sh2.系统初始化OK后进入用户级配置,~/.bash.profile3.查看源码知其配置文件跳转到~/.bashrc4.~/.bashrc跳转到/etc/bashrc进行系统级配置,和step1类似TIP:1.arm 开发经常需加入环境变量,step 1,4为全局变量,任何用户均可使用。step 2,3为局部变量,只限本用户使用。 2.root用户使用alias vi=vim,转载 2011-04-04 21:26:00 · 434 阅读 · 0 评论 -
u-boot中mkimage工具的具体使用
通常,u-boot为kernel提供一些kernel无法知道的信息,比如ramdisk在RAM中的地址。Kernel也必须为U-boot提供必要的信息,如通过mkimage这个工具(在u-boot代码的tools目录中)可以给zImage添加一个header,也就是使得通常编译的内核zImage添加一个数据头,把添加头后的image通常叫uImage,uImage是可以被U-boot直接引导的内核镜像。那么如何使用mkimage工具而产生uImage的呢?下面将具体介绍mkimage工具的使用:1.首先查看转载 2011-04-11 22:55:00 · 313 阅读 · 0 评论 -
Linux操作系统内核启动参数详细解析
Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。如果不使用启动管理器,比如直接从BIOS或者把内核文件用“cp zImage /dev/fd0”等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用引导管理器比如LILO的好处之一吧。Li转载 2012-02-26 22:14:11 · 239 阅读 · 0 评论 -
跟我一起写 Makefile
陈皓概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了转载 2012-02-23 21:26:38 · 259 阅读 · 0 评论 -
uboot布局及初学的一些文摘
第一阶段程序流程图SVC模式切换|针对特定SOC的设置|lowlevel_init---->I/Dcache, MMU,sdram|relocate|进入引导第二阶段uboot1.1.6ARCH=arm920tCPU=S3C转载 2011-08-01 23:45:59 · 1038 阅读 · 0 评论 -
S3C6410开发全纪录(一)《还原SD卡启动的真相》
前章我们也大致分析了SD卡的启动过程,在具体进行问题的定位及解决的过程中,发现还是有很多不明确的地方,网上的文章也多是人云亦云让我们来一步一步搞清楚S3C6410 SD卡启动的步骤及过程(我这里的开发板为OK6410,256M+1G的配置,SD卡为2G,MMC) 一、开发板跳线,转载 2011-07-28 17:46:24 · 4321 阅读 · 3 评论 -
uboot1.1.6顶层makefile详解
VERSION = 1//主版本号PATCHLEVEL = 1//次版本号SUBLEVEL = 6//修正版本号EXTRAVERSION =//版本号扩展U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)//这个Uboot的版本为1.1.6VERSION_FILE = $(obj)转载 2011-06-18 12:02:00 · 361 阅读 · 0 评论 -
关于uboot中的TEXT_BASE【转】
关于uboot中的TEXT_BASE【转】2009年11月11日 星期三 23:03都知道U-BOOT分为两个阶段,第一阶段是(~/cpu/arm920t/start.S中)在FLASH上运行(一般情况下),完成对硬件的初始化,包括看门狗,中断缓存等,并且负责把代码搬移到SDRAM中(在搬移的时候检查自身代码是否在SDRAM中),然后完成C程序运行所需要环境的建立,包括转载 2011-06-18 14:38:00 · 325 阅读 · 0 评论