- 博客(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 1499
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 91
原创 神经网络
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 245
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 134
文件安全和权限
自从做Linux 驱动开发,Linux shell的编程作为一个短板愈发明显,不得不抽出时间来把Unix shell好好系统的学习一下.学习如果是按照书上按部就班的操作,而没有记忆在脑子里起不到任何的效果,还要印在自己的记忆中.把所有的Unix shell的个方便建造为一个Unix shell的宫殿第一章如文章标题所示是文件的安全和权限,当然也包括文件夹第一章包含的内容如下:(1)
2013-07-24 20:57:45 84
原创 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 223
转载 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 191
转载 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 155
原创 一个简单的流驱动
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 216
原创 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 121
Prima II编译流程
TT6X0BD.bat做了如下的事情:1. The first chapter sets up the _TGTSOC,_TGTHWNAME, _TGTHWVERSION and CSPBUILDNO, CSP Path.
2011-12-23 14:30:57 120
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 173
原创 一个简单的脚本
who /显示现在系统有谁登录$who | wc -lwc(word count)字数计算程序,它可以算出行数,字数,与字符数| (管道)符号可以在两个程序之间建立管道(pipeline):who输出,成了wc的输入,wc 所计算出的结果就是已登录用户的个数shell文件:$cat > nusers 建立文件,使用cat复制终端的输入who | wc -l
2011-12-11 20:52:51 95
原创 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 231
转载 上拉电阻和下拉电阻的作用
上拉电阻和下拉电阻的作用上拉电阻:1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。2、OC门电路必须加上拉电阻,才能使用。3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上
2011-12-08 14:58:22 210
原创 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 397
原创 USB的八个问题和答案(转载)
问题一:USB的传输线结构是如何的呢?答案一:一条USB的传输线分别由地线、电源线、D+、D-四条线构成,D+和D-是差分输入线,它使用的是3.3V的电压(注意哦,与CMOS的5V电平不同),而电源线和地线可向设备提供5V电压,最大电流为500MA(可以在编程中设置的,至于硬
2011-08-25 10:28:48 249
原创 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 1332
转载 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 251
原创 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 150
转载 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 200
转载 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
转载 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 150
转载 蓝牙之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 239
转载 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
S5P6443X_UM_Preliminary_Rev0.21_091215
2010-09-23
SD卡资料和FAT文件系统资料
2010-08-08
ads1.2中文教程
2008-11-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人