自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(46)
  • 资源 (15)
  • 收藏
  • 关注

USB Mass Storage

如标题所示,我们开始分析USB Mass Storage的架构.那么driver的起点是哪里?LinuxSource/drivers/usb/storage/usb.cmodule_init(usb_stor_init);这是一切的起点,好了现在要开始逐行分析usb_stor_init()这个函数了.static int __init usb_stor_init(v

2013-11-01 21:08:18 1582

Research on SPINLOCK

Some useful resources:http://www.makelinux.net/books/lkd2/?u=ch09lev1sec2Introduce the basic knowlodge of SPIN_LOCKhttp://h21007.www2.hp.com/portal/download/files/unprot/ddk/DDG/chap3.pdfT

2013-09-22 23:46:00 96

原创 神经网络

http://pan.baidu.com/share/link?shareid=1644879884&uk=4195153792《精通MATLAB神经网络》由MATLAB入门篇、神经网络提高篇和神经网络综合实战篇3篇组成。MATLAB入门篇主要介绍MATLAB软件、基本运算、图形绘制、程序设计和Simulink仿真;神经网络提高篇讲述神经网络的主要内容,包括神经网络工具箱和GUI工具,以及感知

2013-09-22 16:50:06 521 1

原创 Linux workqueue (一)

开始学习workquque的原因:BUG: workqueue leaked lock or atomic: kworker/0:3/0x00000001/677对于workqueue一无所知,所以一切都是从头开始.http://lxr.free-electrons.com/source/Documentation/workqueue.txt 1 2 C

2013-09-17 17:44:17 246

LDD3 day by day

1. 在Ubuntu下构建Linux源码树http://blog.csdn.net/dreambegin/article/details/67649622. 第一个是字符设备驱动这里是先阅读Linux device driver edition 3+ http://blog.chinaunix.net/uid-20543672-id-94290.html这篇文章里提到了mdev

2013-09-14 21:33:57 74

Linux device driver Edition 3 - simple character utility for loading localities

这是Linux device driver edition 3的第一个设备驱动,是字符设备驱动.想必大家也知道了在Linux中有3大类设备驱动:字符设备驱动,块设备驱动和网络设备驱动.这一章我看了很多遍,但最终还没有完成,究其原因:第一,自己没有毅力第二,觉得有点难,算了,不去coding了第三,总有其它的诱惑让我放弃coding最后,也就是现在,又开始去想把这个驱动自己一行行

2013-08-08 22:48:31 137

文件安全和权限

自从做Linux 驱动开发,Linux shell的编程作为一个短板愈发明显,不得不抽出时间来把Unix shell好好系统的学习一下.学习如果是按照书上按部就班的操作,而没有记忆在脑子里起不到任何的效果,还要印在自己的记忆中.把所有的Unix shell的个方便建造为一个Unix shell的宫殿第一章如文章标题所示是文件的安全和权限,当然也包括文件夹第一章包含的内容如下:(1)

2013-07-24 20:57:45 85

原创 Linux USB HUB

1. USB初始化,函数位于usb/core/usb.c/* * Init */static int __init usb_init(void){ int retval; if (nousb) { pr_info("%s: USB support disabled\n", usbcore_name); return 0; } retval = usb_debugfs_

2013-07-17 15:58:20 262

转载 WaitForSingleObject函数

WaitForSingleObject函数  VC声明  DWORD WaitForSingleObject(  HANDLE hHandle,  DWORD dwMilliseconds  );  VB声明  Declare Function WaitForSingleObject Lib "kernel32" (ByV

2012-08-10 11:03:41 240

转载 CreateMsgQueue

CreateMsgQueue 创建消息队列  函数原型  HANDLE CreateMsgQueue(  LPCWSTRlpszName,//队列的名称  LPMSGQUEUEOPTIONS lpOptions//指向一个MSGQUEUEOPTIONS  );  用途:主要用于点对点消息队列。  使用原因:因为在进

2012-08-10 11:02:45 224

转载 ceSetThreadPriority设置线程的优先级

初始化代码中的关键 Win32 API 调用是对 CeSetThreadPriority 的调用。此函数接受两个参数。第一个参数是线程句柄,第二个值介于 0-255 之间,用于描述所需的优先级。选择使用哪个线程优先级非常关键,而能够以图表表现应用程序优先级的使用,也有助于确保适当的性能。优先级从 0 至 247 的线程(0 表示最高优先级)是实时线程优先级,需要调用 CeSetThreadPrio

2012-08-10 11:01:38 347

转载 wince驱动加载后自动卸载问题

为wince添加了个驱动,发现系统加载后自动卸载了,问题在于注册表的Prefix项字符串长度不等于3 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\AsyncBus\GPIO]    "Dll"="S5PC100_gpio.dll"    "Prefix"="GIO"    "Order"=dword:32    "FriendlyName

2012-06-11 14:49:56 192

转载 wince驱动加载后自动卸载问题

为wince添加了个驱动,发现系统加载后自动卸载了,问题在于注册表的Prefix项字符串长度不等于3 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\AsyncBus\GPIO]    "Dll"="S5PC100_gpio.dll"    "Prefix"="GIO"    "Order"=dword:32    "FriendlyName

2012-06-11 14:49:56 156

原创 一个简单的流驱动

1. 在PLATFROM\D7800\SRC\Drivers目录下新建文件夹:hugh, 并且将drivers目录下的dir文件中添加hugh2. 在hugh目录下添加如下的文件(1)makefile!if 0Copyright (c) Microsoft Corporation. All rights reserved.!endif!if 0Use of this samp

2012-06-11 13:07:17 217

原创 WINCE60 一个小AP的编写

这小东西,我想对于OS层面开发的人来说是很简单的;但对于我这个混迹于汇编和C的人来说是一片空白。记录一下该如何做吧。环境:Microsoft Studio 2005,SDK,windows xpsp2

2012-05-07 11:54:05 109

Prima II编译流程

TT6X0BD.bat做了如下的事情:1. The first chapter sets up the _TGTSOC,_TGTHWNAME, _TGTHWVERSION and CSPBUILDNO, CSP Path.2 . The second chapter calls the %_TGTSOC%_CMN.BAT to set up all the default enviro

2011-12-23 14:31:37 122

Prima II编译流程

TT6X0BD.bat做了如下的事情:1. The first chapter sets up the _TGTSOC,_TGTHWNAME, _TGTHWVERSION and CSPBUILDNO, CSP Path.

2011-12-23 14:30:57 121

PrimaI boot 流程

(1)汇编部分:主要是对Clock和Memory的初始化(2)C语言部分:分为Nboot和Eboot两部分一、Nboot分析Nboot会做哪些工作(1) Init Touch(2) Clear Driver Global(3) Get System Clock & stored in Driver Global(4) Init Debug(5) hardware I

2011-12-19 09:17:12 174

USB基础介绍

这是我第一次学习USB!总的来说是先熟悉USB的相关fea

2011-12-15 17:35:39 99

原创 一个简单的脚本

who /显示现在系统有谁登录$who | wc -lwc(word count)字数计算程序,它可以算出行数,字数,与字符数| (管道)符号可以在两个程序之间建立管道(pipeline):who输出,成了wc的输入,wc 所计算出的结果就是已登录用户的个数shell文件:$cat > nusers     建立文件,使用cat复制终端的输入who | wc -l

2011-12-11 20:52:51 96

原创 PrimaII - Flash layout

Flash Layout Data Structure:Data Structuretypedef struct LAYOUT{DWORD EBOOTStartSector;DWORD EBOOTSize;DWORD EBOOTNum;DWORD TOCStartSector;DWORD TOCSize;DWORD NumTOC;DWORD Secu

2011-12-08 15:46:54 232

转载 上拉电阻和下拉电阻的作用

上拉电阻和下拉电阻的作用上拉电阻:1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。2、OC门电路必须加上拉电阻,才能使用。3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上

2011-12-08 14:58:22 212

原创 PrimaII Memrory layout

注意点:1. The physical RAM(Random Access Memory)address starts at 0x00000000, and the kernel virtual address starts at0x81400000.2. The overall memory layout is separated into:Fixed s

2011-12-08 10:32:34 228

原创 PrimaII - Driver Global

typedef struct _DRIVER_GLOBALS{    DECLARE_DRVGLOB_ENTRY(0, TOUCH_GLOBALS, tch);                   // Offset 0    DECLARE_DRVGLOB_ENTRY(1, PROFILE_GLOBALS, prof);                // Offset 0x100

2011-12-08 10:00:29 259

原创 PrimaII 之Clock

Features1. Glitch-free source clock switch2. Glitch-free flexible clock divide(FCD)3. Supports bypass function in FCD module4. Glitch-free clock gating5. PLL control6. PLL supports bypass

2011-12-08 09:49:42 254

原创 ARM汇编语言中的程序结构

{标号} {指令或伪指令助记符} {;注释}         在ARM/Thumb汇编语言程序中,程序是以程序段(Section)的形式呈现的。程序段是具有特定名称的相对独立的指令或数据序列。程序段有两大类型:代码段(Code Section)和数据段(Data Sec

2011-09-10 21:43:43 398

原创 USB的八个问题和答案(转载)

问题一:USB的传输线结构是如何的呢?答案一:一条USB的传输线分别由地线、电源线、D+、D-四条线构成,D+和D-是差分输入线,它使用的是3.3V的电压(注意哦,与CMOS的5V电平不同),而电源线和地线可向设备提供5V电压,最大电流为500MA(可以在编程中设置的,至于硬

2011-08-25 10:28:48 250

原创 linux egrep命令参数及用法详解---在文件内查找指定的字符串

功能说明:在文件内查找指定的字符串。egrep执行效果如grep -E,使用的语法及参数可参照grep指令,与grep不同点在于解读字符串的方法,egrep是用extended regular expression语法来解读,而grep则用basic regular expression语法,extended regular expression比basic regular expression有

2011-06-10 23:21:00 1335

转载 linux uname 命令详解

<br />uname命令用于显示系统信息,根据不同的命令参数,输出不同的系统信息命令格式如下uname [OPTION]…参数名称 显示内容 显示样例-a,–all 显示所有内容 <br /> -s, –kernel-name 显示内核名称Linux<br />-n, –nodename 显示主机名 test0-32-227.test.com<br />-r, –kernel-release 显示操作系统的发行编号 2.6.9-42.ELsmp<br />

2011-06-01 16:12:00 296

转载 cat

<br />1.cat >file 记录的是键盘输入,相当于从键盘创建文件,并且只能创建新文件,不能编辑已有文件.>是数据重导向,会将你输入的文本内容输出到file中.<br />不会出现>提示符,直接输入回车,文字都会记录.ctrl+c或者ctrl+d才能退出.之后通过cat wyg,生成了wyg这个文件.<br />就可以查看刚才输入的内容.<br /> <br />2.cat <<EOF,cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;<br />EOF

2011-06-01 15:55:00 126

原创 KBuild学习笔记(二)KBUILD targets实现分析

1.Kbuildtargets和命令行描述编译时,我们首先必须确定一个target,然后才能确定所有的Prerequiste,最后根据更新情况决定是否执行相应的命令。因此想要了解kbuild的实现,我们首先了解kbuild所支持的targets。kbuild所支持的targets大致可以分为如下几大类:Cleaning targets:clean/mrproper/distclean 删除部分或全部编译生成的文件:config,backup,patch等Configuration  targets:%con

2011-05-17 15:47:00 220

原创 KBuild学习笔记(一)KBUILD简介

不同用户对kbuild的需求不同,相应地对kbuild需要了解的程度也不同对于普通用户(编个kernel image之类)而言,kbuild只是意味着一些targets(make menuconfig;make),make help足以帮他们搞定一切,他们不需要了解除此之外的任何东西,就像吃个鸡蛋并不需要了解蛋是如何长出来的对于普通开发者(kernel feature,driver)或者平台porting的开发者而言,kbuild也只是意味着一些实现友好的接口,他们需要对某些实现细节(如何使用obj-y,o

2011-05-17 15:12:00 254

原创 Linux Device Driver Edition 3 (Linux源码树的安装)

<br />现在市场的主流是Linux.WINCE已经渐渐没有市场了!至少我所在公司已经在渐渐淡化WINCE,逐步的向Linux和Android的方向去发展!Linux的开发分为很多种:<br />1. Linux Device Driver的开发,这个属于较为底层的开发<br />2. Linux Application的卡发,这个不得不提现在很流行的Android的application的开发,这是一种类java的开发!还有其他许多的开发则是使用的C/C++.这里我使用开发语言的种类来区分的!当然还有其

2011-05-01 22:36:00 355

转载 嵌入式经典面试题

<br />C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。<br />    从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢 的问题吗?如要你答出某个字符的ASCII值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着

2011-04-26 13:19:00 151

转载 start kernel前的分析

<br />一. 启动条件<br />    通常从系统上电执行的boot loader的代码,而要从boot loader跳转到linux kernel的第一条指令处执行需要一些特定的条件。关于对boot loader的分析请看我的另一篇文档u-boot源码分析。<br />    这里讨论下进入到linux kernel时必须具备的一些条件,这一般是boot loader在跳转到kernel之前要完成的:<br />   1. CPU必须处于SVC

2011-04-26 11:35:00 201

转载 Linux设备驱动之I2C架构分析

<br /> 一:前言I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线.另外,I2C是一种多主机控制总线.它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以.而I2C是基于multi master机制.一同总线上可允许多个master.关于I2C协议的知识,这里不再赘述.可自行下载spec阅读即可.二:I2C架构概述在linux中,I2C驱动架构如下所示:<br /><

2011-04-26 11:32:00 211 1

原创 看RAM型号知配置

<br /><br /><br />

2011-03-25 15:36:00 285

转载 linux2.6.x的配置文件kconfig语法

<br />linux在2.6版本以后将配置文件由原来的config.in 改为kconfig,对于kconfig的语法在/Documentation/kbuild/kconfig-language.txt中做了详细的说 明,在这里给出kconfig-language.txt的中文版。<br />介绍<br />----<br /><br />在配置数据库的配置选项是以树的形式组织的:<br /><br />+- Code maturity level options<br />| +-

2011-01-14 13:33:00 152

转载 蓝牙之Radio

<br />蓝牙设备工作在ISM 2.4GHz频段。使用跳频收发器抗干扰和衰减。这是老掉牙的一句话!但是这揭示了蓝牙的基本、核心特点。<br />既然是跳频,那么必然有频率的调制了。蓝牙协议4.0定义了两种频率调制的模式:(1)强制模式;(2)可选模式。<br />(1)强制模式<br />又称Basic Rate。使用了轮廓清晰地二进制频率调制器简化收发器的复杂性!符率是1Ms/s。空中比特率是1Mbps<br />(2)可选模式<br />又称Enhanced Data Rate。使用PSK

2011-01-10 10:45:00 241

转载 Linux內核中Kconfig文檔的作用以及Kconfig的語法

<br />2.6內核的源碼樹目錄下一般都會有兩個文件:KConfig和Makefile。分佈在各個目錄下的Kconfig構成了一個分佈式的內核配置數據庫,每個Kconfig分別描述了所屬目錄源文件相關的內核配置菜單。在內核配置make menuconfig(或xconfig)時,從Kconfig中讀出配置菜單,用戶配置完後保存到.config中。在內核編譯時,主Makefile調用這個.config,就知道了用戶對內核的配置情況。<br />上面的內容說明:Kconfig就是對應著內核的配置菜單。假如要想

2010-12-17 10:41:00 577

KBUILD实现pdf

理解Kbuild有助于理解Linux的编译流程,对于Linux的体系架构理解起到事半功倍的作用

2011-05-17

超强功能的UBoot 移植

超强功能的UBoot 移植,非常值得一看的好文章啊!下载的人可以一步步按照上面的步骤进行,会受益匪浅的

2010-10-24

Struts2 Netbeans插件

Struts2 Netbeans插件!NetBeans!NetBeans!

2010-09-28

struts2入门v3.0

struts2入门v3.0!!!!!!!!!!!!!!!!!!111

2010-09-26

高手进阶,终极内存技术指南-完整进阶版

高手进阶,终极内存技术指南-完整进阶版.很不错的内存技术资料!

2010-09-23

S5P6443X_UM_Preliminary_Rev0.21_091215

S5P6443X_UM_Preliminary_Rev0.21_091215 S5P6443 ARM11JZF-S

2010-09-23

S3C2410+Linux学习笔记

S3C2410+Linux学习笔记.不错的学习参考手册!

2010-09-23

S3C2440A 中文参考手册

S3C2440A 中文参考手册.没分了,靠这个攒点。不敢多要1分.望各位大侠见谅

2010-09-23

Linux & Unix Shell 编程

关于Linux 和 Unix Shell编程的电子档pdf

2010-08-22

SD卡资料和FAT文件系统资料

很全的SD卡资料,SD卡部分翻译,SD卡和资料,SD卡接口规范,一个简明扼要的SD卡操作资料,一个最完整的sd card参考文档和FAT文件系统的资料:FAT32文件系统的存储机制及其在单片机上的实现,fat文件系统原理。

2010-08-08

mini2440启动代码

mini2440启动代码,一个朋友写的关于mini2440启动代码。我觉得非常不错,学习了!

2010-07-31

anpr thsis

自动数字车牌识别系统(英文) 车牌区域探测,字符分割,特征量提取,神经网络

2010-04-09

trans_ANPR

自动数字车牌识别系统,捷克科技大学! 车牌区域探测,字符分割,特征量提取,神经网络识别OCR

2010-04-09

ads1.2中文教程

介绍ARM开发软件ADS(ARM Developer Suit).通过学习如何在CodeWarrior IDE集成开发环境下编写,编译一个工程的例子,使读者能够掌握在ADS软件开发平台下开发用户应用程序。本章还描述了如何使用AXD调式工程,使读者对于调试工程有个初步的了解,为进一步掌握调试工具起到抛砖引玉的作用。 本章主要内容: --ADS软件组成介绍 --使用ADS创建工程 --用AXD进行代码调试

2008-11-11

空空如也

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

TA关注的人

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