kernel
文章平均质量分 93
xiaofengcanyue2013
这个作者很懒,什么都没留下…
展开
-
全志A40I tina系统蓝牙wifi调试方法
全志A40I tina系统蓝牙wifi调试方法用的是xr829,那么要用到4个功能,分别是wifi做ap, wifi做station;蓝牙做source,也就是主,蓝牙做sink,也就是从1. wifi做station, 先运行wifi_scan_results_test,扫描到wifi列表:root@TinaLinux:/# wifi_scan_results_test ************************************Start scan!**********原创 2020-10-29 09:57:39 · 3135 阅读 · 1 评论 -
OTG中的ID脚风波释疑
from: http://my.oschina.net/armsky/blog/153221. 概要OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,充当USB Host,A-Device始终为总线 提供电力,ID悬空被称作为B-Device,充当USB Device,设备的USB Host/USB Device角色可以通过转载 2013-12-17 15:48:12 · 989 阅读 · 0 评论 -
USB descriptor
from:http://blog.csdn.net/jacobywu/article/details/8861882struct usb_device_descriptor { __u8 bLength;//设备描述符的字节数大小,为0x12 __u8 bDescriptorType;//描述符类型编号,为0x01 __le16 bcdUSB;转载 2013-12-18 10:28:01 · 1547 阅读 · 0 评论 -
linux SPI驱动 - 模拟gpio
重要的结构体分析:struct spi_master { struct device dev;原创 2014-01-07 20:55:26 · 8058 阅读 · 1 评论 -
Camera V4L2 架构分析
V4L2相关代码位于linux-3.4/drivers/media/video目录中。原创 2014-06-17 17:04:59 · 6098 阅读 · 0 评论 -
linux I2C驱动分析整理
一直以为对kernel I2C很熟悉了,可是最近用到时候,发现对其中一些函数理解还不透彻,加上以前分析的也没有做下笔记,现在重新整理一份,供以后参考。平台是allwinner A10 linux3.0内核的。该芯片有3个i2c适配器,资源在linux-3.0/arch/arm/mach-sun4i/devices.c中,定义如下:/* twi0 */static struct su原创 2013-11-27 10:41:00 · 3593 阅读 · 1 评论 -
BANANA PI 入门:香蕉派如何安装系统
from:http://blog.xiaogelia.com/banana-pi-os.html蕉派的系统是安装在SD卡中的,想要把系统安装到SD卡中,你需要一台运行Windows或Linux的PC,香蕉派能运行的系统很多,但是现在大部分还在测试阶段,官方放出来的有两三个系统。社区内的一些高手也放出来了一些,相信在不久的将来,我能能选择的越来越多。这篇文章只适合,我这样的小白用户来阅读转载 2016-11-16 19:48:01 · 11793 阅读 · 0 评论 -
A20 uboot和kernel的编译环境和方法
来自: http://forum.lemaker.org/cn/forum.php?mod=viewthread&tid=62&page= 最近浏览一遍csdn上的文章,是分析A10、A20芯片 Bootloader加载过程的文章,里面不仅简单叙述了bootloader加载过程,同时也迅速了uboot和kernel的编译环境和方法,现在转过来给大家学习一下。A10/A20 Bootlo转载 2017-04-24 14:04:21 · 3310 阅读 · 0 评论 -
全志A33/A64移植ubuntu系统记录
1. 首先内核需要添加几个配置,参考raspberry, CONFIG_FHANDLE=y CONFIG_EXPORTFS=y CONFIG_AUTOFS4_FS=y CONFIG_UNIX_DIAG=y否则跑到ubuntu系统有问题2.如果自己制作全新的ubuntu 系统,那么要用ubuntu-base-16.04-core-armhf.tar.gz,不能用14.04版本的,否则跑不起来原创 2017-05-18 09:36:43 · 10517 阅读 · 18 评论 -
mcp2515带spi的can驱动移植总结
from: http://blog.chinaunix.net/uid-25407623-id-4046632.htmlmcp2515带spi的can驱动移植总结2013-12-21 10:09:44 分类: Android平台最近LZ接公司安排任务,移植一款CAN总线设备Mcp2515。由于在前次任务中有SPI经验,所以在接受任务是主要关注此设备采用SPI接口。所以一转载 2017-08-11 16:00:03 · 7897 阅读 · 0 评论 -
nvp6124b在全志A40I上调试过程
项目要求的时2路AHD 1080P/720P模拟视频输入,还有两路tvin输入,一共四个画面。AHD用nvp6124b来转换,至于tvin,A40I已经自带了4路,可以直接用nvp6124b的驱动在原厂给的t3 sdk包里已经有了,直接复制过来即可。两路视频的话是要对应两个驱动的,才能注册出两个/dev/video节点出来,所以复制一份同样的驱动代码重新命名为nvp6124bnew.c...原创 2019-09-27 19:19:26 · 4939 阅读 · 0 评论 -
usb gadget驱动分析
gadget就是指一些比较杂的小设备。前面一篇提到usb作为device的情况,注册完成后,导出usb_gadget_probe_driver函数后就完了。这个函数就是为gadget驱动准备的,这就要从gadget/android.c开始分析,先从它的init函数看起:static int __init init(void){ struct android_dev *dev;原创 2013-12-31 09:26:31 · 6205 阅读 · 0 评论 -
要开始系统学习LINUX USB驱动了(通用的驱动流程)
以USB串口驱动pl2303为例子分析。首先是要有一个总管usb设备的驱动,就是定义在generic.c中的 usb_device_driver;该结构在usb.c中注册:int usb_register_device_driver(struct usb_device_driver *new_udriver, struct module *owner){原创 2013-12-12 16:08:57 · 2270 阅读 · 0 评论 -
usb hub和usb device注册过程
A10的cpu有一个hub,也就是root hub,下边带有三个controller。其中第0个控制器具有otg功能,它的端点0支持最大64字节的控制传送,另外具有5个端点;控制器1、2只能作为host用,其下面最多能外接一个hub。如果控制器0作为device用,简称udc;如果作为host用,就和其他两个控制器一样简称hcd。 他们作为平台设备注册进内核,平台资源在drivers/原创 2013-12-27 13:32:28 · 3704 阅读 · 1 评论 -
BITS_TO_LONGS宏的作用
[linux-3.0]BITS_TO_LONGS定义在:include/linux/bitops.h#define BITS_PER_BYTE 8#define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long))DIV_ROUND_UP定义在:include/linux/ker转载 2013-04-19 15:23:11 · 1528 阅读 · 0 评论 -
Uboot启动流程
首先要說的是平臺是基於三星S5PV210的,因為不同的平臺啟動方式不一樣。 先說具體運行的流程,再分析這些流程的代碼實現。 Inand接在MMC0,MMC1上;sd card接在MMC2上;wifi接在MMC3上。我們從產線第一次打板開始分析,這時候inand為空,沒有任何代碼,我們要啟動幾台,那就必須有代碼運行,总不能把inand拆下来拷贝一份代码进去吧,所以就只能从电脑拷贝原创 2013-02-27 15:39:29 · 2123 阅读 · 0 评论 -
linux内核中串口驱动注册过程(tty驱动)
最近闲来无事情做,想到以前项目中遇到串口硬件流控制的问题,蓝牙串口控制返回错误,上层读写串口buffer溢出的问题等,也折腾了一阵子,虽然最终证明与串口驱动无关,但是排查问题时候毫无疑问会查看串口驱动的相关代码,所以把串口驱动的流程过了一遍,方便以后再用到时拿来用。分析的是全志代码A20。直接开始代码分析吧。串口驱动代码在linux-3.3/drivers/tty/serial目录下,全志把自原创 2013-07-19 11:51:20 · 5637 阅读 · 2 评论 -
linux虚拟文件系统(VFS)笔记
super_block为超级块,每个文件系统都有一个超级块,它里面有类型为super_operations *的成员s_op,指向超级块的操作方法。分配inode就是调用各个文件系统自己超级块的方法,fs/inode.c: alloc_inode() -> sb->s_op->alloc_inode(sb);s_op还提供了sync等方法inode表示文件系统的一个对原创 2013-08-05 11:36:33 · 1995 阅读 · 0 评论 -
linux输入子系统分析
首先从handler分析,我们看注册了的handler有那些,joydev.c(游戏杆事件),mousedev.c(鼠标事件),evdev.c(通用的触摸屏,按键,sensor等事件),keyboard.c(usb,ps2键盘事件),这里选一个我们最常用的evdev.c分析,在drivers/input/evdev.c中: 1002 static struct input_handler原创 2013-09-03 10:17:20 · 1522 阅读 · 0 评论 -
RC522 SPI调试
代码是从用C写的单片机移植到linux上的,单片机的SPI通讯当然是直接IO口模拟的:void SPIWriteByte(unsigned char SPIData)原创 2013-11-19 10:36:13 · 11070 阅读 · 18 评论 -
自己实现linux串口驱动
其实driver/tty/serial目录下有很多厂家自己的uart驱动,还有些是spi转串口的驱动。不过这些都设计到外围硬件,我这里没有外围设备,只是自己模拟来玩的,以后用到硬件时候往里面加就行了,驱动如下:/* * drivers/tty/serial/sw_uart.c * (C) Copyright 2007-2011 * Reuuimlla Technology Co.,原创 2013-11-19 14:18:28 · 7590 阅读 · 1 评论 -
好久没有写驱动了,发现最简单的poll都不会写了
调试了一个下午,后来还是晚上回去查看了以前写的代码才调试好,其实很简单,就是差一点点了。不知到错在哪里。感慨自己老了啊。很来是很简单的,要实现一个poll轮询,定义了file_operations的poll实现函数:static unsigned int eventpoll(struct file *file, poll_table *wait){ unsigned in原创 2013-11-09 09:39:24 · 1668 阅读 · 0 评论 -
USB描述符详解
from:http://blog.csdn.net/alien75/article/details/4622319一、基本概念 1、USB协议本身很复杂,但方便在提供了统一的接口方式,使得驱动程序在使用设备的时候,工作简化到了类似操作串行接口。 2、USB设备可以看作提供了多个串口的设备,依据USB的规范,我们将每个串口称作端点(Endpoint),要和转载 2013-12-13 09:59:19 · 1095 阅读 · 0 评论 -
usb子系统重要的数据结构分析
from:http://www.linuxidc.com/Linux/2012-07/66670p7.htmusb子系统重要的数据结构分析:第一:逻辑结构1. 设备 usb_device //代表一个具有复合功能的设备2. 配置 usb_host_config //功能的组合3. 接口 usb_interface //一种功能4. 设置 usb_host转载 2013-12-16 15:18:05 · 1459 阅读 · 0 评论 -
infotmic计算内存的方法 PMM Reserved Memory
摘自原厂手册:<!--h3 {margin-top:0.46cm; margin-bottom:0.46cm; direction:ltr; color:rgb(0,0,0); line-height:172%; text-align:justify; page-break-inside:avoid}h3.western {font-family:"原创 2013-04-27 10:50:41 · 1322 阅读 · 0 评论