自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

亚亚图雷的专栏

积累 分享

  • 博客(41)
  • 资源 (12)
  • 收藏
  • 关注

原创 USB包格式解析

本文对应usb2.0协议的第八章Protocol Layer。 数据是由二进制数字串构成的,首先数字串构成域(有七种),域再构成包,包再构成事务(IN、OUT、SETUP),事务最后构成传输(中断传输、并行传输、批量传输和控制传输)。 (一)域:是USB数据最小的单位,由若干位组成(至于是多少位由具体的域决定),域可分为七个类型:   1、同步域(SYNC),是用来告诉USB的串行

2017-09-08 17:05:15 9341

原创 usb驱动开发之USB协议枚举过程详解

本文把usb的枚举过程通过文字、程序和图形三种形式描述出来,并形成对照。一  枚举过程之文字描述         •主机集线器监视着每个端口的信号电压,当有新设备接入时便可觉察。(集线器端口的两根信号线的每一根都有15kΩ的下拉电阻,而每一个设备在D+都有一个1.5kΩ的上拉电阻。当用USB线将PC和设备接通后,设备的上拉电阻使信号线的电位升高,因此被主机集线器检测到。)   • 连接

2017-09-08 09:30:34 4847

转载 ARM平台下独占访问指令LDREX和STREX的原理与使用详解

http://blog.csdn.net/roland_sun/article/details/47670099为了实现线程间同步,一般都要在执行关键代码段之前加互斥(Mutex)锁,且在执行完关键代码段之后解锁。为了实现所谓的互斥锁的概念,一般都需要所在平台提供支持。本文主要用来说明ARM平台上特有的独占访问指令LDREX和STREX的工作原理,以及如何使用。而它们也是ARM平台上,

2016-12-29 11:06:50 2480 2

原创 AM3359多路串口支持

AM3359共支持6路串口,我目前测试了前5路都是通的,第6路留作它用了,没有测试。配置只要涉及三个部分:  1 引脚配置  把对应引脚配成串口引脚。这里要注意在你的文件里查找,确认这个引脚没有被配成其它功能,否则的话使用的是最后被配置的功能,导致串口不通。  2 时钟模块使能  uart1-uart5使用的是L4HS提供的时钟,所以确保CM_PER_L4HS_CLKCTRL,

2016-08-09 13:58:34 1457

转载 linux kernel对于浮点运算的支持

linux kernel对于浮点运算的支持(转)http://blog.csdn.net/skyflying2012/article/details/45113193目前大多数CPU都支持浮点运算单元FPU,FPU作为一个单独的协处理器放置在处理器核外,但是对于嵌入式处理器,浮点运算本来就少用,有些嵌入式处理器就会去掉浮点协处理器。X86处理器一般都是有FPU的

2016-08-01 16:44:21 717

原创 韦东山虚拟摄像头驱动在ubuntu12.04上的修改与测试

第一部分 vivi测试视频上用的是ubuntu9.10,版本太老,已无法在线安装程序。因此现在用ubuntu12.04做测试。测试要求:安装虚拟摄像头驱动和安装xawtv测试程序视频上是把/drivers/media/video目录取出,修改Makefile,然后安装vivi.ko。由于ubuntu12.04上已经有编译好的模块,模块路径在/lib/modules/3.2.0-23

2014-12-31 11:10:41 2451 1

原创 DECLARE_WAIT_QUEUE_HEAD(name)使用(linux3.1.0)

目标:初始化一个摄像头等待队列头cam_wait_queue实现:static  DECLARE_WAIT_QUEUE_HEAD(cam_wait_queue)使用:wait_event_interruptible(cam_wait_queue,ev_cam);wait_up_interuptible(&cam_wait_queue);解释:include/linux/wait

2014-12-26 11:36:33 1764

原创 gdb7.4安装

以前在ubuntu9.10上安装过gdb,可以使用。现在把交叉编译工具从版本从3.4.5升级到arm-linux-gcc4.3.2后,gdb在arm板上用不起来,uImage新系统是4.3.2编译出来的。由于gdb是用交叉编译工具编译出来的,故可能是这个原因。现在记录下整个过程。由于我之前已经安装过,所以有些需要预安装的工具已经安装好了,否则在编译的时候会出错。具体我也不记得了,复

