Linux
文章平均质量分 80
小驹德尔驾
这个作者很懒,什么都没留下…
展开
-
linux 网络设备驱动-DM9000
<br /><br />1、Linux网络设备驱动的体系结构<br />Linux网络驱动程序的体系结构可划分为4个层次。Linux内核源代码中提供了网络设备接口及以上层次的代码,因此移植特定网络硬件的驱动程序的主要工作就是完成设备驱动功能层的相应代码,根据底层具体的硬件特性,定义网络设备接口struct net_device类型的结构体变量,并实现其中相应的操作函数及中断处理程序。<br />Linux中所有的网络设备都抽象为一个统一的接口,即网络设备接口,通过struct net_device类型的结构转载 2011-02-09 10:35:00 · 1064 阅读 · 0 评论 -
嵌入式ARM设计历程(一)
很早以前在作为一个刚刚涉及嵌入式领域的我,嵌入式系统就是一个令我向往的东西,单单从一个做技术的人的角度出发,在学校的时候已经玩了两年的单片机,帮老师做项目,参加学校各种电子类的比赛。那会儿还都是一些围绕8位,16单片机做的方案。再后来有了ARM7的课程,学校里的老师也是一知半解,所以斩获很少,内心里十分向往围绕ARM的项目,但苦于身边没有。当时的淘宝上已经渐渐的有ARM 9的开发板卖了,所以自原创 2013-10-15 22:23:24 · 1368 阅读 · 0 评论 -
嵌入式ARM设计历程(二)
1个月以后我们的核心板和底板都陆续做出来了,调试工作比我们想象的多很多,虽说参考了官方的设计,但因为增加和更换了一些IC,所以驱动上的工作有一些,也有些原理设计上的问题,林林总总调试加重新改板又花了几个月,最后也都做出来了。上层软件的工作并行的进行中,用开发板进行调试。等硬件板卡做好的时候就直接移植上去,很小的修改便可以工作,这正是我当时所想的东西。现在的态度是,嵌入式板卡的设计更新速度并不会很快原创 2013-10-17 01:04:50 · 1578 阅读 · 0 评论 -
mkyaffs移植
<br />1. 下载mkyaffs源码:<br />http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs.tar.gz?view=tar<br />2. 解压缩,进入 yaffs/utils, 修改Makefile:<br />(1) MAKETOOLS = arm-linux-<br />(2) CFLAGS = 增加“-I /your-kernel-include-dir” 指向你的平台的内核目录,例如/src/preview-kit/linux-2.6.转载 2010-12-09 13:26:00 · 1112 阅读 · 0 评论 -
yaffs文件系统
现在在网上能找到源码的FLASH日志文件系统,JFFS和JFFS2适合NOR FLASH,YAFFS是为NAND FLASH量身定做的。目前flash的文件系统比较多,用的比较多的就是JFFS2文件系统。基于NOR flash上的JFFS2文件系统可以说算是比较成熟了,支持NAND flash的JFFS2也已经发布了。源代码可以到http://www.linux-mtd.infradead.org上面下载。但是在我的测试过程中,在nand flash上挂接的JFFS2文件系统很不稳定,经常有CRC错误产生。转载 2010-12-09 10:11:00 · 926 阅读 · 0 评论 -
中断字符驱动程序
<br />经典字符程序,对一些自己不太懂的地方稍微分析了一下<br />驱动程序<br />#include <linux/module.h><br />#include <linux/kernel.h><br />#include <linux/fs.h><br />#include <linux/init.h><br />#include <linux/delay.h><br />#include <asm/irq.h><br />#include <linux/interrupt.h><br />#转载 2010-12-13 09:52:00 · 1046 阅读 · 0 评论 -
semaphore的实现机制详解
<br /> <br />semaphore是内核中比较重要和常用的同步方式之一,他主要的特点是实现了Sleep机制下的同步。也就是当获取一个semaphore但是又不能立刻获取的时候,他使当前的执行进程进入到Sleep状态中等待,当semaphore可以获取的时候,从新开始运行,而不像splin lock在获取锁的时候是BusyWait。<br />首先看其定义:<br />struct semaphore {<br /> atomic_t count; // 原子变量,是后转载 2010-12-13 17:47:00 · 1093 阅读 · 0 评论 -
按键驱动
<br />这里主要是仿照《嵌入式Linux开发完全手册》上的例子写的,只是增加了别外两个按按键。在我的mini2440开发板上有6个按键。在上两篇文章中,主要分析了驱动中的整体的流程,现在来看一个具体的例子,是如何使用中断的。1. 模块的初始化函数和卸载函数<br /> <br />/* 执行"insmod mini2440_buttons.ko"命令时就会调用这个函数*/<br />staticint __init mini2440_buttons_init (void)<br />{<br /> i转载 2010-12-13 10:16:00 · 1117 阅读 · 0 评论 -
FCLK,HCLK,PCLK,s3c2440时钟
<br /><br />为了降低电磁干扰和降低板间布线要求,芯片外接的晶振频率通常很低,通过时钟控制逻辑的PLL提高系统使时钟。<br />S3C2410/2440有两个PLL,MPLL和UPLL:UPLL用于USB设备,MPLL用于设置FCLK,HCLK,FCLK。<br />FCLK与输入晶振的比例通过寄存器MPLLCON设置。<br />FCLK,HCLK,FCLK三者的比例通过寄存器CLKDIVN,CAMDIVN(2440)设置。<br /> <br />开发板上的12MHz晶振经PLL倍频得到FC原创 2010-12-23 15:39:00 · 8732 阅读 · 0 评论 -
嵌入式ARM设计历程(三)
最近游走了多家嵌入式商家网站学习学习,发现ARM嵌入式核心板卡厂家已经渐渐开始泛滥。既有早前做开发板现在也卖点核心板卡的如:友善之臂,飞凌。也有Toradex,研华这类专供核心板卡的综合方案的供应商。核心板卡的种类大致上也都是围绕那么几家主流的IC厂商,所以大多比较雷同。我以前设计过的那款9260曾经想选用金手指的方式来做,后来放弃的,现在也看到有些厂商选用了金手指这种方式,除此之外大概还有几种:原创 2013-10-23 01:05:27 · 1769 阅读 · 1 评论