随笔分类 -  嵌入式ARM+Linux

1

摘要:原创作品,转载请标明。专栏地址:http://blog.csdn.net/column/details/linux-kernel-net.html[系统运维]Linux内核--网络栈实现分析(一)--网络栈初始化[系统运维]Linux内核--网络栈实现分析(二)--数据包的传递过程(上)[系统运维]Linux内核--网络栈实现分析(三)--驱动程序层+链路层(上)[系统运维]Linux内核--网络栈实现分析(四)--网络层之IP协议(上)[系统运维]Linux内核--网络栈实现分析(五)--传输层之UDP协议(上)[系统运维]Linux内核--网络栈实现分析(六)--应用层获取数据包(上)[系 阅读全文

posted @ 2012-12-19 18:10 yming0221 阅读(248) 评论(0) 推荐(0)

摘要:安装路径:--prefix=DIR 安装路径 [/usr/local]--bindir=DIR 执行程序安装路径 [PREFIX/bin]--datadir=DIR 相关文件安装路径 [PREFIX/share/mplayer]--mandir=DIR 使用手册安装路径 [PREFIX/share/man]--confdir=DIR 配置文件安装路径 [PREFIX/etc/mplayer]--libdir=DIR 对象代码库文件安装路径 [PREFIX/lib]--codecsdir=DIR 二进制解码器安装路径 [LIBDIR/codecs]--win32codecsdir=D... 阅读全文

posted @ 2012-01-27 11:59 yming0221 阅读(270) 评论(0) 推荐(0)

摘要:主机平台:Gentoo Linux 11.2 with linux kernel 3.0.6硬件平台:FL2440(S3C2440)with linux kernel 2.6.35原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/72113961、首先下载DNW for linuxhttp://download.csdn.net/source/10111402、解压文件、3、编译主机的USB驱动make -C /lib/modules/`uname -r`/build M=`pwd` modules然后insmod安装驱动并d 阅读全文

posted @ 2012-01-19 19:58 yming0221 阅读(435) 评论(0) 推荐(0)

摘要:主机:Gentoo Linux 11.2 with linux kernel 3.0.6硬件平台:FL2440(S3C2440)with linux kernel 2.6.35原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/7207908*接上文ARM-Linux驱动--MTD驱动分析(二)本文分析MTD设备的分区管理机制分区管理实际上是将一个MTD设备分成几个分区,将其作为单独的MTD原始设备进行管理。1、分区的结构体描述结构体mtd_part/* Our partition node structure */ //分区结 阅读全文

posted @ 2012-01-17 23:18 yming0221 阅读(478) 评论(0) 推荐(0)

摘要:主机:Gentoo Linux 11.2 with linux kernel 3.0.6硬件平台:FL2440(S3C2440)with linux kernel 2.6.35原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/7205713*接上文ARM-Linux驱动--MTD驱动分析(一)1、mtd_notifier结构体//MTD设备通知结构体 struct mtd_notifier { void (*add)(struct mtd_info *mtd);//加入MTD原始/字符/块设备时执行 void (*remo.. 阅读全文

posted @ 2012-01-16 15:06 yming0221 阅读(409) 评论(0) 推荐(0)

摘要:主机:Gentoo Linux 11.2 with linux kernel 3.0.6硬件平台:FL2440(S3C2440)with linux kernel 2.6.35原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/7202503MTD(memory technology device内存技术设备) 在硬件和文件系统层之间的提供了一个抽象的接口,MTD是用来访问内存设备(如:ROM、flash)的中间层,它将内存设备的共有特性抽取出来,从而使增加新的内存设备驱动程序变得更简单。MTD的源代码都在/drivers/mt 阅读全文

posted @ 2012-01-15 16:19 yming0221 阅读(439) 评论(0) 推荐(0)

摘要:主机:Gentoo Linux 11.2内核:Linux 3.0.6原创作品,转载请表明出处http://blog.csdn.net/yming0221/article/details/72006111、内核编译配置编译内核配置如下,选中NFS服务器支持2、用于空间软件准备命令安装nfs-utilsemerge -av nfs-utils3、配置NFS用户目录及其权限在/etc/exports下按自己的要求改写/home/user/shared 192.168.0.3(async,rw,no_subtree_check)/home/user/shared2 192.168.0.0/255.25 阅读全文

posted @ 2012-01-14 14:37 yming0221 阅读(268) 评论(0) 推荐(0)

