Welcome 微信登录

首页 / 操作系统 / Linux

嵌入式Linux USB WIFI驱动的移植

嵌入式Linux USB WIFI驱动的移植

硬件平台:飞思卡尔MX258开发板操作系统:Linux2.6.31WIFI: RT2860 USB WIFI模组交叉编译环境:gcc version 4.1.2调试步骤:第一步:测试USB HOST接口在menuconfig中将USB HOST设置为内核模式:重新编译内核后启动开发板,插入U盘并挂载:mount /dev/sda1 /tmpls /tmp可以看到U盘已经正常挂载,测试USB HOST OK!第二步:网上下载雷凌最新的USB驱动,2011_0...
Linux移植随笔:让内核支持nor flash

Linux移植随笔:让内核支持nor flash

内核:linux-2.6.37.3nor flash芯片:SST39VF6401B网上有文章说了如何让linux内核支持nor flash。不过那些转载的文章中没有头文件(因为使用了<尖括号>,在HTML语言中是注释的意思)。后来研究了类似的驱动文件,发现它们都是大同小异,只是在一些参数上有改变而已。本文中源代码基于那些转载文章的代码。基于嵌入式Linux平台的最小文件系统的制作MTD设备驱动程序在./driver/mtd下面,分为nor fl...
嵌入式Linux下真彩Logo的实现

嵌入式Linux下真彩Logo的实现

目前嵌入式产品越来越多了,一般都能带Logo显示启动的。让我们来看看Logo显示是怎么做的(我仅仅做Linux方面的,没有做过WinCE的)。参考一些嵌入式平台的做法,基本是fb_prepare_logo(struct fb_info *info, int rotate)、fb_show_logo(struct fb_info *info, int rotate)两个函数实现的。但是该两个函数其实没有参考的价值。最简单的做法就是调用该两个函数。1. 在 x...
Android开机画面制作(Bootloader阶段)

Android开机画面制作(Bootloader阶段)

Android开机画面由三部分组成,第一部分在bootloader启动时显示(在Android1.5版本以前是显示一个小企鹅,1.5版本及之后取消了);第二部分是在Kernel启动初始化时,出现“A N D R I O D”文字字样画面;第三部分是在平台图形系统启动后,出现含闪烁的ANDROID字样的动画。在bootloader阶段,aboot_init函数中,调用了display_init完成显示的初始化动作后,接着调用display_image_on_...
C/C++中宏和内敛函数(inline)的区别

C/C++中宏和内敛函数(inline)的区别

最近,老是有人问我,有关内敛函数和宏的区别,说了一遍又一遍,不想说了,写出来,想知道,看博客吧:C/C++中如果函数前面加关键字 inline ,那么表示该函数是内敛函数,如下所示: inline int Fun(int x) { return ((x > 5) && (x < 10)) ? x : 0; } 从样子来说,内敛函数的功能和宏定义(#define )差不多,即在编译阶段进行替换,减少运行时间,提高运行效率。区别是宏...
Linux下 s3c2440 lcd驱动移植详解

Linux下 s3c2440 lcd驱动移植详解

1. LCD工作的硬件需求: 要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LCD控制器,如S3C2410/2440等。通过LCD控制器就可以产生LCD驱动器所需要的控制信号来控制STN/TFT屏了。2. S3C2440内部LCD控制器结构图:我们根据数据手册来...
Linux移植随笔:git的使用

Linux移植随笔:git的使用

搞了一天的yaffs2文件系统挂载,结果还是挂载不上去。收获之一是知道如何使用git下载源代码。以前下载的yaffs2源代码在新的内核中编译不通过,而又不知道如何下载yaffs2的源代码包,只好使用git来下载了。开始是在windows下安装一个git客户端,可以下载。但是源代码及脚本文件的格式全部变成DOS格式的,在内核中不能使用,尤其是脚本文件,因为两个系统对回车换行的理解是不同的。没办法,只能在linux平台下下载源代码了。这里记录一下。git源代码...
u-boot移植随笔:继续使用svn进行版本控制(合并分支实例)

u-boot移植随笔:继续使用svn进行版本控制(合并分支实例)

搞u-boot很久了,一直在用svn进行版本控制,感觉非常好。不过我是最近才找到合并分支的方法,这里介绍一下。首先说一下我的环境。1、使用svn开发的模式:所有开发都在分支进行,完成某一阶段时,将其合并到主干上,同时作一标签,即tag。svn_repos仓库中u-boot目录下有三个目录:trunk、branches、tags,分别保存主干代码、分支代码和标签。分支名称如u-boot-branch-xxx,标签名称如release-1.x_xxx。比如u-...
Android 的 Linux内核

Android 的 Linux内核

从Linux内核的角度来分析Android的内核,希望给初学者提够有用的信息。本章将简单的介绍 Android内核的全貌,起到一个抛砖引玉的作用。从下一篇开始将详细介绍每一个Android内核驱动程序及其作用。Android内核是基于Linux 2.6内核的(目前最新开发版本是2.6.31),它是一个增强内核版本,除了修改部分Bug外,它提供了用于支持Android平台的设备驱动,其核心驱动主要包括:Android Binder,基于OpenBinder框...
Linux DM9000网卡驱动程序完全分析

Linux DM9000网卡驱动程序完全分析

说明1:本文分析基于内核源码版本为linux-2.6.31 说明2:本文在理解了linux中总线、设备和驱动模型的基础上加以分析代码虽然Linux驱动程序应该是和具体的硬件平台分离的,但是为了更好的理解DM9000的驱动程序,这里还是结合一下Mini2440开发板,这样也可以更好的体会如何实现驱动和平台分离。本文分成以下几个部分: 一、Mini2440开发板上DM9000的电气连接和Mach-mini2440.c文件的关系。 二、两个重要的结构体介绍:sk...
学习笔记之Linux内核同步方法

学习笔记之Linux内核同步方法

一、程序并发执行的原因在用户空间:调度程序完全可能选择另一个高优先级的进程到处理器上执行,所以就有可能一个程序正处于临界区时被非自愿的抢占了,如果新调度的的进程随后也进入到同一个临界区,前后两个进程之间就会产生竞争。信号是异步发生的也有可能产生竞争条件。在内核空间:中断:中断几乎可以在任何时候异步发生,也就可能随时打断当前正在执行的代码。软中断和tasklet:内核能在任何时候唤醒或调度软中断和tasklet,打断当前正在执行的代码。内核抢占:因为内核可以...
Linux设备模型之platform_device和platform_driver

Linux设备模型之platform_device和platform_driver

在《Linux设备模型分析之基本数据结构》一文中我分析了kobject,kset,device,device_driver等构成Linux设备模型的重要数据结构。但在分析Linux内核代码时这些原始数据结构大多被platform_device和platform_driver所封装代替,下文采用at91sam9260开发板提供的Linux2.6.19内核,剖析platform_device和platform_driver的使用。首先来看这两个结构体的定义,都...
<< 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 >>