自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (4)
  • 收藏
  • 关注

原创 soc camera 子系统之soc camera host 与soc camera device 注册

上一节中,我们已经知道,某个soc camera device 已经被添加到device链表中,那么,什么情况下,它会被注册呢。下面我们就结合camera host 进一步分析。      我们来看看在soc_camera.c中有一个函数int soc_camera_host_register(struct soc_camera_host *ici),该函数有一个参数struct soc_ca

2014-02-11 11:52:59 2855 2

原创 soc camera 子系统之soc camera device初始化

从上一篇的博客soc camera 子系统简介(http://blog.csdn.net/smartvincent88/article/details/18987207)中的图中可以看出,soc camera device 是sensor的抽象,可以说,每个soc camera device 对应一个sensor或者其他的video设备。本节就结合soc_camera.c来具体分析soc came

2014-02-10 15:03:11 2501 1

转载 usb gadget

1. 前言2. 源码架构3. 枚举过程1. 前言Gadget,小饰品。USB Gadget,就是指所开发的电子设备以USB从设备的模式通过USB连接到主机。比如手机用USB线插入PC后,手机就是USB Gadget。本文以Mavell为例,以Gadget插入主机的全过程为主线,分析USB Gadget的架构。 2. 源码架构USB的源码位

2016-09-12 14:37:32 1319

转载 Linux usb子系统

一、USB协议基础知识  前序:USB概念概述  USB1.0版本速度1.5Mbps(低速USB) USB1.1版本速度12Mbps(全速USB)  USB2.0版本速度480Mbps(高速USB)。  USB 分为主从两大体系,一般而言, PC 中的 USB 系统就是作主,而一般的 USB 鼠标, U 盘则是典型的 USB 从系统。  USB主控制器这一块,我们至少要开发出 US

2016-09-12 14:08:43 2312

转载 arm体系结构:arm920t

CPU一上电就处于 ARM 状态。    如果对于arm的CPU的工作模式和状态有疑惑: ** ARM处理器的寄存器,ARM与Thumb状态,7中运行模式     如果对arm刚上电的工作模式和状态有疑惑:**arm 上电或复位时的状态,模式 ARM异常中断处理概述    1、中断的概念             中断是一个过程,是CPU在执行当前程序的过程中因硬件或

2016-05-18 18:14:19 6036 2

转载 usb

Universal Serial BusThe Universal Serial Bus was first introduced in 1994 with the intention of replacing various specialized interfaces, and to simplify the configuration of communication d

2016-04-07 18:34:45 824

转载 USB 协议

目录(?)[+]0. 基本概念       一个【传输】(控制、批量、中断、等时):由多个【事务】组成;       一个【事务】(IN、OUT、SETUP):由一多个【Packet】组成。       USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。一个USB设备可以有多个管道(pipe

2016-03-17 18:30:25 431

原创 MBR 小结

在介绍exfat文件系统之前,首先介绍一下MBR,MBR作为传统的DOS系统的引导扇区,其中可能存储有bootloader的code,但是如果用于linux这样的系统,这部分是不许要的,因此,一般是0.0-0x88主引导程序引导程序0x89– 0x1bd出错信息数据区数据区0x1be–

2015-08-12 16:03:16 655

转载 Device Tree:代码分析

一、前言Device Tree总共有三篇,分别是:1、为何要引入Device Tree,这个机制是用来解决什么问题的?(请参考引入Device Tree的原因)2、Device Tree的基础概念(请参考DT基础概念)3、ARM linux中和Device Tree相关的代码分析(这是本文的主题)本文主要内容是:以Device Tree相关的数据流分析为索引

2015-04-21 20:24:23 547

转载 linux kernel的中断子系统:GIC代码分析

一、前言GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1~V4(V2最多支持8个ARM core,V3/V4支持更多的ARM core,主要用于ARM64服务器系统结构)。目前在ARM官方网站只能下载到Version 2的GIC architecture sp

2015-04-14 09:59:04 1279

转载 GNU-ld链接脚本浅析

0. Contents1. 概论2. 基本概念3. 脚本格式4. 简单例子5. 简单脚本命令6. 对符号的赋值7. SECTIONS命令8. MEMORY命令9. PHDRS命令10. VERSION命令11. 脚本内的表达式12. 暗含的连接脚本1. 概论每一个链接过程都由链接脚本(linker script, 一般以l

2015-02-26 09:52:34 476

转载 使用Linux中的fdisk来分区

一、fdisk 的介绍 fdisk - Partition table manipulator for Linux ,译成中文的意思是磁盘分区表操作工具;本人译的不太好,也没有看中文文档;其实就是分区工具fdsik 能划分磁盘成为若干个区,同时也能为每个分区指定分区的文件系统,比如linux 、fat32、 linux 、linux swap 、fat16 以及其实类Unix类操作系统的文件系

2015-02-06 09:44:36 383

转载 IPTable相关理解记录

Iptable的处理机制IPTable是一种封包过滤机制,版本在2.4.xx以上的Linux内核都支持并预装iptable,而在此之前以2.2.xx为核心的linux主要以ipchains作为过滤机制。IPTable具有过滤指定的数据封包、IP伪装、达成 NAT 的主机等功能。IPTables与NetfilterIPTables和Netfilter的关系有时容易使人混淆不清。这

2014-12-05 13:25:23 461

转载 iptable 简析

filter表的实现        filter表的实现函数实际上就是模块iptable_filter.o的init函数,位于net/ipv4/netfilter/iptable_filter.c,Line128。其主要工作是首先通过ipt_register_table()函数进行表的注册,然后用nf_register_hook()函数注册表所监听的各个HOOK。    其中,对H

2014-12-05 12:56:34 690

转载 嵌入式系统文件系统比较 jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs

Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各类文件系统 进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口。  Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。之

2014-11-21 16:02:37 426

转载 UBIFS介绍 - MTD网站

在了解UBIFS之前一定要注意UBIFS和任何传统的文件系统是不一样的:UBIFS不是运行在block device之上的(比如hard disk, MMC/SD卡,USB flash驱动等等)。UBIFS是运行于raw flash之上。请在开始UBIFS之旅前确保理解raw flash和MMC flash的区别。OverviewUBIFS是nokia工程师在the u

2014-11-21 16:01:22 625

转载 Cramfs、JFFS2、YAFFS2的全面对比

由于嵌入式系统自身存在一些特殊要求,使得一些传统的文件系统(如FAT、EXT2等) 并不十分适合。专用的嵌入式文件系统应有一些自身的特性,如文件系统面对的储存介质特殊性、文件系统应具有的跨平台的安全性,以及整个系统的即时性等。本文介绍了3种源码开放的嵌入式文件系统Cramfs、JFFS2、YAFFS2,详细分析比较了这3种文件系统的主要性能,并根据分析结果指出了各自的适用领域。       

2014-11-21 15:55:00 558

转载 JFFS2 文件系统及新特性介绍

登录 (或注册)中文JFFS2 是一个开放源码的项目(www.infradead.org)。 它是在闪存上使用非常广泛的读/写文件系统,在嵌入式系统中被普遍的应用。这篇文章首先分析了在闪存上使用 JFFS2 的必要性,然后详细的阐述了 JFFS2 实现的内部机制,包括日志结构的文件系统,关键的数据结构,挂载过程和垃圾收集机制。同时也指出了 J

2014-11-19 12:00:51 630

转载 轻量级 NAND 坏块管理方法分析及改进

NAND Flash 在嵌入式系统中有着广泛的应用,负载平均和坏块管理是与之相关的两个核心议题。Uboot 和 Linux 系统对 NAND 的操作都封装了对这两个问题的处理方法。 本文首先介绍了现有的几类坏块管理(BBM)方法,通过分析典型嵌入式系统的 NAND 存储表,指出了轻量级管理方法的优势所在,分析了当前广泛使用的轻量级管理方法,指出其缺陷所在并详细说明了改进方法。0 评论:

2014-10-22 14:57:17 785

转载 alsa音频架构

alsa音频架构2-ASoc分类: linux设备驱动2013-05-28 11:58 765人阅读 评论(0) 收藏 举报ALSAASoClinuxdai嵌入式设计ASoc的目的是为嵌入式系统片上处理器音频单元或外部的音频解码芯片提供更好的ALSA支持ASoC有多个组件组成snd_soc_platform/snd_soc_codec/snd_soc_dai/snd

2014-09-26 10:45:40 847

转载 ARM與Cortex筆記-ARM MPCore (Multi-Processor Core) 多核心架構解析.

隨著目前SmartPhone的應用與複雜度增加,這類消費性電子產品,必須要能在考量功耗與持久性的前提下,達成使用者可接受的高效能,並且還要有足夠的使用與待機時間,基於如此,ARMMPCore多核心架構,就是一個在消費性電子產品上可以考慮的處理器架構選擇. 參考ARM網站有關CortexA9Performance的介紹(http://www.arm.com/products/processo

2014-09-24 15:04:36 1139

转载 Android 筆記-Linux Kernel SMP (Symmetric Multi-Processors) 開機流程解析 Part(4) Linux 多核心啟動流程-kthreadd 與相關的核

kthread第一次出現在LinuxKernel中是在Kernel版本2.6.4時,一開始的實作尚未有本文提到的kthreaddTask的具體架構,隨著版本的演進,除了這部份的設計完整外,需要產生KernelThread的實作也都已經改用kthread機制.本文會先針對kthreaddTask行為加以說明,並會以在啟動後,屬於KernelMode產生的KernelThread的個別行為

2014-09-24 15:02:15 740

转载 Android 筆記-Linux Kernel SMP (Symmetric Multi-Processors) 開機流程解析 Part(3) Linux 多核心啟動流程從rest_init到ker

承襲之前的內容,本文會先把resr_init到kernel_init的流程做一個說明. 並針對Secondary處理器Booting,CPU Idle省電機制與CPU Up/Down HotPlug機制做介紹. 而屬於核心 Kthreadd機制,會放到下次的文章中.             Linux Kernel針對CPU Idle與對應的省電機制,已經有滿不錯的框架,只要處理器平台開發

2014-09-24 15:00:38 848

转载 Android 筆記-Linux Kernel SMP (Symmetric Multi-Processors) 開機流程解析 Part(2) Linux Kernel SMP zImage到st

Mmmmmm,必須承認,我把這篇文章寫的有點囉嗦,以前在Linux Kernel上的工作,沒有留下太多的筆記,抽象的概念,容易隨著下一個產品或是技術的開發,成為過往記憶的一部分,這次重新整理,希望以後回來看時,可以很快Pick-up所有的細節,所以在一些枝微末節上,會比較嘮叨.也因此,如果你原本就對ARM與Linux Kernel原始碼有一定的基礎,可能讀起本文來會比較輕鬆些. 若是有些部分,

2014-09-24 14:58:38 1300

转载 ARM LINUX 内核启动

1. kernel运行的史前时期和内存布局在arm平台下,zImage.bin压缩镜像是由bootloader加载到物理内存,然后跳到zImage.bin里一段程序,它专门于将被压缩的kernel解压缩到KERNEL_RAM_PADDR开始的一段内存中,接着跳进真正的kernel去执行。该kernel的执行起点是stext函数,定义于arch/arm/kernel/head.S。在分析st

2014-09-24 14:38:27 548

转载 Android 筆記-Linux Kernel SMP (Symmetric Multi-Processors) 開機流程解析 Part(1) Boot-Rom與UBoot.

本文主要針對Linux Kernel支援ARM MPCore架構下所需的多核心開機流程作一個介紹,所涉及的內容會以筆者認為值得進一步說明的內容為主,從目前市面上的產品來分析,雖然都是針對ARM MPCore的產品,然而這些流程上都還是有所出入,也因此,本文的內容主要是提供實作上的介紹與例子,實際的產品開發,請以所參與的MPCore SoC計畫為主. 其實只要能掌握好ARM處理器的行為,有關

2014-09-24 10:34:17 924

原创 soc camera子系统之注册video device设备

该函数是用于soc camera 子系统向v4l2子系统注册video_device设备,这个设备是v4l2子系统的核心设备。先展开代码.首先展开video_dev_create函数,代码如下:static int video_dev_create(struct soc_camera_device *icd){ struct soc_camera_host *ici = t

2014-04-22 16:28:31 2363

原创 soc camera子系统之初始化i2c client

Linux v4l2 soc camera子系统分析

2014-04-21 16:27:27 2592

原创 mmc_rescan_try_freq 简析

继之前的文章mmc_rescan之后,我们来分析一下mmc_rescan_try_freq,顾名思义,就是用butong

2014-04-09 09:29:10 3251

原创 mmc rescan简析

mmc rescan是mmc host的detect work的功能函数,该函数

2014-04-08 12:27:33 5620 2

原创 mmc host 之内核接口

当我们在编写mmc host驱动时,不可避免的要调用mmc_alloc_host这个内核接口,它不仅为host申请分配内存,而且会做一定的初始化,现在贴出代码:struct mmc_host *mmc_alloc_host(int extra, struct device *dev){ ...... host = kzalloc(sizeof(struct mmc_host) + extr

2014-04-08 11:45:25 1468 1

转载 S3C2440 SDRAM驱动配置编程

SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)也就是通常所说的内存。内存的工作原理、控制时序、及相关控制器的配置方法一直是嵌入式系统学习、开发过程中的一个难点。我们从其硬件的角度来分析其原理,然后再引出SDRAM的驱动编写过程。内存是代码的执行空间,以PC机为例,程序是以文件的形式保存在硬盘里面的,程序在运行之前先由操作系

2014-02-13 14:39:10 1011

原创 soc camera 子系统简介

在介绍soc_camera 子系统之前,先看这张结构图。从如上,我们可以看出,soc_camera 子系统是基于V4L2 system的,其实吧,即使你不使用soc_camera子系统,一样可以写摄像头驱动,那么它存在的意义到底是什么呢?目前,大多数移动设备使用的camera sensor不像传统的PC摄像头那样通过USB来连接,而是通过I2C总线与SOC连接,SOC通过I2C来配置和控制设备,通

2014-02-08 15:49:08 3230

原创 V4L2 摄像头应用程序编程

1. 打开设备文件int fd;fd = open("/dev/video0",O_RDWR | O_NOBLOCK,0);通常来说,驱动应该支持read/write和mmap两种传递帧数据的方式,但是较多情况下,采用的是mmap方式,如果应用通过read/write来和驱动进行数据交互,则在打开设备的时候设置为阻塞模式或者非阻塞模式,都可以,但是如果是应用是使用mmap

2014-02-08 11:59:01 1798

原创 Android消息机制之Looper

android中非常重要的一个消息通信机制handler,可以理解为是android进程内部的一种消息通信机制,通过消息队列,提高系统的并发性。       根据上图,可以看出,handler消息队列的核心是looper,其实Looper实质是一个“绑定”到某个线程的无限循环,该循环不停的从消息队列中取出消息,并且分发给该消息对应的target,也就是一个Handler来实际的分发处理该消

2014-02-07 11:56:21 688

原创 蓝牙配对认证浅析

1 何为配对?是指两个蓝牙设备首次通讯时,相互确认的过程,两个蓝牙设备一经配对之后,随后的通讯就不必每次配对,只需要认证就可以了。2 安全模式蓝牙支持三种安全模式:(1)    设备没有任何安全措施的“无安全操作”。(2)    信道建立之前不需要启动安全协议的“业务级安全模式”。(3)    终端在建立链路之前必须启动安全模式的“链路安全模式”,安全级别最高。目前蓝牙设备

2014-01-22 17:05:00 5348

原创 关于开通博客

考虑了很久,今天终于开通了这个博客。我其实不太善于文字的人,虽然以前很热爱文学,但是,自从选择理科之后,也就不怎么去关注文学了,所以,本来一般的文字功底,就日渐干涸了。我其实挺关注CSDN的,从之前,通过CSDN下载资料,到慢慢的去关注CSDN上面的一些好的博客,即使偶尔在工作时间,依然抽空浏览一下,一是可以放松一下,二是关注行业的发展以及一些好的技术。今天之所以决定开通这个博客,其实也是一个很普

2014-01-22 09:57:01 548

LInux_3.x 内核ARM架构

介绍了linux dts的使用以及解析,ARM在linux下的整体架构

2015-05-22

SD spec 3.01

sd 官方3.01规范,是sd驱动开发以及IC设计手头必备资料

2015-05-21

基于SD卡的FAT32解析

基于SD card解析了FAT32文件系统,描述了FAT32在磁盘上的分布,管理方式,在磁盘上的存储格式等

2015-05-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除