- 博客(34)
- 资源 (3)
- 收藏
- 关注
原创 BlueZ移植与配置
Bluez作为当前最成熟的开源蓝牙协议栈,在Linux的各大发行版中已经得到了广泛的应用。在桌面环境下,使用Bluez应该已经没有太大的问题,本文的主要目的是介绍在嵌入式平台上,搭建和配置Bluez的各个Profile运行所需做的工作,讨论可能遇到的问题,介绍一些工具的使用和工作原理。因为本人的能力和测试时间有限,可能下文中有些理解、分析不一定准确,欢迎联系指正。 1 相关说明 1
2014-06-21 22:29:33 1088
原创 移植bluetooth
移植bluetooth功能,现将移植过程中碰到的问题简要列一下,备忘而已。1、内核增加配置make menuconfig -> Networking support -> Bluetooth subsystem support -->进行选择BT选项,至少选择如下几项:CONFIG_BT=yCONFIG_BT_RFCOMM=y## Bluetooth device
2014-06-21 22:21:15 1070
转载 Android4.3 Bluetooth 抓取hci log
Android4.2之前抓取hci log都是通过hcidump命令完成的,但是Android4.2 Bluetooth引入了Bluedroid,这是一个新的蓝牙协议栈。所以抓取hci log的方法也改变了。在我的Bluetooth计划里,本来是没打算写这篇blog的,但是在留言里看见有人问,所以写出来分享给那些目前还不会的。在Android 4.2之后, Bluetooth控制h
2014-06-21 22:19:29 834
转载 bluez蓝牙协议栈交叉编译移植教程
转载地址 请参考:v由于项目功能的要求,需要移植bluez蓝牙协议栈到S3C2410开发平台上,在移植的过程中出现了很多问题,比如依赖库的版本不匹配,交叉编译器版本过高或者过低等问题,为了能让大家少走移植的弯路,现将自己亲测的组合版本以及编译过程总结如下,同时还附带有编译过程的全称视频,只是没有声音,因为是在实验室没有麦,大家将就以下,虽然没有声音但是不影响编译过程,下载地址为
2014-06-21 22:17:42 2650
转载 Android 蓝牙驱动 概要
在linux中,蓝牙设备驱动是网络设备,使用网络接口。蓝牙设备的网络协议,所定义的协议族为:AF_BLUETOOTH (31)蓝牙协议部分头文件:include/net/bluetooth/hci_core.hinclude/net/bluetooth/bluetooth.h蓝牙协议源代码文件:net/bluetooth/*蓝牙系统的
2014-06-21 22:16:30 1350
原创 用户空间和内科空间交互信息方法--> copy_to_user
用法如下:详细得机制见转载他人得博客 地址http://blog.csdn.net/yangdelong/article/details/5491097http://blog.csdn.net/ce123_zhouwei/article/details/8457822一、Copy_to_user( to, &from, sizeof(from))
2013-08-08 14:36:47 761 1
转载 【转载】Linux多线程
研究linux多线程得问题,发现一篇好得博客http://www.cnblogs.com/skynet/archive/2010/10/30/1865267.html转载下:
2013-08-02 11:00:15 505
转载 【转载】解读USB-IF电池充电规范
最近学电源管理驱动这一步分,对于电池充电规范不太理解,转载下来自己看http://www.eechina.com/thread-4943-1-1.html电池充电规范 原有USB2.0规范并没有考虑到使用USB接口为便携式设备的电池进行充电的需求,而这样的需求却越来越多。BC规范要解决的就是这个问题,符合规范的设备和系统即向下兼容USB2.0标准,又针对充电做出了特别
2013-07-24 17:02:32 1640
原创 linux驱动学习心得--以I2C做实例
一、概述在设备驱动模型中,需要关心总线、设备和驱动这3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;同样,系统每注册一个驱动的时候,会寻找匹配的设备,而匹配由总线完成。注册设备与驱动不分先后顺序。对于没有总线得设备,需要一种虚拟的总线,称为platform总线,相应的设备称为platform_device,而驱动成为platfo
2013-07-24 16:58:24 1100
原创 堆和栈得区别--向WXP学习
堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵
2013-07-18 09:22:52 713
原创 在Aboot中添加i2c使用得方法二
//在 lk/platform/msm8226/include/platform/aboot.h 中添加 判断 判断pad与pad链接得引脚定义 #define P03_PLUG_IN 15 //GPIO表中查询 //在 lk/platform/msm8226/include/platform/iomap.h
2013-07-15 13:23:41 1507
原创 在boot中添加i2c使用得方法
//在 lk/platform/msm8226/include/platform/aboot.h 中添加 判断 判断pad与pad链接得引脚定义 #define P03_PLUG_IN 15 //GPIO表中查询 //在 lk/platform/msm8226/include/platform/iomap.h
2013-07-15 13:22:26 1776
翻译 英语学习笔记每日更新--8-14
最近在看到一张图片 很好 7000多单词涵盖了,每天学习一点 提高自己英语1. Typical of the grassland dwellers of the continent is the American antelope,or called pronghorn美洲羚羊 或称叉角铃 是该大陆典型得草原动物 dweller ['dwelə] 居民;居住者2.Of
2013-07-15 13:18:45 975
转载 【转载】GIT服务器使用手册说明
最近使用GIT服务较多 很烦索, 学习了下面博客得知识blog.csdn.net/zhengmeifu/article/details/6124588对它进行了修改 方便自己查阅Git 是什么非常简单地说,Git 是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问。所谓版本控制系统(VersionControl Sys
2013-07-10 16:43:53 741
原创 DEVICE_ATTR中权限位分析以及实例
在内核中, sysfs 属性一般是由 __ATTR 系列的宏来声明的,如对设备的使用 DEVICE_ATTR ,对总线使用 BUS_ATTR ,对驱动使用 DRIVER_ATTR ,对类别(class)使用 CLASS_ATTR,这四个高级的宏来自于 , 都是以更低层的来自 中的 __ATTR/__ATRR_RO 宏实现。在adb shell 终端查看到接口,当我们将数据
2013-07-10 16:21:38 2152
原创 Suspend&Resume流程
最近对于suspend和resume中得电源管理用到较多,对于suepend过程进行了下总结看下主流程如下 方便自己以后再找具体看main.c(kernel/power);上层通过属性节点写命令,最终会调到此文件中的state_store函数。state_store(){ request_suspend_state();}request_suspend_state()
2013-07-10 16:08:49 1003
原创 让CPU从睡眠中醒来得方法--enable_irp_wake
低功耗模式实现所有驱动的supend和resume函数.注册一个中断唤醒源,一般是GPIO,RTC中断 .然后调用echo mem > state将系统挂起到内存中,这时候SDRAM在进行self-refresh的动作.基本电源的消耗在这里了目前2.6.kernel已经作好只需要在每个驱动里按照接口函数suspend(...),和resume()将这个驱动的suspend 和resum
2013-07-10 15:35:39 1744
原创 Android ADB 命令
ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.先说安装方法, 电脑上需要安装客户端. 客户端包含在sdk里. 设备上不需要安装, 只需要在手机上打开选项settings-applications-development-USBdebugging.对于Mac和Linux用户, 下载好的sdk解压后, 可以放~或者任意目录. 然后
2013-07-09 16:01:25 477
转载 【转载】使用 /proc 文件系统来访问 Linux 内核的内容
简介: /proc 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux® 内核空间和用户空间之间进行通信。在 /proc 文件系统中,我们可以将对虚拟文件的读写作为与内核中实体进行通信的一种手段,但是与普通文件不同的是,这些虚拟文件的内容都是动态创建的。本文对 /proc 虚拟文件系统进行了介绍,并展示了它的用法。最初开发 /proc 文件系统是为了提供有关系统中进程的信息。
2013-07-09 15:56:03 497
原创 使用文章记录地址
http://fpcfjf.blog.163.com/blog/static/55469793201311782732272/?suggestedreading&wumiiUSB_otg 驱动分析http://blog.csdn.net/ling1874/article/details/5758883usb——otg驱动代码分析http://www.embe
2013-07-02 15:43:56 433
原创 USB_OTG学习笔记
1. 概要OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,为连接时候的USBHost,A-Device始终为总线提供电力,ID悬空被称作为B-Device,为连接时候的USB Device,设备的USBHost/USB Device角色可以通过HNP切换。OTG设备连接时不能跨越USB Hub,如果跨越USB Hub则失去HNP功能。
2013-07-02 15:41:48 774
原创 工作队列使用方法(2.6.20)
工作队列(work queue)是Linux kernel中将工作推后执行的一种机制。这种机制和BH或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行,因此工作队列的优势就在于它允许重新调度甚至睡眠。一、用到得函数如下:INIT_WORK(_work, _func, _data);int schedule_work(struct work_struct *wo
2013-06-28 14:52:55 638
原创 Linux设备驱动中得 DTS文件加载过程
1. 在\kernel\of\fdt.c 中有如下初始化函数 注释上:展开设备树,创建device_nodes到全局变量allnodes中void __init unflatten_device_tree(void){ __unflatten_device_tree(initial_boot_params, &allnodes, ear
2013-06-27 15:27:41 6394
原创 共享中断 IRQF_SHARED 使用方法
在board-8064.c中寻找 sis_i2c_info如下:static struct i2c_board_info sis_i2c_info[] __initdata = { { I2C_BOARD_INFO(SIS_I2C_NAME, SIS_SLAVE_ADDR), .platform_data = &sis_pdata,
2013-06-27 15:25:09 18351
原创 bootloader中使用2C功能实现
包含需要修改及用到得子函数内容//在 lk/platform/msm8226/include/platform/aboot.h 中添加 判断 判断pad与pad链接得引脚定义 #define P03_PLUG_IN 15 //GPIO表中查询 //在 lk/platfo
2013-06-27 15:20:30 1992
原创 【USB设备】AC充电驱动调用梳理
1、插上电源--触发中断调用microP_work() { 进入 已经链接 if( is_Mode_APROM()) { if(IsP01ACUSBInOut()) { micropSendNotify(P01_AC_USB_IN); AX_MicroP_get_USBDetectStatu
2013-06-27 15:18:28 790
原创 Linux下得中断处理--第一个中断程序
中断程序一般会包含在某个设备的驱动程序中,因此,接下来的程序本质上还是一个内核模块。---->内核模块加载函数。 static int __init myirq_init(){ printk("Module is working..\n");
2013-06-24 17:34:41 629
原创 EXPORT_SYMBOL_GP用法总结
类似标题得EXPORT_SYMBOL_GPL富豪为linux得模块导出符号Linux内核头文件提供了一个方便的方法用来管理符号的对模块外部的可见性,因此减少了命名空间的污染(命名空间的名称可能会与内核其他地方定义的名称冲突),并且适当信息隐藏。 如果你的模块需要输出符号给其他模块使用,应当使用下面的宏定义:EXPORT_SYMBOL(name);EXPORT_SYM
2013-06-18 16:18:12 777
原创 Linux设备驱动总结
最近在使用linux底层设备驱动,整理了以下总结要点:Linux设备驱动程序是一个内核模块,可以随时添加到内核和随时从内核中删除。很自然,在模块被他人使用时无法删除,因而存在一个模块被使用的计数器。驱动层界面应该有如下根本的东西:1、OS系统设备链表,并有挂入函数能够将一个新设备及其驱动程序挂入这个链表。现在大部分使用DTS。2、从OS往下看,设备必定会提供一套读写接口。drive
2013-06-18 16:09:42 610
原创 小技巧-1-取未知字符串长度中数字
未知长度buf中存在两个数字和空格 取出两个数字赋值给 ID1 ID2 // 取出P if (!(p = strsep(&buf, " ")) || !*p) { printk(KERN_INFO "err1"); return -1;
2013-05-31 17:42:20 657
原创 Linux内核字符串转换函数
Linux中用到较多得字符串转换函数主要有:simple_strtoul之类这些字符串转换函数保存在 库文件 lib/vsprintf.cunsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base) unsigned long simple_strtoul(const
2013-05-31 16:40:01 882
原创 Linux DTS配置总结
1、在配置设备树得过程中碰到了比较多得问题,已I2C为例,在实例文档中介绍得:Qualcomm I2C controllerRequired properties: - reg : Offset and length of the register region(s) for the device For GSBI based controller, GSBI an
2013-05-31 15:31:31 10884
原创 关于DEVICE_ATTR使用方法的总结
在网上看了好多关于DEVICE_ATTR得介绍未能理清,还是自己实际动手操作下才有效果,最近在设计I2C测试过程中用到了这个,因此进行了实验。实验环境:操作系统ubuntu12.04内容:i2c_core i2c_test1.文件i2c_core.c 定义*i2c_dev_attrs 指针 包含 dev_attr_test.attr,static struct a
2013-05-31 14:59:57 7004
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人