关闭

一个关于USB Interface的例子

今天帮ML里的哥们试一个configfs的问题, 又重新认识了一下USB interface。原来,一个function可以有多个interface的, 以前一直认为只有一个。看下面的cat /sys/kernel/debug/usb/devices 输出。 T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=480  MxCh=...
阅读(2522) 评论(0)

两种禁止USB autosuspend的方法

在有些情况下,由于低功耗情况下,USB硬件的bug或者提高USB resume的速度,我们需要禁止USB的 autosuspend,下面是两种方法。 1: 在bootloader的bootargs里加上“usbcore.autosuspend=-1” 2: 文件系统起来后,运行如下命令,disable掉runtime pm for i in $(find /sys-name con...
阅读(1653) 评论(0)

USB Type-C 设计

最近USB Type-C用在了越来越多的产品上,而且也有客户开始导入Type-C的设计了,所有研究了一下USBType-C的设计和规范, 下面谈的不保证对,仅是我的一些理解,用于指导我的工作。   一些名词: DFP:    DownstreamFacing Port (通常指 USB Host) UFP:     UpstreamFacing Port (通常指 USB Device)...
阅读(837) 评论(0)

Linux Linker 的顺序

今天发现initramfs的产生比driver的加载早,感觉有点奇怪,仔细看了一下。 1. init/initramfs.c rootfs_initcall(populate_rootfs); 2. include/linux/init.h #define pure_initcall(fn)               __define_initcall(fn, 0...
阅读(325) 评论(0)

浅谈USB的安全性

最近看到一些,有关BadUSB的报道...
阅读(844) 评论(0)

Open-Drain与Push-Pull

【Open-Drain与Push-Pull】 GPIO的功能,简单说就是可以根据自己的需要去配置为输入或输出。(General Purpose Input Output,简称为GPIO或总线扩展器,利用工业标准I2C、SMBus™或SPI™接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。)但是在配置...
阅读(581) 评论(0)

LDO和DC-DC器件的区别

DCDC的意思是直流变(到)直流(不同直流电源值的转换),只要符合这个定义都可以叫DCDC转换器,包括LDO。但是一般的说法是把直流变(到)直流由开关方式实现的器件叫DCDC。      LDO 是低压降的意思,这有一段说明:低压降(LDO)线性稳压器的成本低,噪音低,静态电流小,这些是它的突出优点。它需要的外接元件也很少,通常只需要一两 个旁路电容。新的LDO线性稳压器可达到以下指标:输出噪声...
阅读(307) 评论(0)

在没有打印以及ICE无法连接的情况下,如何知道kernel hang的位置

前提是reset板子不会照成memory被reset 方法一(已测试): 1. 打开你的System.map文件,找到symbol: __log_buf 比如:806d6f88 b __log_buf 这里的地址0x806d6f88是虚拟地址,不过是和物理地址一一对应的, 一般双方只差一个最高4位的偏移。本例中__log_buf的物理地址是 0x106d6f88 2. boo...
阅读(520) 评论(0)

Linux下timer延时的使用

因笔者工作在嵌入式平台上(非x386),下面给出的结论仅在arm平台上测试过。 1. 在原子上下文,延迟应该少于100微秒。 使用udelay 2. 在非原子上下文延迟的使用 0-100us: 使用udelay 100us以上: 使用usleep_range 20ms以上且不要求精确: 使用msleep msleep不精确,完全可以用usleep_range代替。...
阅读(6450) 评论(2)

为什么USB Audio会产生jitter或数据丢失

1.  Host太繁忙,导致Host USB的数据包未来得及在指定时间(比如1ms)送到USB buffer处。 2. Device端的USB(PHY)和audio clock(I2S, LRCLK)的clock无法精确同步,比如full speed的usb的 clock为12M, 当audio的采样率为44.1khz时,USB的clock就无法整除Audio的clock, 这样USB就无法...
阅读(2490) 评论(0)

USB数据包的格式是小端的(little-endian)

ARM是小端的,所以字节顺序无需调整。不过,为了程序的可移植性,可以用cpu_to_le16将数据 转化为小端的如果在大端的平台上(如PowerPC)...
阅读(913) 评论(0)

__raw_writel, writel_relaxed 和 writel的区别

因为对别的平台不了解,下面仅谈它们在ARM上的区别 __raw_writel: 因为有volatile关键字, 所以编译器不会打乱多个__raw_writel的执行顺序。 对于ARM而言,当多个写以代码的顺序到达相同设备时,执行的顺序也是被保证的,不过 对于不同的设备,执行的顺序就不被保证了。 write_relaxed: 在ARM平台上与__raw_writel一样,因为...
阅读(6884) 评论(0)

Linux内核中USB充电器的解决方案

当前最新的内核(v3.5)对USB充电器的整体方案支持的不是太好,这里讨论的USB充电器的方案仅指软件 方案,即充电器的检测需要由软件干预(比如读取USB PHY的寄存器), 同时电池的充电值根据 充电器的不同类型,需要由软件来设置。 硬件检测充电器及硬件自动选择充电电流不在此讨论之列。 软件的方案的好处是: 可以省去一个USB充电器的检测芯片以及使用更简单(便宜)的电池管理芯片,...
阅读(2155) 评论(0)

How do I erase my disk

Use the "shred" command: Suppose I want to erase all the data on my hard disk, then I boot using a LiveCD like Knoppix and open a shell and type the following command: shred -vfz -n 10 /dev/hda He...
阅读(474) 评论(0)

我的女儿昨天会走路了

女儿可欣,在她13个月时,开始走路咯...
阅读(373) 评论(0)
55条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:49759次
    • 积分:1117
    • 等级:
    • 排名:千里之外
    • 原创:50篇
    • 转载:5篇
    • 译文:0篇
    • 评论:4条
    最新评论