2014-12-24 14:01:57 1216

原创 Ubuntu12.04 samba服务器搭建

1.  准备工作ifconfig –a 查看当前ip和主机是否是同一段,同一段的话ping看能否ping通;运行services.ms,Workstation必须开启,用于维护远程客户端的连接,否则将出现如下错误。2. ubuntu 12.04已经安装了最新版本的samba服务器,无需安装。如果使用12.04以前的版本,最好是按下边的方法升级一下samba,12.04版

2014-12-23 17:05:26 738

原创 make uImage-uImage生成过程

今天微博上看到宋宝华发的一张图,看着不错,保留了下来。0 最顶层的vmlinux是如何生成的?依据arch/arm/kernel/vmlinux.lds 生成linux内核源码根目录下的vmlinux,这个vmlinux属于未压缩,带调试信息、符号表的最初的内核,我用linux3.4.2编译出来有45M; arm-linux-gnu-ld -EL  -p --no-un

2014-12-23 14:05:26 2066

原创 linux3.4.2内核编译、加载、yaffs2挂载问题汇总

1 移植linux3.4.2内核,编译出现错误:cc1: error: invalid option 'abi=aapcs-linux' 出现错误原因:编译器的解决:(1)换编译器,如arm-linux-gcc-4.3.2,包含arm-none -linux-gnueabi-gcc(2)make menuconfig  去掉Kernel Features->Us

2014-12-22 15:36:10 1484

转载 Kernel panic - not syncing: No init found. Try passing init= option to kernel

kernel panic - not syncing: No init found.  Try passing init= option to kernel.这类问题很常见,先总体介绍一下解决思路。能出现让人激动的的控制台,那么系统移植已经接近完成;但是不少人在最后一步出现问题。要点如下:1. 在正确的位置烧写正确格式的文件系统映象:2. 内核支持这

2014-12-19 17:46:43 26658 3

转载 Ubuntu12.04 搭建TFTP服务

Ubuntu12.04 搭建TFTP服务TFTP协议是简单文件传输协议,基于UDP协议,没有文件管理、用户控制功能。TFTP分为服务器端程序和客户端程序,在主机上通常同时配置有TFTP服务端和客户端。默认安装的Ubuntu系统没有包含TFTP的服务端和客户端,可以通过命令行来下载安装,步骤如下:(1)安装客户端。root@xiaozhu-laptop:~# apt-get

2014-12-18 20:59:58 425

原创 ubuntu 9.04 tftp配置

如果主机已经安装了tftp服务,忘了如何使用,这里记录一下。ubuntu9.10 openbsd-inetd管理tftp服务,高版本的可用xinetd查看本机tftp路径打开配置文件 /etc/inetd.conf 最后一项/tftp就是设置路径,可以任意修改。设置完成后,使tftp服务生效/etc/init.d/openbsd-inetd  restart 当

2014-12-18 20:32:07 399

原创 diff制作补丁和patch打补丁

1 制作补丁制作补丁使用diff命令假设源文件为/wx/srcdir_bak目标文件为/tmp/new1/new2/srcdir目标文件是在源文件基础上的更新,更新之后想产生一个补丁文件。所谓补丁文件,就是记录下这两个文件的异同。补丁文件作用:升级和备份。如果源文件是一个linux内核标准源码,可以在内核网站上下载,开发一定到阶段有某一稳定版本之后,我们想做个备份为V1

2014-12-16 17:38:10 595

原创 socket测试-get host name error和/etc/hosts配置

在socket网络编程测试中,两个文件tcp_sercer.c 和 tcp_client.c编译gcc  tcp_server .c  -o tcp_servergcc  tcp_client .c  -o tcp_client 运行服务器 ./tcp_server运行客户端  ./tcp_client  bookbook是主机名 查看主机名#hostnameb

2014-12-05 15:42:32 1362

转载 __attribute__((weak))