摘要:devfs、sysfs、udev介绍一、devfslinux下有专门的文件系统用来对设备进行管理,devfs和sysfs就是其中两种。在2.6内核以前一直使用的是devfs,devfs挂载于/dev目录下,提供了一种类似于文件的方法来管理位于/dev目录下的所有设备,我们知道/dev目录下的每一个文件都对应的是一个设备,至于当前该设备存在与否先且不论,而且这些特殊文件是位于根文件系统上的,在制作文件系统的时候我们就已经建立了这些设备文件,因此通过操作这些特殊文件,可以实现与内核进行交互。但是devfs文件系统有一些缺点,例如:不确定的设备映射,有时一个设备映射的设备文件可能不同,例如我的U盘可 阅读全文

posted @ 2012-01-13 13:09 yming0221 阅读(240) 评论(0) 推荐(0)

摘要:主机:Gentoo Linux 11.2内核版本:Linux 3.0.6原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/7194988以前在Ubuntu下USB转串口驱动已经编译进内核,而编译的Gentoo内核没有编译进去,这里将内核中PL2303驱动 copy出来单独编译出pl2303.ko然后将其复制进/var/lib/(内核版本)/drivers/usb/serial/目录下然后使用命令depmodmodprobe pl2303然后将usb转串口接口插入usb,使用命令查看dmesg | tail查看如下查看内核中驱动 阅读全文

posted @ 2012-01-11 22:26 yming0221 阅读(4566) 评论(0) 推荐(0)

摘要:鄙人毕业4年,二流本科,嵌入式专业,前不久突发奇想,算了一下自己从毕业以来面世过的每一个企业,竟然有34家之多!冬去春来,各大高校的学弟学妹们也要开始找工作了,我希望能给你们一些小小的经验。 1、穿着不要太随意,但也不要太庄重,干净、整洁,头发要梳理好,西装一般没什么必要,上班需要穿西装的都是皮包公司。所以同学们没必要为了面试而特地去买一件西装。女生可以穿正装,感觉比较成熟。 2、如果一个公司,办公桌上只有电话没有电脑,100%是皮包公司。 3、如果面试的时候,面试官没有马上录用你,你回去后一天内没有消息,那就说明面试失败。一般面试官都会说,回去等,一周或者两周内给你消息,其... 阅读全文

posted @ 2011-08-24 16:19 yming0221 阅读(233) 评论(0) 推荐(0)

摘要:sudo make install。由于安装到系统目录/usr/local,所以加了sudo执行。就这步,出现了问题: ../libtool:line XXXX:arm-linux-ranlib command not found 在终端检查,发现arm-linux-ranlib可以在系统的PATH中找到,因为我已经把/optl/arm/4.3.2/bin添加到了PATH中。 那为什么还提示说找不到arm-linux-ranlib呢?原因如下: 1.我添加arm交叉编译器目录到PATH中是放在//etc/profile里的,这是用户的配置文件,我的用户为yan。 2.执行make instal 阅读全文

posted @ 2011-08-21 01:11 yming0221 阅读(465) 评论(0) 推荐(0)

摘要:Qt泛指Qt的所有桌面版本,比如Qt/X11,Qt Windows,Qt Mac等。由于Qt最早是在Linux中随着KDE流行开来的,因此通常很多人说的Qt都指用于Linux/Unix的Qt/X11。Qt/E(Qt/Embedded)是用于嵌入式Linux系统的Qt版本。Qt/E去掉了X Lib的依赖而直接工作于Frame Buffer上,因而效率更高,但它并不是Qt的子集,而应该是超集,部分机制(如QCOP等)不能用于Qt/X11中。Qtopia是一个构建于Qt/E之上的类似桌面系统的应用环境。相比之下,Qt/E是基础类库。Qtopia Core:就是原来的Qt/E,大概从Qt 4开始改名, 阅读全文

posted @ 2011-08-20 23:24 yming0221 阅读(189) 评论(0) 推荐(0)

