- 博客(93)
- 收藏
- 关注
转载 C++程序设计之四书五经—C++书籍推荐
C++是一门广泛用于工业软件研发的大型语言。它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值。和C语言一样,C++已经在许多重要的领域大获成功。 然而,一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也在承受着C的强烈反弹,而在高阶程序设计领域,Java和C#正在不断蚕食着C++的地盘。也许C++与C合为一体永远都是一个梦想,也许Java和C#的狂潮终将迫使C++回归
2014-03-24 20:32:11
526
转载 USB基础书籍资料推荐
中文参考书籍:1. USB系统架构图解,陈乃塘,陆克文化事业有限公司。2. USB2.0 设计应用全揽,廖惠如总编辑,陆克文化事业有限公司。3. USB理论规范与设计,郭士秋编着,儒林出版社,957-499-211-X。4. USB系统架构,Don Anderson原著,陈振荣编译,碁峰。5. 精通USB 2.0硬件设计,萧世文编着,文魁,P2097。6. USB 2.0程
2014-03-24 20:30:37
2676
转载 关于f_mass_storage.c的文章
原文地址:http://blog.csdn.net/HellDevil/archive/2010/05/18/5604421.aspxhttp://blog.csdn.net/HellDevil/archive/2010/05/06/5561918.aspxhttp://blog.csdn.net/HellDevil/archive/2010/01/19/5213888.aspxhtt
2014-03-24 20:28:27
794
转载 使用 watchdog 构建高可用性的 Linux 系统及应用
原文地址:http://www.ibm.com/developerworks/cn/linux/l-cn-watchdog/index.html周婷 (moting9@gmail.com),软件工程师, IBM 中国系统技术实验室简介: Linux在不同领域如电信、终端便携设备等得到广泛应用,不同领域的应用对 Linux系统也提出相应的需求。Carrier Grade Li
2014-03-24 20:26:54
520
转载 【奶味香蕉蛋羹】
【看美食】【奶味香蕉蛋羹】是一款美味又营养的简单辅食,它香味浓郁、嫩滑可口,是最常见的婴幼儿营养食谱 原料:香蕉1根,牛奶100ml,鸡蛋1个1、香蕉去皮,用勺子压成泥。2、鸡蛋磕入碗中打散,搅拌均匀。3、往蛋液中加入香蕉泥和牛奶一起拌匀。4、蒸锅加水烧开,将调好的香蕉蛋奶液,入锅用中火蒸熟即可。
2014-03-24 19:37:07
989
转载 Linux内核中等待队列的几种用法
Linux内核里的等待队列机制在做驱动开发时用的非常多,多用来实现阻塞式访问,下面简单总结了等待队列的四种用法,希望对读者有所帮助。1. 睡眠等待某个条件发生(条件为假时睡眠): 睡眠方式:wait_event, wait_event_interruptible 唤醒方式:wake_up (唤醒时要检测条件是否为真,如果还为假则继续睡眠,唤醒前一定要把条件变
2014-03-23 22:31:26
370
转载 浅入浅出Liunx Shellcode
创建时间:2008-05-13文章属性:原创文章提交:pr0cess (pr0cess_at_cnbct.org)浅入浅出Liunx Shellcode/*-------------------------------------Author:旋木木[xuanmumu@gmail.com]Date:2008/05/12Website:www.bugshower.
2014-03-23 21:26:43
423
转载 USB设备驱动开发-USB协议相关(三)
一、USB设备标准请求USB设备标准请求是为所有USB设备定义的操作,即使设备还没有被分配地址或还没有被配置都必须相应设备标准请求。标准特性选择子特性选择子用于对特性使能或设置特性,若一个不支持或非法的请求发送给USB设备,设备将在数据或状态传输阶段返回STALL作为响应。若设备的默认控制通道由于错误不能通信,则设备将被reset来清除错误状态并重启默认控制通道
2014-03-23 07:39:07
399
转载 USB设备驱动开发-USB协议相关(二)
一、USB设备通用操作 1. 热插拔在热插拔中,USB HUB扮演着很重要的角色,HUB向主机报告端口的状态改变,主机才能对相应的动作采取相应的操作; 2. 地址分派当USB设备插入后,主机会对USB设备分配一个独一无二的地址,同时resetUSB设备并对HUB的相应端口使能; 3. 配置(Configurati
2014-03-23 07:38:17
403
转载 USB设备驱动开发-USB协议相关(一)
一、USB设备模型 USB设备模型从物理上分为两个部分:主机(host)控制端作为主机端,驱动的设备是USB Host Controller;外设端被称为设备端,驱动的设备是USB Device Controller。因此,USB设备驱动应该分为主机端驱动和设备端驱动两部分,只是由于USB协议的主从定位思想,从设备只需要响应主机控制器的请求,不能主动发起请求,通常所说的USB驱
2014-03-23 07:37:40
574
转载 USB设备驱动程序-USB Gadget Driver(四)
Gadget 功能层Gadget功能层完成USB设备的具体功能,其表现的形式各不相同,如键盘、鼠标、存储和网卡等等。功能层不仅涉及到Gadget驱动相关的内容,还涉及到其功能相关的内核子系统。如存储还涉及到内核存储子系统,网卡还涉及到网络驱动子系统。因此,Gadget功能的代码非常复杂。这里以zero.c为例,这个模块只是简单地将接收的数据回显回去。一、数据结构首先需要
2014-03-23 07:35:18
1084
转载 USB设备驱动程序-USB Gadget Driver(三)
Gadget设备层 这一层是可选的,介于UDC驱动层和Gadget功能层之间。主要源码在composite.c和composite.h文件中,设备层其实和硬件无关,主要实现一些通用性的代码,减少gadget功能层的代码重复工作。Gadget设备层其中承上启下的作用,联系Gadget功能层和UDC驱动层。 将composite源码独立出来,还为复合设备的实现提供了一个
2014-03-23 07:33:28
1789
转载 USB设备驱动程序-USB Gadget Driver(二)
1. UDC驱动是作为platform driver向platform子系统注册的,因此UDC驱动首先就需要实现struct platform_driver结构中的函数成员:struct platform_driver { int (*probe)(struct platform_device *); //驱动和设备绑定
2014-03-23 07:18:49
1118
转载 USB设备驱动开发-USB Gadget Driver(一)
转自:http://blog.chinaunix.net/uid-14518381-id-3904999.html一、Linux USB Gadget Driver功能 为了与主机端驱动设备的USB Device Driver概念进行区别,将在外围器件中运行的驱动程序称为USB Gadget Driver。其中,Host端驱动设备的驱动程序是master或者client
2014-03-23 07:18:04
675
转载 Gadget Mass Storage设备驱动程序
Gadget Mass Storage设备驱动程序驱动程序原理介绍USB大存储设备(Mass Storage)是以文件为单位进行存储的从设备(Gadget)。在主设备主机(任何操作系统)上它以U盘的形式出现,在有Linux操作系统的从设备主机上,它以Gadget驱动程序形式出现,实现从设备与主设备的通信。Gadget Mass Storage是USB设备的一个典型的Gadg
2014-03-21 18:17:19
1270
转载 Nand 驱动调试记录
新项目使用了 Micro 4Gb 16bit Nand 作为 Storage, 这样,我们需要对下载工具、bootloader、Linux 内核做一些修改。 这里主要记录了 Linux 内核 Nand 驱动调试过程中遇到的问题。问题1: 擦除某个分区会导致系统不能启动执行命令擦除某分区:flash_eraseall /dev/mtd8重启, 发现系统不能启动!重新用 Jtag
2014-03-21 18:11:23
481
转载 Linux下USB MASS STORAGE驱动的分析和改造
From:http://www.csksoft.net/blog/post/linux_storage_mod.html这原本是我这学期OS课程设计最后一次的作业,因为比较有意思,所以就把它公布出来吧。作业要求:开发Linux下的usb存储设备的驱动,仅需支持自己的u盘即可。下面是我写的驱动,他基于linux下自带的usb-storage驱动(/driver/usb/s
2014-03-21 18:10:21
3088
转载 Linux-USB Gadget : Part 4: 最简单的 gadget驱动:g_zero
Linux-USB Gadget : Part 4: 最简单的 gadget驱动:g_zero作者: zjujoe 转载请注明出处Email:zjujoe@yahoo.comBLOG:http://blog.csdn.net/zjujoe前言前面讲过,gadgetapi 提供了usb devicecontroller 驱动和上层gadget驱动交互的接口。 UDC 驱动是服务提
2014-03-21 10:58:39
1196
转载 Ctrl C 不能中止程序问题
Ctrl C 不能中止程序问题作者: zjujoe 转载请注明出处Email:zjujoe@yahoo.comBLOG:http://blog.csdn.net/zjujoe 最近应用组兄弟反应他们的环境(maemo)下 ctrl-c 不能终止程序,跟踪了一下,发现maemo 虽然也使用了 busybox, 但是 init 却是用的 sysvinit 包里面的。 试着更换成 b
2014-03-21 10:55:59
1545
转载 Linux设备驱动之I2C架构分析
一:前言I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线.另外,I2C是一种多主机控制总线.它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以.而I2C 是基于multi master机制.一同总线上可允许多个master.关于I2C协议的知识,这里不再赘述.可自
2014-03-21 10:34:49
529
转载 关于上拉电阻和下拉电阻
上拉电阻: 1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。2、OC门电路必须加上拉电阻,才能使用。3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入
2014-03-21 10:32:02
290
转载 关于linux nand 驱动调试的一些注意点
关于linux nand 驱动调试的一些注意点作者: zjujoe 转载请注明出处Email:zjujoe@yahoo.comBLOG:http://blog.csdn.net/zjujoe 最近在开发 nand驱动, 不可避免的, 用到了 nand tools. 这里将一些细节记录下来。网上google 的内容好像也不是很多。Nand tools(mtdutils1.2)似乎
2014-03-21 10:03:59
605
转载 自动登录(不用*DM)并启动X
今天费半天劲终于把它搞定了,没有新知识,只是找了半天才找到的真正可行的方法,分享一下,以后大家有这样的需求时不用再费劲找了。一、写脚本autologin代码:#!/bin/bash/bin/login -f #你的用户名chmod +x autologin设置可执行权限,移动到/usr/bin/下。二、把/etc/event.d/tty1中下面这一行:
2014-03-21 10:01:37
638
转载 Linux 3.2中回写机制的变革
标签:Linuxcache writeback原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://alanwu.blog.51cto.com/3652632/1109952 writeback机制模型 在Linux-3.2新内核中,page cache和buffer cache的刷新机制发
2014-03-19 18:10:31
421
转载 writeback机制源码分析
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://alanwu.blog.51cto.com/3652632/1110046 writeback相关数据结构 与writeback相关的数据结构主要有:1,backing_dev_info,该数据结构描述了backing_dev的所有信息,通常块设备的
2014-03-19 18:09:42
1088
转载 Kprobe在Linux kernel debug中的应用
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://alanwu.blog.51cto.com/3652632/1109054 一直在做kernel开发方面的工作,也一直苦于kernel debug的困惑,到底如何进行kernel开发的debug的工作?今天经美国同事的推荐,我认为kprobe是一个非常好的deb
2014-03-19 18:05:24
495
转载 Kernel: Get filename from "struct file *"
char *tmp;char *pathname;path_get(&file->f_path);tmp = (char *)__get_free_page(GFP_TEMPORARY);if (!tmp) { return -ENOMEM;}pathname = d_path(&file->f_path, tmp, PAGE_SIZE);path
2014-03-19 15:01:57
586
转载 如何阅读 Linux 内核源码
How to read Linux kernel source code 内核的源码非常的庞大,阅读源码是研究内核首先面对的问题. 我列出两种工具,也是我常用的两种.当然还有其他的工具,但是我推荐这两个工具:1. windows 平台 - Source Insight当前的版本是v3.5是windows下很不错的一个阅读源码的工具. 2. Linux 平台
2014-03-19 14:59:38
505
转载 linux 下udp打洞原理分析
做过P2P通信的人应该都会用到这个技术,udp打洞。通过udp打洞,可以实现两个nat后的主机进行直接通信。wiki中关于udp打洞的描述:通过UDP打洞实现NAT穿越是一种在处于使用了NAT的私有网络中的Internet主机之间建立双向UDP连接的方法。由于NAT的行为是非标准化的,因此它并不能应用于所有类型的NAT。其基本思想是这样的:让位于NAT后的两台主机都与处于公共地
2014-03-19 14:58:15
1200
转载 教你如何注册proc文件系统
分类: LINUX有些时候编写的内核模块,为了具有更高的可调试性,通常会使用proc文件系统。例如netfilter的layer7模块。下面是在2.6.24下的注册proc文件系统,并实现读写功能的代码。在/proc/net下建立目录procdir,在该目录下注册procfile文件。#includelinux/spinlock.h>#include
2014-03-19 14:57:28
617
转载 LINUX内核之内存屏障
时间2012-06-11 09:33:30 CSDN博客原文 http://blog.csdn.net/ture010love/article/details/7651536 @CopyLeft by ICANTH, I Can do ANy THing that I CAN THink!~Author: WenHui, WuHan University,2012-
2014-03-19 14:56:38
686
转载 Linux 内核模块实现udp发送字符串
声明:欢迎转载和引用,转载请注明出处。引用代码请保证代码完整性。From: http://blog.chinaunix.net/uid-20662820-id-3784251.html昨天CU论坛有人问到如何在内核模块发送数据包,于是找到了之前写的代码,跟大家分享一下。该代码SLES 11 sp2内核3.0.13上编译运行通过。点击(此处)折叠或打开
2014-03-19 14:55:44
1306
转载 Code Debug and Inject
分类: LINUX欢迎转载,转载请保留文档完整性!From:http://blog.chinaunix.net/uid-20662820-id-3799149.html Code Debug and InjectAuthor: Tony tingw.liu@gmail.com Date:2013年7月11日星期四 1. Debug L
2014-03-19 14:50:15
561
转载 MMU基础知识
From: http://learn.akae.cn/media/ch17s04.html4. MMU 请点评现代操作系统普遍采用虚拟内存管理(Virtual Memory Management)机制,这需要处理器中的MMU(Memory Management Unit,内存管理单元)提供支持,本节简要介绍MMU的作用。首先引入两个概念,虚拟地址和物理地址。如果处理
2014-03-19 14:37:45
427
转载 [经典]Linux内核中ioremap映射的透彻理解
From: http://blog.csdn.net/do2jiang/article/details/5450839几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 典型地,如X86处理器为
2014-03-19 14:24:12
342
转载 ARM linux kernel从入口到start_kernel代码分析 -- 只到machine type选中为止
转载自:http://blog.sina.com.cn/bytex 本文针对arm linux, 从kernel的第一条指令开始分析,一直分析到进入start_kernel()函数.我们当前以linux-2.6.19内核版本作为范例来分析,本文中所有的代码,前面都会加上行号以便于和源码进行对照.例:在文件init/main.c中:00478: asmlinkage
2014-03-19 14:23:21
682
转载 Kernel: printk's no_console_suspend
在kernel的printk.c中,有一个全局变量console_suspend_enabled,这个变量控制着当suspend之后,是否还可以往console上输出message。默认是不可以的。这会给debug带来一些困扰,尤其是suspend之后如果出现kernel panic或是其他异常情况的时候。所以,可以修改这个变量然后重新编译kernel,或者kernel也提供了一个kernel
2014-03-19 14:22:09
865
转载 如何调整Linux内核启动中的驱动初始化顺序
From: http://hi.baidu.com/serial_story/blog/item/d40d49c6907212129c163ded.html如何调整Linux内核启动中的驱动初始化顺序【问题】此处我要实现的是将芯片的ID用于网卡MAC地址,网卡驱动是enc28j60_init。但是,读取芯片ID的函数,在as352x_afe_init模块中,所以要先初始
2014-03-19 14:21:23
487
转载 如何根据Kernel Oops中的地址找到对应的代码行
From ChinaUnix: http://bbs.chinaunix.net/thread-3672391-1-1.html来自Linus Torvalds的讨论:https://groups.google.com/group/ ... 41/ed9c0a0cfcd31111例如这样的一个Oops:Oops: 0000 [#1] PREEMPT SMP Modules li
2014-03-19 14:17:46
483
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人