![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux嵌入式驱动开发
文章平均质量分 86
林伟
怪人一个!
展开
-
gspca驱动移植介绍
gspca webcam drivers 是linux下摄像头支持的最广泛的一个驱动, 这是由一个法国医生(http://mxhaard.free.fr/)所设计编写的.不过从2007年底开始,已经不再维护, 最后一个版本为20071224.ubuntu中可以在通过apt-get install gspca-source安装代码, 不过此代码再2.6.26以上内核会编译出错.而从lw原创 2010-02-10 17:08:00 · 5229 阅读 · 0 评论 -
The Linux USB Input Subsystem, Part I
The Linux USB input subsystem is a single, harmonized way to manage all input devices. This is a relatively new approach for Linux, with the system being partly incorporated in kernel version 2.4原创 2010-03-01 14:31:00 · 1366 阅读 · 0 评论 -
如何编写linux下nand flash驱动-1
【简介】如何编写linux下nand flash驱动-1version: 1.0date:20090721Author:crifanMail:green-waste(At)163.com【编写驱动之前要了解的知识】1. 硬件特性:【Flash的硬件实现机制】Flash全名叫做Flash Memory,属于非易失性存储设备(Non-volatile M转载 2010-03-09 14:48:00 · 1212 阅读 · 0 评论 -
【简介】如何编写linux下nand flash驱动-2
version: 1.0date:20090721Author:crifanMail:green-waste(At)163.com 上接:【简介】如何编写linux下nand flash驱动-1http://green-waste.blog.163.com/blog/static/3267767820096221127554/ 【读(read)操作过程详解】转载 2010-03-09 14:51:00 · 1392 阅读 · 0 评论 -
Android Wifi Driver Porting
1. 修改 build/target/board/generic/BoardConfig.mk定义使用 wireless extension 作为wpa_supplicant 的driver.# Wifi related definesBOARD_WPA_SUPPLICANT_DRIVER := WEXT2. 修改hardware/libhardware_legacy/wifi/wifi原创 2010-04-08 19:24:00 · 4193 阅读 · 1 评论 -
alsa 音频库的移植
Andrew Huangbluedrum@163.comalsa 是在LINUX出现比较晚的音频处理库,主要是针对原有的OSS的库进行改进.性能更好,支持多个播放源等.但相应的,增加的编程的复杂性. 旧的oss是采用标准文件IO接口,设备打开采用open,声音播录是采用数据IO接口(read/write),设备的参数采用ioctl来控制.都是系统调用因此无需额外库和配置文件来操作设备转载 2010-04-07 17:12:00 · 15174 阅读 · 0 评论 -
【已解决】yaffs2中,mount mtd block设备后,insmod就死掉了
【现象】Linux 2.6.22,加了最新的yaffs2,实现了nand flash驱动后,用mtd test测试驱动工作都正常的。但是,最新发现一个很诡异的问题:在mount /dev/mtdblock4 /mnt/usb_msc 后,自动挂载成yaff2文件系统之后,再去insmod任何一个ko,都会死掉,而且还是没有任何输出信息的,连kernel的oo原创 2010-04-08 10:29:00 · 3773 阅读 · 1 评论 -
linux logo 的启动方式
<br /> <br />1.方案分析<br />ARM-Linux启动时会先在LCD左上角显示一个ARMLINUX的小企鹅图案,也就是我们所说的bootlogo。<br />首先分析一下Logo的显示代码:<br />不难发现Logo显示是在加载显示驱动fb后由kernel/drivers/video/fbcon.c中的fbcon_show_logo函数来完成的。<br />fbcon_show_logo函数中有很多兼容性代码,不是都会用到的!我们用的是SHARP(夏普)的TFT真彩屏.<br />再仔细原创 2010-07-08 16:37:00 · 4323 阅读 · 0 评论 -
嵌入式系统的动态电源管理技术
嵌入式系统的动态电源管理技术作者:刘旭晖 Raymond转载请注明出处Email:colorant@163.comBLOG:http://blog.csdn.net/colorant/主页:http://sites.google.com/site/rgbbones/ 在嵌入式系统中,电源的管理和功耗的控制,始终是一个非常重要的任务。所以通常面向嵌入式应用的CPU都转载 2010-05-15 12:12:00 · 1878 阅读 · 0 评论 -
做嵌入式经典网站!(转)
关于嵌入式开发的站点,提供非常多关于嵌入式开发的资料。包括开发公司,技术文档,免费资源等等。版面包括busses & boards,embedded software,dsp,embedded systems,open source,rtos,embedded chips,system-on-a-chip 等等。强烈推荐http://www.eg3.com/- 外文 2. The First转载 2010-05-19 17:38:00 · 3152 阅读 · 1 评论 -
关于Linux的视频编程(v4l2编程)
一.什么是video4linuxVideo4linux2(简称V4L2),是linux中关于视频设备的内核驱动。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video0下。二、一般操作流程(视频设备):1. 打开设备文件。 int fd=open(”/dev/video0″,O_RDWR);2. 取得设备的capability,看看设备具有什么原创 2010-05-20 16:50:00 · 1919 阅读 · 0 评论 -
蓝牙驱动和Profile
昨天看了一下介绍蓝牙协议文档,今天索性对照看了看kernel里的代码(bluez),这里记点笔记,还是继承了老毛病,只关注整体流程而忽略细节,先了解个大概,等真正需要时再仔细分析。net/hci_core.cHCI 在主机端的驱动主要是为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如像 UART、USB和PC Card等等。hci_core.c相当于一个框架,用于把各种具体通信方式胶合起来,并提供一些公共函数的实现。hci_cmd_t原创 2010-05-31 20:15:00 · 6272 阅读 · 3 评论 -
Firmware 加载原理分析
<br />前言 <br /> 前段时间移植wifi驱动到android的内核上,发现firmware的加载始终出错,问了几个人,都不是很了解,没办法,只好自己研究一下。原理分析<br /> 从本质上来说,firmware需要做的事情包括两件:<br />1, 通知用户态程序,我需要下载firmware了;<br />2, 用户态程序把用户态的数据copy到内核层;<br />3, 内核把内核态的数据写到设备上,比如wifi模块里;<br />其中第三步应该不原创 2010-06-01 21:55:00 · 10422 阅读 · 2 评论 -
ARM MMU工作原理剖析
<br /><br />一、MMU的产生<br /> 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多称为覆盖块(overlay)的片段。覆盖块0首先运行,结束时他将调用另一个覆盖块原创 2010-06-02 17:16:00 · 5973 阅读 · 5 评论 -
MMU的初始化与开启实验
<br /><br />内存管理单元MMU负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。<br /> 4种映射长度:段(1MB)、大页(64KB)、小页(4KB)、极小页(1KB)。<br /> 对每个段都可以设置访问权限。<br /> 大页、小页的每个子页(sub-page,即被映射页的1/4)都可以单独设置访问权限。<br /> 没有启动MMU时,CPU核、cache、MMU、外设等所有部件使用的都是物理地址。<br /> 理论知识我就不多写了,转载 2010-06-02 17:17:00 · 3953 阅读 · 1 评论 -
Linux设备模型之input子系统详解
<br />Linux设备模型之input子系统详解一:前言最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)键盘驱动将检测到的所有按键都上报给了input子系统。Input子系统是所有I/O设备驱动的中间层,转载 2010-11-18 11:14:00 · 3698 阅读 · 0 评论 -
Linux设备模型之input子系统详解
Linux设备模型之input子系统详解一:前言最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)键盘驱动将检测到的所有按键都上报给了input子系统。Input子系统是所有I/O设备驱动的中间层,为上层提供转载 2010-11-18 11:13:00 · 3375 阅读 · 0 评论 -
Linux Platform Device and Driver
从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。 Linux platform driver机制和传统的device driver 机制(通过driver_registe原创 2010-03-03 10:05:00 · 2167 阅读 · 1 评论 -
Using the Input Subsystem, Part II
No matter how many buttons an input device has or how many kinds of events it can generate, you can now work with it from user space.In last months article, we saw how the Linux input sub转载 2010-03-01 14:27:00 · 1438 阅读 · 1 评论 -
Linux Input Device 介紹: APIs
Linux Input Device 介紹: APIsjollen 發表於 April 8, 2009 12:18 PMLinux 的 Input Device 是重要的一個 subsystem,在進行實例介紹前,先大略了解一下相關的 API。Linux Input Deviceinput.c是Linux的”input”驅動程式转载 2010-03-01 14:21:00 · 1849 阅读 · 0 评论 -
linux zImage生成过程详解
内核编译完成后会生成zImage内核镜像文件。关于bootloader加载zImage到内核,并且跳转到zImage开始地址运行zImage的过程,相信大家都很容易理解。但对于zImage是如何解压的过程,就不是那么好理解了。本文将结合部分关键代码,讲解zImage的解压过程。 先看看zImage的组成吧。在内核编译完成后会在arch/arm/boot/下生成zImage。 在ar原创 2009-12-20 21:15:00 · 2785 阅读 · 0 评论 -
pci设备驱动
一、PCI简介 PCI是一种外设总线规范。我们先来看一下什么是总线:总线是一种传输信号的路径或信道。典型情况是,总线是连接于一个或多个导体的电气连线,总线上连接的所有设备可在同一时间收到所有的传输内容。总线由电气接口和编程接口组成。本文讨论Linux 下的设备驱动,所以,重点关注编程接口。 PCI是Peripheral Component Interconnect(外围设备互联)的简称原创 2009-12-20 22:02:00 · 1251 阅读 · 0 评论 -
Linux下PCI设备驱动程序开发
PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。Linux的内核能较好地支持PCI总线,本文以Intel 386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架。一、PCI总线系统体系结构PCI是原创 2009-12-20 22:03:00 · 1172 阅读 · 0 评论 -
U-BOOT全线移植
【摘要】本节介绍了bootloader的基本概念。首先分析了为什么要针对特定的CPU和开发板移植bootloader的必要性。然后介绍了两种如何在裸板中烧写bootloader的方法以及如何确定烧写地址。其次介绍了产品发布的启动加载模式和开发使用的下载模式(更新内核文件系统及bootloader自身)。最后介绍了bootloader的两个通用启动阶段的流程及代码特性和运行位置。【关键词】b原创 2009-12-20 22:13:00 · 2684 阅读 · 0 评论 -
linux内核启动过程——基于S3C2410
(1)zImage自解压本文以流行的Samsung公司的S3C2410,mini2440平台和linux-2.6.29为例,介绍如何在ZIX嵌入式开发环境下探索linux内核启动过程。Linux内核启动一般由外部的bootloader引导,也可以在内核头部嵌入一个loader,实际的应用中这两种方式都会经常遇到。所以要了解内核启动最开始的过程,必须对bootloader如何引导内核有所熟悉。下面我原创 2009-12-20 22:54:00 · 2387 阅读 · 0 评论 -
Linux系统下内核定时器的用法
总的来说,timer的用法还是很简单的。主要需要定义一个timer_list变量timer、先初始化timer init_timer(&timer); then 对timer的相关参数赋值: timer.function = fun; timer.expires = jiffies + TIMER_DELAY; add_timer(&timer); 在定时器时间到的时候原创 2009-12-18 18:43:00 · 1912 阅读 · 0 评论 -
GUI 主循环设计及其在 MiniGUI, GTK, QT 的实现
GUI 主循环设计及其在 MiniGUI, GTK, QT 的实现作者: 刘鹏日期: 2009-05-22介绍了 GUI 主循环的设计思路,并分析了 MiniGUI, GTK, QT 的主循环。简介我们知道GUI应用程序都是事件驱动的。这些事件大部分都来自于用户,比如键盘事件、鼠标事件或笔点事件。还有一些事原创 2009-12-19 10:14:00 · 1619 阅读 · 0 评论 -
Linux设备模型之input子系统详解(一)
------------------------------------------ 本文系本站原创,欢迎转载! 转载请注明出处:http://ericxiao.cublog.cn/ ------------------------------------------ 一:前言 在键盘驱动代码分析的笔记中,接触到了input子系统.键盘驱动,键盘驱动将检测到的所有按键都上报给了input子系统。I原创 2010-03-01 13:53:00 · 4328 阅读 · 0 评论 -
linux input subsystem 架构分析
主要数据结构struct input_dev { void *private; const char *name; const char *phys; const char *uniq; struct input_id id; unsigned long evbit[NBITS(EV_MAX)]; unsigned long keybit[NBITS(KEY_MAX)]; un原创 2010-03-01 14:18:00 · 2309 阅读 · 0 评论 -
DM9000A网卡芯片介绍
1、总体介绍 该DM9000是一款完全集成的和符合成本效益单芯片快速以太网MAC控制器与一般处理接口,一个10/100M自适应的PHY和4K DWORD值的SRAM 。它的目的是在低功耗和高性能进程的3.3V与5V的支持宽容。 DM9000还提供了介质无关的接口,来连接所有提供支持介质无关接口功能的家用电话线网络设备或其他收发器。该DM9000支持8位, 16位和32 -位接口访问内部原创 2009-12-22 14:41:00 · 2232 阅读 · 0 评论 -
Android的IPC机制Binder的各个部分
第一部分Binder的组成1.1 驱动程序部分驱动程序的部分在以下的文件夹中:kernel/include/linux/binder.hkernel/drivers/android/binder.c binder驱动程序是一个miscdevice,主设备号为10,此设备号使用动态获得(MISC_DYNAMIC_MINOR),其设备的节点为:/dev/binder binder驱动程序会转载 2009-12-21 14:22:00 · 1493 阅读 · 0 评论 -
Simple Guide for Porting Android Kernel
作者:刘旭晖 colorant@163.com 转载请注明出处 http://blog.csdn.net/colorant/ 移植Android的kernel到实际的硬件平台上,很多人很早就做过这件事了,不过相关的文档和经验总结不多,我就写一个吧,也为了自己记录一下大致的流程,以后好继续。 1 Android内核Porting相关背景知识 1.1 运转载 2009-12-21 14:28:00 · 869 阅读 · 0 评论 -
Linux设备驱动简析--dm9000网卡驱动
/**By Neil Chiao (neilchiao at gmail.com)*转载请注明出处:neilengineer.cublog.cn*本文部分内容来自网络*欢迎到“新星湾(www.xinxingwan.com)”指导*/ 1、Linux网络设备驱动的体系结构Linux网络驱动程序的体系结构可划分为4个层次。Linux内核源代码中提供了网络设备接口原创 2009-12-21 18:28:00 · 1794 阅读 · 0 评论 -
2410平台上dm9000a网卡驱动分析
该驱动基于linux-2.6.24.4内核。 首先,需要在arch/arm/mach-s3c2410/mach-smdk2410.c文件中添加如下代码:static struct resource s3c_dm9000_resource [] = { [0] = { .start = 0x10000000, .e原创 2009-12-21 18:39:00 · 2140 阅读 · 0 评论 -
NAND FLASH ECC校验原理与实现
ECC简介 由于NAND Flash的工艺不能保证NAND的Memory Array在其生命周期中保持性能的可靠,因此,在NAND的生产中及使用过程中会产生坏块。为了检测数据的可靠性,在应用NAND Flash的系统中一般都会采用一定的坏区管理策略,而管理坏区的前提是能比较可靠的进行坏区检测。 如果操作时序和电路稳定性不存在问题的话,NAND Flash出错的时候一般不会造成转载 2009-12-22 09:43:00 · 1924 阅读 · 0 评论 -
Linux设备模型之input子系统详解(二)
; break; } if (type != EV_SYN) dev->sync = 0; if ((disposition & INPUT_PASS_TO_DEVICE) && dev->event) dev->event(dev, typ原创 2010-03-01 14:07:00 · 2399 阅读 · 0 评论 -
V4L2编程框架(*)
<br />V4L2编程框架(*)2009年2月17日zooyoo发表评论阅读评论<br />V4L2较V4L有较大的改动,并已成为2.6的标准接口,函盖video/dvb/FM…,多数驱动都在向V4l2迁移。更好地了解V4L2先从应 用入手,然后再深入到内核中结合物理设备/接口的规范实现相应的驱动。本文先就V4L2在视频捕捉或camera方面的应用框架。<br />V4L2采用流水线的方式,操作更简单直观,基本遵循打开视频设备、设置格式、处理数据、关闭设备,更多的具体操作通过ioctl函数来实现。1.打开转载 2010-11-22 11:40:00 · 4015 阅读 · 1 评论