摘要:每次打开开发板都会出现Partially written block xxx detected 而且会越来越多解决方法:方法一,修改yaffs_fs.c中yaffs_auto_checkpoint改成值2方法二,修改fs/yaffs2/yaffs_guts.cstatic int yaffs_ScanBackwards(yaffs_Device * dev) 函数中在。。。。 T(YAFFS_TRACE_ALWAYS, /*YAFFS_TRACE_SCAN*/ (TSTR("Partially written block %d detected" TENDSTR), blk 阅读全文

posted @ 2011-08-20 12:51 yming0221 阅读(169) 评论(0) 推荐(0)

摘要:硬件平台:FL2440 (s3c2440)内核版本:2.6.35主机平台:Ubuntu 11.04内核版本:2.6.39原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/66458211、DMA的功能和工作原理这里就不多说了,可以查看s3c2440的手册2、在正式分析DMA驱动之前,我们先来看一下DMA的注册和初始化过程系统设备:(翻译自源码注释)系统设备和系统模型有点不同,它不需要动态绑定驱动,不能被探测(probe),不归结为任何的系统总线,所以要区分对待。对待系统设备我们仍然要有设备驱动的观念,因为我们需要对设备进行基本 阅读全文

posted @ 2011-07-30 00:31 yming0221 阅读(526) 评论(0) 推荐(0)

摘要:硬件平台:FL2440内核版本:2.6.39主机平台:Ubuntu 11.04内核版本:2.6.35交叉编译器:arm-linux-gcc 4.3.2原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/66415791、DM9000网卡驱动的分析请见http://blog.csdn.net/yming0221/article/details/66097422、如果想自己调试DM9000网卡驱动,那么在编译内核之前将网卡驱动不要编译进内核,启动后自己编译并加载内核由于一般的驱动或者程序是通过NFS挂载到开发板上的,所以,如果没有网 阅读全文

posted @ 2011-07-28 17:18 yming0221 阅读(175) 评论(0) 推荐(0)

摘要:硬件平台:FL2440 (S3C2440)内核版本:2.6.35主机平台:Ubuntu 11.04内核版本:2.6.39交叉编译器:arm-linux-gcc 4.3.2原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6628624本文接上文ARM-Linux驱动--DM9000网卡驱动分析(一)ARM-Linux驱动--DM9000网卡驱动分析(二)ARM-Linux驱动--DM9000网卡驱动分析(三)1、接下来接着分析DM9000网卡驱动的数据接收函数/* * Received a packet and pass .. 阅读全文

posted @ 2011-07-23 21:42 yming0221 阅读(332) 评论(0) 推荐(0)

摘要:硬件平台:FL2440(s3c2440)内核版本:2.6.35主机平台:Ubuntu11.04内核版本:2.6.39交叉编译器:arm-linuc-gcc4.3.2原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6615027本文接上文ARM-Linux驱动--DM9000网卡驱动分析(一)ARM-Linux驱动--DM9000网卡驱动分析(二)下面开始看网卡设备的打开、关闭函数和操作函数static const struct net_device_ops dm9000_netdev_ops = { .ndo_open .. 阅读全文

posted @ 2011-07-18 21:33 yming0221 阅读(367) 评论(0) 推荐(0)

摘要:硬件平台:FL2440(s3c2440)内核版本:2.6.35主机平台:Ubuntu 11.04内核版本:2.6.39原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6612623下面开始分析具体的代码,这里由于使DM9000驱动更容易理解,在不影响基本的功能的前提下,这里将尽可能的简化该驱动(如:去掉该驱动中支持电源管理的功能)分析该驱动1、首先看一下该驱动的平台设备驱动的结构体定义/*平台设备驱动的结构体定义 *在该结构体中可以定义有关Power Management的管理函数 *该驱动中将其省略,侧重分析dm9000的 阅读全文

posted @ 2011-07-17 21:18 yming0221 阅读(227) 评论(0) 推荐(0)

摘要:硬件平台:FL2440(s3c2440)内核版本:2.6.35主机平台:Ubuntu11.04内核版本:2.6.39原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/66097421、下图是DM9000的引脚图2、这里我们结合具体的开发板FL2440下面是FL2440和DM9000的引脚链接图本人移植DM9000的时候将设备的资源定义放在了arch/arm/plat-s3c24xx/devs.c中,详情点击上一篇博文linux内核移植-移植2.6.35.4内核到s3c2440下面是设备的资源定义/*DM9000*/ /* 定义 阅读全文

posted @ 2011-07-15 23:02 yming0221 阅读(413) 评论(0) 推荐(0)

摘要:在内核中sk_buff表示一个网络数据包,它是一个双向链表,而链表头就是sk_buff_head,在老的内核里面sk_buff会有一个list域直接指向sk_buff_head也就是链表头,现在在2.6.32里面这个域已经被删除了。而sk_buff的内存布局可以分作3个段,第一个就是sk_buff自身,第二个是linear-databuff,第三个是paged-databuff(也就是skb_shared_info)。ok.我们先来看sk_buff_head的结构。它也就是所有sk_buff的头。structsk_buff_head{/*Thesetwomembersmustbefirst.* 阅读全文

posted @ 2011-07-15 22:57 yming0221 阅读(256) 评论(0) 推荐(0)

1

导航