- 博客(79)
- 收藏
- 关注
转载 ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57
前不久ARM正式宣布推出新款ARMv8架构的Cortex-A50处理器系列产品,以此来扩大ARM在高性能与低功耗领域的领先地位,进一步抢占移动终端市场份额。Cortex-A50是继Cortex-A15之后的又一重量级产品,将会直接影响到主流PC市场的占有率。围绕该话题,我们今天不妨总结一下近几年来手机端较为主流的ARM处理器。 以由高到低的方式来看,ARM处理器大体
2016-11-22 11:38:49
1999
转载 ARM体系结构
1. ARM概述1.1 Application Cortex Processors (ARM Cortex 应用处理器 ) • Cortex™-A 系列 - 开放式操作系统的高性能处理器 Cortex 应用处理器在先进工艺节点中可实现高达 2GHz+ 标准频率的卓越性能,从而可支持下一代的移动 Internet 设备。这些处理器具有单核和多核种类,最多提供四个
2016-11-22 11:37:28
505
转载 ARM Introduction
ArchitectureProcessor Architecture = Instruction Set + Programmer’s modelArchitecture4T5TE67coreARM7TDMIARM922TThumb instruc
2016-11-22 11:36:29
619
转载 Windows下如何获取usb device信息
Windows provided some API to get the device's detail information, include USB STORAGE HID PCI etc#include #include // for GUID_DEVCLASS_CDROM etc#include #include // for MAX_DEVICE_ID_
2016-09-01 18:18:01
16049
7
转载 xHCI spec 1.0
extensible host controller interface for universal serial bushttps://www.baidu.com/link?url=z2hfp3-c-cOXawkxSPYRriOUlyUcuSE0ZQHK-4G4o3LaqF_FltA35ncxy3F3cU8uL5QHaFIophw-DRHGMRq8NLWB6gRRDP505Y_QLVJ9IH
2016-07-03 14:18:23
1836
原创 debugfs dump usb device info
使用kernel自带的debugfs来dump usb device信息:1. mount debugfsmount –t debugfsnone /sys/kernel/debug2. Dump USB devicecat/sys/kernel/debug/usb/devices
2016-05-12 11:25:28
652
原创 SCSI work flow
static int queuecommand_lck(structscsi_cmnd *srb, void(*done)(struct scsi_cmnd *)){ structus_data *us = host_to_us(srb->device->host); /*check for
2016-05-03 16:11:43
580
转载 Linux 内核 SCSI IO 子系统分析
Linux 内核 SCSI IO 子系统分析研究 LINUX 内核中 SCSI 子系统处理 IO 的过程本文基于 LINUX2.6.18 内核,从 SCSI 设备访问请求的提交,SCSI 命令的处理、错误恢复几个方面浅析了 LINUX 内核中 SCSI 子系统的 IO 的处理机制。概述LINUX 内核中 SCSI
2016-04-29 13:31:07
920
转载 script/ shell脚本 callstack如何dump
将script加入到需要check的脚本中即可。例如需要check ins_all_mod.sh的callstack,将附档中script加入到其最后即可。# FILE : sctrace.sh# LICENSE : GPL v2.0 (only)# PURPOSE : print the recursive callers' list for a sc
2016-04-08 09:07:09
851
转载 insmod过程详解
转自 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=27717694&id=3971861一、前言对于现在编译的一些module要insmod在系统上时,可能会报各种各样的错误。这些错误仔细研读内核源码,都能找出原因。2.6 内核以前的insmod部分主要依赖于modutils源码包,在用户层基本将工作完成,加载
2016-04-07 18:56:45
13645
1
原创 获取driver导出的所有symbol
echo 0 > /proc/sys/kernel/kptr_restrict // shell cmd; su权限 cat /proc/kallsyms | grep xxx // shell cmd, xxx is the symbol name, and we can find the detail address of xxx r 0xxxxx //
2016-04-07 17:11:45
366
转载 USB Mass Storage大容量存储的基本知识
转自: http://www.crifan.com/files/doc/docbook/usb_disk_driver/release/htmls/ch02_msc_basic.html第 2 章 USB Mass Storage大容量存储的基本知识目录2.1. USB Mass Storage相关的协议2.1.1. USB Mass Storage相关
2016-03-30 20:13:13
4373
原创 kmalloc fail导致系统异常
如果在中断ISR中间有作memory alloc的动作,有可能会遇到如下的BUG log信息,分析如下:1 ISR中不能存在任何可调度的动作,如sleep等2 在ISR中申请memory时,最好尽量使用 kmalloc(xxx, GFP_ATOMIC), 而不要使用kmalloc(xxx, GFP_KERNEL), 因为GFP_KERNEL是可以被打断的,如果因memory not e
2016-03-29 15:11:22
2403
转载 Device Tree(三):代码分析
Device Tree(三):代码分析作者:郭健 发布于:2014-6-6 16:03 分类:统一设备模型一、前言Device Tree总共有三篇,分别是:1、为何要引入Device Tree,这个机制是用来解决什么问题的?(请参考引入Device Tree的原因)2、Device Tree的基础概念(请参考DT基础概念)3、ARM linux中和D
2016-02-24 10:43:05
593
转载 Device Tree(二):基本概念
Device Tree(二):基本概念作者:郭健 发布于:2014-5-30 16:47 分类:统一设备模型一、前言一些背景知识(例如:为何要引入Device Tree,这个机制是用来解决什么问题的)请参考引入Device Tree的原因,本文主要是介绍Device Tree的基础概念。简单的说,如果要使用Device Tree,首先用户要了解自己的硬件配置和系统运
2016-02-24 10:38:18
460
转载 Device Tree(一):背景介绍
Device Tree(一):背景介绍作者:郭健 发布于:2014-5-22 16:46 分类:统一设备模型一、前言作为一个多年耕耘在linux 2.6.23内核的开发者,各个不同项目中各种不同周边外设驱动的开发以及各种琐碎的、扯皮的俗务占据了大部分的时间。当有机会下载3.14的内核并准备学习的时候,突然发现linux kernel对于我似乎变得非常的陌生了,各种新的机制,
2016-02-24 10:11:37
331
转载 Kmemleak Introduction
Kernel Memory Leak Detector===========================Introduction------------Kmemleak provides a way of detecting possible kernel memory leaks in away similar to a tracing garbage collector(h
2016-01-20 19:26:49
1300
转载 vim 常用命令
基本命令:e filenameOpen filename for edition:wSave file:qExit Vim:q!Quit without saving:xWrite file (if changes has been made) and exit
2016-01-11 15:01:27
365
转载 usb host controller & usb core & usb device driver之间的关系
使用USB设备时,两个模块是必须的:usb核心模块:usbcore usb主机控制器驱动( host controller driver ),如ehci_hcd、ohci_hcd、uhci_hcd、xhci、musb等等usbcore: usbcore负责实现一些核心的功能,为别的设备驱动程序提供服务,提供一个专用于访问和控制usb硬件的接口,
2016-01-05 10:44:27
2409
转载 Linux用户空间与内核空间
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。Linux内核地址映射模型x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存。段
2016-01-04 16:22:35
401
转载 CMA Introduce
CMA(Contiguous Memory Allocator)是智能连续内存分配技术,是Linux Kernel内存管理系统的扩展,目的在于解决视频播放(特别对于4K视频)需要预留大量连续内存导致运行内存紧张的问题。1、 简介连续内存分配器(CMA - Contiguous Memory Allocator)是一个框架,允许建立一个平台无关的配置,用于连续内存的管理。然后,设备所需内
2015-12-31 17:58:08
604
转载 Android getevent / sendevent的用法
Android 自带了 getevent 和 sendevent,分别用于获取设备报送的事件和模拟产生事件,前者用于辅助设备驱动的验证,后者用于模拟事件进行上层应用的验证。关于event设备的获取,在 /proc/bus/input/devices 下面:$ adb shell cat /proc/bus/input/devicesgetevent和sendevent用法:
2015-12-01 17:43:27
555
原创 CDC: 配置USB为Gadget serial device
Linux支持连接各种USB从设备,同时也支持自己作为设备插入到其他主机当中。最典型的例子就是Android OS的手机,插入电脑可以被识别为U盘之类的设备。对于SOC来说,这部分直接对应了USB Device部分的操作。为了避免与作为主机时支持的"设备驱动 (USB Device Driver)"一词混淆, Linux给这部分的实现取名为"Gadget" (小玩具)。内核源码的目录为\d
2015-11-17 10:59:29
7874
1
转载 persist: usb persist config
usb driver support suspend / resume 如果suspend完成之前,usb VBUS未掉电,resume之后usb driver会对device作reset动作,来重新开始与设备的通信。疑问:为什么不是resume之后对设备重新作枚举呢 ? suspend完成之前device未掉电,因此resume时系统仍旧认为有device接入。相应的driver维护的数
2015-11-16 16:43:24
2086
转载 diff命令生成补丁
1、使用diff生成补丁;diff是Linux下的文件比较命令,参数这里就不说了,直接man一下就行了,不仅可以比较文件,也可以比较两个目录,并且可以将不同之处生成补丁文件,其实就是一种打补丁的命令。使用方法如下:diff -rNu a b > diff.patch
2015-11-13 10:34:55
789
转载 如何区分U盘和硬盘
According to Mass Storage spec, the SCSI command INQUIRY can distinguish USB HDD from USB flash memory.After INQUIRY is send, data format of device returns is asbelow:The field RMB (bit7 of byt
2015-10-22 11:36:02
687
转载 如何使用Mediawiki搭建个人wiki系统、以及wiki的部分基本操作和设置
本文讲述如何使用Mediawiki搭建个人wiki系统、以及wiki的部分基本操作和设置Mediawiki Wamp php pdf导出目录[-]Wiki安装基本配置常用插件备份及优化 日常开发中总会有许多东西需要记录,很多软件都可以做到这一点,例如有道云笔记,或者写博客。但个人偏爱于Mediawiki,因为wiki可定制性强,
2015-09-28 11:16:36
14677
转载 USB OTG规范的SRP和HNP协议
OTG设备首先应该是符合USB2.0规范的设备,此外它还具有以下特征[1]:1. 有限的主机性能2. 像外围设备一样能进行全速操作(可选高速)3. 像主机一样支持全速(可选低速和高速)4. 可连接的外围设备清单(Targeted Periphral List)5. 会话请求协议SRP6. 主机交换协议HNP7. 只有一个Min
2015-09-25 15:13:10
10412
原创 常用工具下载链接
串口终端工具ttermpro:http://external.informer.com/ttssh2.sourceforge.jp/
2015-09-18 14:32:55
1138
转载 fcntl使用及FD_CLOEXEC详解
fcntl使用说明转自 http://www.cppblog.com/mysileng/archive/2013/01/15/197279.aspx功能描述:根据文件描述词来操作文件的特性。#include #include int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); in
2015-09-18 14:00:29
4083
转载 addr2line objdump命令使用方法
在Linux下写C/C++程序的程序员,时常与Core Dump相见。在内存越界访问,收到不能处理的信号,除零等错误出现时,我们精心或不精心写就的程序就直接一命呜呼了,Core Dump是Linux仁慈地留下的程序的尸体,帮助程序员们解决了一个又一个问题。有时配置不给力,Linux直接毁尸灭迹,没有了Core文件;又有时,刚好磁盘空间不足,Core文件写不下了。没有Core文件的时候,如何知道
2015-08-27 20:47:45
7821
原创 学习USB需要知道的几件事
藉由本版面,来记录一下自认为USB学习过程中所需要知道的几件事情,这中间的知识点有从网上摘录,也有自己总结的一部分,一并整理出来以更为系统清晰的理解USB driver 藉由本版面,来记录一下自认为USB学习过程中所需要知道的几件事情,这中间的知识点有从网上摘录,也有自己总结的一部分,一并整理出来以更为系统清晰的理解USB driver 1 USB driver部分的构
2015-08-25 15:01:34
588
转载 USB系统设备模型建立流程
USB设备模型建立流程概览S3c2440处理器中集成有USB控制器,该主控制器作为平台设备s3c_device_usb添加到内核,该设备与驱动ohci_hcd_s3c2410_driver匹配后调用函数usb_hcd_s3c2410_probe。在函数usb_hcd_s3c2410_probe中获取硬件资源,为USB主控制器结构体usb_hcd分配内存,调用函数usb_add_hcd填
2015-08-24 15:41:59
464
转载 为什么WiFi和USB3.0会互相干扰?
补充:关于基准频率的问题,根据评论里的说法有一定争议,USB3.0规范里给出过基准频率是2.5GHz的说法(up to the fundamental frequency of 2.5 GHz),但规范里给出的信号图里换算过来是5GHz,至少可以得知的是,USB3.0芯片里有2.5GHz的东西,是这东西产生的干扰,总线上是否以 2.5GHz传输还存疑。原回答:首先,需要
2015-08-17 09:41:07
30432
3
转载 Unix 與 MS-DOS 指令對照表
UnixMS-DOS 說 明 例 子 cdcd進入目錄cd ..mkdirmd開子目錄mkdir hellopwdcd顯示目前目錄pwdenvset顯示目前環境變數envsetenvset設定環境變數setenv pp pwd
2015-08-03 20:13:44
745
转载 常见内存分配算法及优缺点
常见内存分配算法及优缺点常见内存分配算法及优缺点如下: (1)首次适应算法。使用该算法进行内存分配时,从空闲分区链首开始查找,直至找到一个能满足其大小需求的空闲分区为止。然后再按照作业的大小,从该分区中划出一块内存分配给请求者,余下的空闲分区仍留在空闲分区链中。 该算法倾向于使用内存中低地址部分的空闲分区,在高地址部分的空闲分区非常少被利用,从而保留了高地址部分的大空闲区。显然
2015-07-21 17:16:28
1404
原创 Build error handing
1 initialization makes pointer from integer without a cast-> 该error多半是在做类型强转时操作不当引起,譬如将某一地址赋值给指针变量时,如果按如下操作,则会引发该erroruint8_t *pBase = 0xf0053000正确的写法应当是uint8_t *pBase =(uint8_t *)0xf005
2015-07-10 09:39:25
481
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人