__attribute__((weak))情况是这样的,碰到一个棘手的问题:我们不确定外部模块是否提供一个函数func,但是我们不得不用这个函数,即自己模块的代码必须用到func函数:extern int func(void);...................int a = func();if( a > .....){.......

2014-12-05 09:36:57 536

原创 linux内核中的xx_initcall和module_init实现机制(linux3.1.0)

在内核代码中,arch_initcall 、device_initcall、module_init等经常遇到,本文分析其实现机制。1 include/linux/init.h 下的相关定义#ifndef MODULE#define pure_initcall(fn) __define_initcall("0",fn,0)#define core_initcall(fn) __def

2014-11-29 17:53:20 811

原创 MACHINE_START-内核板级初始化实现机制(linux3.1.0)

在驱动开发时,我们都是以一块开发板为基础移植驱动程序。每一块开发板对应一个板级文件,如开发TI AM335x系列,则对应board-am335xevm.c,这个文件完成芯片和板级的初始化工作。对于驱动开发,还有一个很重要的文件devices.c,这个文件主要是设备接口相关资源。今天就来说说board-am335xevm.c文件,如何全面的了解这个文件呢?先找到这个文件的入口,在文件的

2014-11-26 17:03:37 4506

原创 linux3.1.0内核中/include/generated下mach-types.h的产生

/arch/arm/tools下面有三个文件,Makefile gen-amch-types  mach-types。其中mach-types存放的就是板级信息,通过Makefile和 gen-amch-types文件,把这些板级信息重新生成一个文件include/generated/mach-types.h。看一个目录,从Makefile入手:include/generate

2014-11-25 15:59:15 2671

原创 linux内核常用的内存申请函数

驱动程序中常用到内核空间的内存申请函数kmalloc和kzallockmalloc(size_t s,gfp_t flags)data=kmalloc(datasize,GFP_KERNEL)void *memset(void *s,int c,size_t count)memset(data,0,datasize)data=kzalloc(datasize,G

2014-11-21 16:11:39 1336

原创 32位ARM寄存器是如何只传递8位、16位数据的——由uboot nand 操作想到的

uboot中可以通过指令对nand操作,yi

2014-10-30 18:54:54 2853

原创 am3359 uboot nor flash支持

AM3359的开发板都是支持nand flash的,对nor

2014-09-30 17:08:40 1187

原创 uboot网口调试Marvell phy 88E1111

首先要给88E1111复位信号信号,复位引脚电平高

2014-09-30 16:59:44 13087 4

转载 fork返回两个值的实现

fork返回两个值的实现

2014-08-11 11:28:01 1013

原创 高速缓冲区中的b_uptodate和b_dirt

struct buffer_head{ char *b_data; /* pointer to data block (1024 bytes) *///指针。 unsigned long b_blocknr; /* block number */// 块号。 unsigned short b_dev; /* device (0 = free) */// 数据源的设备号。 u

2014-08-07 11:05:18 1506

原创 手机摄像头图像在电脑上显示-实现视频监控

如果想用手机摄像头实现无线监控

2014-08-06 18:17:44 6883

原创 手机摄像头当做电脑摄像头使用-用于视频聊天

如果笔记本像素低或者台式机没有

2014-08-06 17:04:28 9244

转载 Linux0.11内核--进程的调度schedule和switch_to解析

点击打开链接

2014-07-30 14:47:31 2209 1

原创 X86和ARM:函数调用参数传递和返回值

X86     X86在调用函数的时候参数传递

2014-07-29 15:57:45 3621

原创 段描述符和段选择符解析

如果你上过微机原理课,即使把所有的

2014-07-25 14:25:14 2935

转载 内存分配——静态存储区 栈 堆

一、内存基本构成    可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。    静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。    栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于

2014-07-11 15:24:12 537

原创 字符的编码方式 ASCII 、GBK 、UTF-8 、Unicode 、Unicode big endian

字符的编码方式很多种 ,我们常用到的是ASCII 、GBK 、UTF-8 、Unicode 、Unicode big endian等。想查看的话,可以用记事本打开新建一个txt文档,里面输入字符或汉字,然后用UltraEdit打开,按CTRL+h,即可查看字符的编码值。对于英文字符,ASCII编码方式就可以全部表示,只需要0-127这128个编码值。所以ASCII编码值小于0x80,

2014-07-09 18:13:59 1506

原创 Linux下的源文件安装

LInux 下源文件安装一共需要sanbu

2014-06-25 17:19:05 712

原创 Linux驱动和应用程序的开机自启动

相信大家都在shell命令行里通过敲指令加载过驱动和应用程序,但是如果每次开机都要重新敲一遍这些加载指令的话那太麻烦了,肯定有方法使其可以开机自动启动的。既然shell可以解析命令行,那我们把这些命令行放到一个文件里,开机启动的时候让shell去解析这个文件,然后去执行不就行了。   你一定有印象在uboot中的bootargs中一般会有init=/linuxrc,这个参数传递给内核后

2014-06-24 09:24:06 833

原创 Linux下LCD 10分钟黑屏解决

在用LCD显示的时候,发现10分钟LCD就不再工作了

2014-06-20 16:13:31 1535

原创 waitstatus、active、unactive 、asserted、 de-asserted 应用和释义

0   WAIT0 asserted(inactive state)1    WAIT0 de-asserted   这里遇到了asserted和de-asserted ,asserted表示插入有效状态,假设wait0是高电平有效,则asserted就是插入1,低电平有效的话asserted就是0。所以asserted=active。wait0的高电平有效

2014-06-13 18:08:48 3698

原创 Windows、Linux、VxWorks中一个网口绑定多个IP的方法

在Windows下,我们可以通过打开“本地连接”的属性,在internet协议的属性中配置IP地址、网关、掩码等,而在这里还有一个“高级”的功能。     点击internet属性右下角的“高级”按钮进入高级配置界面,可以在此处给本地连接再添加IP地址和网关,这些IP地址可以跟之前在internet属性中配置的IP地址不同网段,这样别人就可以通过不同的IP地址去访问你的电脑,你的电脑也能被

2014-06-09 16:15:48 5916

转载 i2c驱动架构 davinc dm368 i2c驱动分析

linux驱动学习(八) i2c驱动架构(史上最全) davinc dm368 i2c驱动分析分类: linux驱动程序2012-10-22 15:47 4665人阅读 评论(7) 收藏 举报目录(?)[+]预备知识在阅读本文最好先熟悉一种i2c设备的驱动程序,并且浏览一下i2c-core.c以及芯片提供商的提供的i2c总线驱动(i2c-da

2014-04-30 14:29:03 508

原创 Linux驱动程序如何编译进内核

很多刚接触Linux驱动的初学者,肯定有这样的疑问,如何

2014-04-17 17:48:25 1995

深入理解Linux内核英文版

深入理解Linux内核英文版

2017-08-04

RAPIDIO嵌入式系统互联

RapidoIO嵌入式系统互联,目前仅有的全面介绍RapidIO的书籍

2017-08-04

usb2.0 specification

usb2.0标准文档,英文完整版

2017-08-04

usb u盘规范

开发usb u盘驱动必看规范,文档是usb mass storage specification

2017-08-02

ubuntu12.04 samba配置文件

配置ubuntu12.04 samba服务器的话,把必要的软件安装之后,还需要修改配置文件,可以先把系统的配置文件备份,这个拷贝过去替换系统的文件,把名字了。次配置文件本人一验证,可以使用,配置文件的最后12行是我自己添加的,查看路径的话也在这最后12行了,path对应项,自己看。

2014-06-09

linux0.11源代码

Linux0.11的源码,想研究Linux内核源码的话可以从这个入手,代码仅万行级别

2014-06-09

dsp5509a.pdf

dsp5509datasheet,有要看的看一下,英文的

2010-07-21

DSP算法大全(非常全)

一本DSP的算法,里面包含各种算法,非常全面

2010-07-21

CCS教程(感觉不错)

CCS教程,写的还可以,可以下来看看,以后遇到更好的继续上传

2010-07-21

JTAG接口注意事项

关于JTAG接口的应用,设计注意事项,有案例

2010-07-21

DSp2812开发板原理图

力天公司的开发板原理图,有设计硬件电路的的可以参考一下

2010-07-21

空空如也

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

TA关注的人

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