- 博客(10)
- 收藏
- 关注
原创 Android:mtp驱动和usb驱动交互的过程
网络上有很多关于mtp协议在Android上的流程,但基本就止步于mtp的驱动这次做usb数据传输优化的过程,发现mtpserver对mtp驱动的交互占用时间比较短,并且优化空间不足,不是瓶颈所在真正的瓶颈在于mtp驱动和usb驱动配合,以及vfs io接口向sdcard的写入,所以搞清楚mtp如何与usb驱动进行配合至关重要总结出一张图,关键部分已经标明,配合机制
2015-05-31 14:17:24 1612
原创 Linux I2C 对16位寄存器地址 进行读写操作
前提是i2c控制器的驱动必须已经正常运行,标准的i2c tool只能对8位的地址进行读写,但是eeprom这种16位的地址就无能无力了所以这种对16位地址的读写支持,在嵌入式领域还是十分常见的主要利用标准的Linux I2C接口,struct i2c_msg; //I2C消息数据结构首先是I2C时序图(来自网络)
2015-05-31 14:04:25 14784 3
原创 使用buildroot编译和使用开发板上的gcc[native gcc]
buildroot一般被用来做嵌入式的rootfs,但是很多芯片和第三方开源组织都喜欢用它来搭建sdk或者软件编译平台最有名的就是openwrt了,目前的openwrt源码目录架构可以明显看出buildroot的痕迹这次我用buildroot,编译一个gcc,本质上是用交叉编译器编译一个开发板自己可以直接使用的gcc编译器,buildroot称之为nativ gcc因为官方的对buil
2015-05-30 23:31:52 4343 1
原创 利用第三方服务器做双内网透传实验
利用ssh服务器做内网穿透实验ssh -p 27913 -N -f -R 3333:127.0.0.1:22 boa@208.110.83.242ssh -p 27913 -N -f -L 3333:127.0.0.1:3333 boa@208.110.83.242 从路由器用ssh 透传入公司内网服务器boafanx官方提供的免费SSH账号
2015-05-30 22:54:30 4262
原创 linux将虚拟地址转物理地址的过程探索[页表]
先是原理简单的介绍下:Linux把物理内存分为了固定统一大小的块,称为page[页],一般为4KB,并且每个页都有一个编号 [page frame number]。这样一个512M大小的内存将包括128K个页。page table的作用就是将进程操作的地址[虚拟地址]转换成物理地址。Linux Memory Model==================----------
2015-05-30 22:41:13 1543
原创 Linux改为单臂路由器
这里所谓的单臂指的是:当芯片只有一个口接入CPU的时候,这个口只能同时做wan和lan口这里假设只有一个口eth2,其实大部分低端路由器只会一个口和CPU直接连接,比入mt7620a芯片如果去看mt7620a在openwrt上的网络配置,就可以看到和我下面的配置类似,原理是一样利用Linux自身的vlan虚拟出的wan和lan,但是芯片本身的wan和lan一定要和虚拟出的对应上,不然网络不会通的
2015-05-30 22:20:29 1686
原创 用ser2net和 kmod-usb-serial改造mt7620a成为串口服务器
mtk7620a套片带了三个usb口,openwrt的package又自带ser2net,这样可以轻松将其改造为串口服务器,每个usb都可以接一个串口
2015-05-30 21:40:57 4086
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人