linux驱动
文章平均质量分 71
慢几步-深几度-前行
这个作者很懒,什么都没留下…
展开
-
linux中container_of(ptr, type, member)的使用
/*=============================================================== * Copyright (C) 2015 All rights reserved. * * 文件名称:t.c * 创 建 者:Gavin * 创建日期:2015年04月01日 * 描 述: * =============原创 2015-04-01 16:54:22 · 821 阅读 · 0 评论 -
Linux Audio DRV(音频驱动)-基于mini2440
前言Aduio驱动和网络路由的功能很相似,从一个入口最终到一个出口,这之间的路就是我们DRV最核心的地方了。这里分析的Uda134X的驱动要比现在任何一款Android手机上的Codec都要简单的多。凡事由简入难,万事不离其中。此仅仅分析Codec驱动。基本信息展示Uda1434x框图: amixer命令显示结果[Gavin@Gavin /]# amixerSimple mixer con原创 2015-11-24 11:13:07 · 1115 阅读 · 0 评论 -
android/linux读写I2C调试工具
源码下载方式1. http://download.csdn.net/detail/lugandong/9605246 方式2. (1)svn checkout http://lm-sensors.org/svn/i2c-tools/branches/i2c-tools-3.1 external/i2c-tools (2) 在 i2c-tools 目录下新建 Android.mk 文件,内容转载 2016-08-17 09:56:29 · 1779 阅读 · 0 评论 -
Android驱动利用sys节点进行调试
#define SYS_CHANGE_EXT_SPK_PA_MODE_SUPPORT#ifdef SYS_CHANGE_EXT_SPK_PA_MODE_SUPPORTstatic ssize_t store_caliberate(struct device *dev, struct device_attribute *attr, const char *buf, size_t co原创 2016-08-17 14:50:44 · 1846 阅读 · 0 评论 -
音频相关参数的记录(MCLK、BCLK、256fs等等)
一、拿512fs说话: 看图知道采样的位深是32bit(位),左右声道各占了8*32BCLK,那一个完整的LRCLK一共8*32*2=512BCLK。 其实xxxfs就是这么算出来的,也是固定的,当你定了几个channel,多少位深,就几乎可以确认是多少fs了。从主观的角度来看,fs的数值越大,那么一个完整的LRCLK越多,那承载的数据量就越大,随之的就是音质就会更加好。...原创 2017-05-18 15:02:56 · 41589 阅读 · 6 评论 -
Android Linux usb gadget configfs
Linux USB gadget configured through configfs 25th April 2013OverviewA USB Linux Gadget is a device which has a UDC (USB Device Controller) and can be connected to a USB Host to extend it转载 2017-06-01 09:59:57 · 3837 阅读 · 0 评论 -
How to enable Android ConfigFS gadgets
From https://wiki.linaro.org/LMG/Kernel/AndroidConfigFSGadgets#Synopsis How to enable Android ConfigFS gadgetsThe instructions to enabled MTP/PTP from command line did not work for me reliably on Marsh转载 2017-06-01 10:30:27 · 3069 阅读 · 0 评论 -
对于驱动调试有用的两个小工具(devmem2、devkmem)
转载于:http://blog.chinaunix.net/uid-20543672-id-3001090.html**一、devmem2** 前段时间一个学习Linux的朋友问我:“可不可以在调试设备驱动的时候,利用一个小工具来查看CPU中寄存器的值?”我当时对他说:“一般都是Printk打印出来的。”后来这个朋友自己去找了资料告诉我:好像用/dev/mem可以实现。后来我自己找了以下相关的资料原创 2015-07-04 10:05:47 · 2411 阅读 · 0 评论 -
Android(Linux)模拟按键、触摸屏等事件
前提:在我们应用程序或者在写Android自动化测试时候常常会需要模拟实体按键,来给我们做测试用。这也是我要整理的目的。主要的涉及的是Linux Input Event事件。以下的例子基于Android 5.1(Linux-3.10)。一、利用getevent、sendevent模拟按键(1)命令:getevent -t 结果:...add device 6: /dev/input/event9原创 2015-08-16 08:18:28 · 8273 阅读 · 0 评论 -
在Linux DeviceTree添加dtsi文件并在驱动中读取节点信息写入sys文件系统
一、前提新版基于ARM的Linux都会基于Device Tree去代替之前的device驱动。更加多的了解Device Tree可以访问宝哥的Bolg:ARM Linux 3.x的设备树(Device Tree)这里只是举例在arch/arm/boot/dts中添加dtsi文件并在驱动中读取dtsi中节点信息,并将节点信息写入sys文件系统,至于怎么创建、读写sys文件可以参考: linux sys原创 2015-08-19 20:23:44 · 5690 阅读 · 1 评论 -
Linux I2C(一)之常用的几种实例化(i2c_client )
前言:因为工作是音频驱动,所以经常涉及到I2C、I2S等常用的总线,想将I2C相关的东西总结一下,让自己更加了解I2C。方式一:使用arch/arm/mach-s3c24xx/mach-mini2440.c举例:static struct i2c_board_info mini2440_i2c_devs[] __initdata = { {/* 遇到与”24c08一样的名称”的驱动就会与之原创 2015-09-01 21:40:04 · 13071 阅读 · 4 评论 -
网络驱动netdev_priv函数解析
函数源码:static inline void *netdev_priv(const struct net_device *dev) { return (char *)dev + ALIGN(sizeof(struct net_device), NETDEV_ALIGN); } 通过指针偏移获得私有数据的首地址。要看怎么获得还得看怎么分配给他们内存的;可以追踪到(dm9000.原创 2015-01-27 16:42:27 · 5191 阅读 · 0 评论 -
基于linux(2.6.32)通用adc接口的简单测试驱动
1. 在arch/arm/mach-s3c2440/mini2440.c中添加:static struct platform_device mini2440_adc = { .name = "mini2440_adc", .id = -1, .dev.parent = &s3c_device_adc.dev,// .num_resources = ARRAY_SIZE(s3c_ad原创 2014-12-30 15:30:06 · 1445 阅读 · 0 评论 -
基于Linux2.6.32内核对DMA架构分析
基于Linux2.6.32内核对DMA架构分析原创 2014-12-17 15:39:22 · 699 阅读 · 0 评论 -
linux sysfs下创建文件
linux sysfs创建 读 写原创 2015-06-22 16:14:31 · 2908 阅读 · 0 评论 -
linux 在proc文件系统下创建文件
本例主要涉及如何在proc下创建文件##### 基于linux3.10 #####例1:/*=============================================================== * Copyright (C) 2015 All rights reserved. * * File :proc.c * Author原创 2015-06-22 16:25:36 · 4378 阅读 · 0 评论 -
linux创建debugfs文件并进行读写操作
本例主要涉及如何创建debugfs文件并进行读写操作。##### 基于linux 3.10 #####例1:/*=============================================================== * Copyright (C) 2015 All rights reserved. * * File :debugfs.c原创 2015-06-22 16:32:58 · 2421 阅读 · 0 评论 -
mini2440 DM9000驱动分析
最好结合DM9000、S3C2440手册分析;DM9000手册: http://wenku.baidu.com/link?url=5I7F6EgEJlb5p2O3DbibOepm252TNj6ZXAF0v0G3BpHy9i6bo19Fr6oo-1boH-Ml1_MQGQGUvMXAz7kmCeyAtc7rNl_00bU8z9ymhffLWl_ S3C2440手册: http://wen原创 2015-02-03 17:26:36 · 1293 阅读 · 0 评论 -
linux驱动中宏__setup(str, fn)
(一). 定义如下:#define __setup(str, fn) \__setup_param(str, fn, fn, 0)#define __setup_param(str, unique_id, fn, early) \static char __setup_str_##unique_id[] __initdata __aligned(1) = str; \static struct原创 2015-07-31 21:26:21 · 2189 阅读 · 0 评论 -
除烧写工具以及fastboot之外的烧写方式(dd)
1. 之间区别(1)烧写工具基于平台的不同,有的烧写工具需要进行打包之后再进行烧写,耗时耗力,比如telechips平台,就是一奇葩。 (2)fastboot较比烧写工具灵活,在调试的过程中优势十足。但fastboot只能烧写指定的分区,比如boot、cache、system等等,但有的平台将dtb的分区独立出来了,fastboot也就无能为力了。 (3)使用dd命令可以烧写任何的分区,灵活性更原创 2017-06-27 11:06:30 · 3347 阅读 · 0 评论