<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kobbee9的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/kobbee9</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kobbee9]]></copyright><item><title><![CDATA[wifi---wpa_supplicant相关的博客]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7980291</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7980291</guid><author>kobbee9</author><pubDate>Fri, 14 Sep 2012 18:29:21 +0800</pubDate><description><![CDATA[http://blog.chinaunix.net/uid-20514606-id-3260320.html
http://blog.youkuaiyun.com/gjsisi/article/details/7671182

http://blog.youkuaiyun.com/zoe6553/article/details/6640330



http://w1.fi/wpa_supplicant/w]]></description><category></category></item><item><title><![CDATA[蓝牙通过obex发送文件的思路]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7839601</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7839601</guid><author>kobbee9</author><pubDate>Tue, 07 Aug 2012 15:57:26 +0800</pubDate><description><![CDATA[1、实现原理
1、1OBEX 协议说明
在层次结构的蓝牙协议栈中，对象交换协议OBEX（Object Exchange）是一种面向应用的会话层协议(图1)，它运行于蓝牙协议栈的顶部，支持文件传输（File Transfer），对象“推”操作（Object Push Profile），同步（Synchronization）等多种应用，提供了设备间简单易行的对象交换手段。可交换的对象可是文件、图像]]></description><category></category></item><item><title><![CDATA[蓝牙开发的一些网站和博客文章地址]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7824675</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7824675</guid><author>kobbee9</author><pubDate>Thu, 02 Aug 2012 21:13:14 +0800</pubDate><description><![CDATA[http://www.bluez.org/

http://www.cnblogs.com/leaven/category/227407.html
https://www.bluetooth.org/Building/HowTechnologyWorks/ProfilesAndProtocols/OBEX.htm



http://www.eefocus.com/majianhui]]></description><category></category></item><item><title><![CDATA[Linux下Bluez的编程实现]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7751372</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7751372</guid><author>kobbee9</author><pubDate>Mon, 16 Jul 2012 14:29:51 +0800</pubDate><description><![CDATA[Linux下Bluez的编程实现
1、蓝牙的各个协议栈的简介.......................................................................................
2
1.1、蓝牙技术.....................................................................]]></description><category></category></item><item><title><![CDATA[Bluetooth编程（二） BlueZ简介]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7744943</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7744943</guid><author>kobbee9</author><pubDate>Fri, 13 Jul 2012 17:51:24 +0800</pubDate><description><![CDATA[Linux下Bluetooth协议栈的实现. Linux下开放的蓝牙协议栈主要包括IBM公司的BlueDrekar，Nokia公司的Affix, Axis公司的OpenBT和官方协议栈BlueZ。我们主要面对Bluez来探讨。

 

BlueZ基础代码均是由Maxim Krasnyansky完成的。包括：HCI，L2CAP，RFCOMM和基本socket的实现。他就职于Qualcomm(]]></description><category></category></item><item><title><![CDATA[Bluetooth编程（一） 协议栈概述]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7744937</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7744937</guid><author>kobbee9</author><pubDate>Fri, 13 Jul 2012 17:50:20 +0800</pubDate><description><![CDATA[一：Bluetooth基本概念：

 

Bluetooth是爱立信、诺基亚、东芝、IBM和Intel 5家公司在1998年联合推出的一项无线网络技术。其宗旨是提供一种短距离、低成本的无线传输应用技术。在行业协会筹备阶段,需要一个极具有表现力的名字来命名这项高新技术。行业组织人员，在经过一夜关于欧洲历史和未来无限技术发展的讨论后，有些人认为用Blatand国王的名字命名再合适不过了。Bla]]></description><category></category></item><item><title><![CDATA[Android Obex 规范]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7723290</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7723290</guid><author>kobbee9</author><pubDate>Fri, 06 Jul 2012 20:00:45 +0800</pubDate><description><![CDATA[Android Bluetooth Introduction
Agenda
● Android Bluetooth architecture
● Related source code
● Init Bluetooth
● Connect with other BT devices (dbus)
● RFCOMM
● OBEX (socket)

Android architec]]></description><category></category></item><item><title><![CDATA[DBUS基础知识]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7648510</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7648510</guid><author>kobbee9</author><pubDate>Sat, 09 Jun 2012 17:12:33 +0800</pubDate><description><![CDATA[DBUS基础知识

1.  进程间使用D-Bus通信 

D-Bus是一种高级的进程间通信机制，它由freedesktop.org项目提供，使用GPL许可证发行。D-Bus最主要的用途是在Linux桌面环境为进程提供通信，同时能将Linux桌面环境和Linux内核事件作为消息传递到进程。D-Bus的主要概率为总线，注册后的进程可通过总线接收或传递消息，进程也可注册后等待内核事件响应，例如等]]></description><category></category></item><item><title><![CDATA[static的使用]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7482332</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7482332</guid><author>kobbee9</author><pubDate>Fri, 20 Apr 2012 17:39:32 +0800</pubDate><description><![CDATA[static的使用：用来控制变量的存储方式和可见性
 




函数内部定义的变量，在程序执行到它的定义处时，编译器为它在栈上分配空间，函数在栈上分配的空间在此函数执行结束时会释放掉，这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时，如何实现？ 最容易想到的方法是定义一个全局的变量，但定义为一个全局变量有许多缺点，最明显的缺点是破坏了此变量的访问范围（使得在此函数中定]]></description><category></category></item><item><title><![CDATA[C++标准转换运算符const_cast]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7477672</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7477672</guid><author>kobbee9</author><pubDate>Thu, 19 Apr 2012 15:09:10 +0800</pubDate><description><![CDATA[C++标准转换运算符const_cast








前面讲了C++继承并扩展C语言的传统类型转换方式，最后留下了一些关于指针和引用上的转换问题，没有做详细地讲述。C++相比于C是一门面向对象的语言，面向对象最大的特点之一就是具有“多态性(Polymorphism)”。

要想很好的使用多态性，就免不了要使用指针和引用，也免不了会碰到转换的问题，所以在这一篇，就把导师讲的]]></description><category></category></item><item><title><![CDATA[C++中的位拷贝和值拷贝]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7448542</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7448542</guid><author>kobbee9</author><pubDate>Wed, 11 Apr 2012 10:40:57 +0800</pubDate><description><![CDATA[C++中的位拷贝和值拷贝


说明我们以String类为例：
首先定义String类，而并不实现其成员函数。


Class String{
public:
    String(const char *ch=NULL);//默认构造函数
    String(const String &str);//拷贝构造函数
   ~String(void);
   String &]]></description><category></category></item><item><title><![CDATA[C/C++中volatile关键字详解]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7445869</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7445869</guid><author>kobbee9</author><pubDate>Tue, 10 Apr 2012 15:56:43 +0800</pubDate><description><![CDATA[C/C++中volatile关键字详解


 1. 为什么用volatile?

    C/C++ 中的 volatile 关键字和 const 对应，用来修饰变量，通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明：


A volatile specifier]]></description><category></category></item><item><title><![CDATA[深层揭密extern "C"]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7445861</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7445861</guid><author>kobbee9</author><pubDate>Tue, 10 Apr 2012 15:54:03 +0800</pubDate><description><![CDATA[深层揭密extern
 "C"


1. 深层揭密extern "C"
    extern "C" 包含双重含义，从字面上即可得到：首先，被它修饰的目标是“extern”的；其次，被它修饰的目标是“C”的。让我们来详细解读这两重含义。
（1）被extern "C"限定的函数或变量是extern 类型的；
    extern 是C/C++语言中表明函数和全局变量作用范围（可见性）的]]></description><category></category></item><item><title><![CDATA[C/C++中static关键字详解]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7445836</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7445836</guid><author>kobbee9</author><pubDate>Tue, 10 Apr 2012 15:50:37 +0800</pubDate><description><![CDATA[C/C++中static关键字详解


    静态变量作用范围在一个文件内，程序开始时分配空间，结束时释放空间，默认初始化为0，使用时可以改变其值。

    静态变量或静态函数只有本文件内的代码才能访问它，它的名字在其它文件中不可见。
用法1：函数内部声明的static变量，可作为对象间的一种通信机制
    如果一局部变量被声明为static，那么将只有唯一的一个静态分配的对象]]></description><category></category></item><item><title><![CDATA[C/C++中作用域详解]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7445826</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7445826</guid><author>kobbee9</author><pubDate>Tue, 10 Apr 2012 15:49:55 +0800</pubDate><description><![CDATA[C/C++中作用域详解


    作用域规则告诉我们一个变量的有效范围，它在哪儿创建，在哪儿销毁（也就是说超出了作用域）。变量的有效作用域从它的定义点开始，到和定义变量之前最邻近的开括号配对的第一个闭括号。也就是说，作用域由变量所在的最近一对括号确定。

(1) 全局变量：

   全局变量是在所有函数体的外部定义的，程序的所在部分（甚至其它文件中的代码）都可以使用。全局变量不受作]]></description><category></category></item><item><title><![CDATA[C/C++中extern关键字详解]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7445817</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7445817</guid><author>kobbee9</author><pubDate>Tue, 10 Apr 2012 15:48:40 +0800</pubDate><description><![CDATA[C/C++中extern关键字详解


1 基本解释：extern可以置于变量或者函数前，以标示变量或者函数的定义在别的文件中，提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。

      也就是说extern有两个作用，第一个,当它与"C"一起连用时，如: extern "C" void fun(int a, int b);则告诉编译器在编译]]></description><category></category></item><item><title><![CDATA[_IO, _IOR, _IOW, _IOWR 宏的用法与解析]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7444473</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7444473</guid><author>kobbee9</author><pubDate>Tue, 10 Apr 2012 11:04:57 +0800</pubDate><description><![CDATA[IOCTL _IO,_IOW,_IOWR  

_IO, _IOR, _IOW, _IOWR 宏的用法与解析




在驱动程序里， ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外，还包含有助于处理的几种相应信息。 cmd的大小为 32位，共分 4 个域：

bit31~bit30 2位为 “区别读写” 区，作用是]]></description><category></category></item><item><title><![CDATA[堆栈及静态数据区]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7443712</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7443712</guid><author>kobbee9</author><pubDate>Tue, 10 Apr 2012 09:02:07 +0800</pubDate><description><![CDATA[堆栈及静态数据区
转载▼





五大内存分区
    在C++中，内存分成5个区，他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
    栈，就是那些由编译器在需要的时候分配，在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。
    堆，就是那些由new分配的内存块，他们的释放编译器不去管，由我们的应用程序去控制，一般一个new就要]]></description><category></category></item><item><title><![CDATA[Workqueue机制的实现]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7433755</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7433755</guid><author>kobbee9</author><pubDate>Fri, 06 Apr 2012 21:10:07 +0800</pubDate><description><![CDATA[Workqueue机制的实现 
 
Workqueue机制中定义了两个重要的数据结构，分析如下：
cpu_workqueue_struct结构。该结构将CPU和内核线程进行了绑定。在创建workqueue的过程中，Linux根据当前系统CPU的个数创建cpu_workqueue_struct。在该结构主要维护了一个任务队列，以及内核线程需要睡眠的等待队列，另外还维护了一个任务上下文，即tas]]></description><category></category></item><item><title><![CDATA[Linux中等待队列的实现]]></title><link>https://blog.youkuaiyun.com/kobbee9/article/details/7433744</link><guid>https://blog.youkuaiyun.com/kobbee9/article/details/7433744</guid><author>kobbee9</author><pubDate>Fri, 06 Apr 2012 21:08:51 +0800</pubDate><description><![CDATA[Linux中等待队列的实现




   在软件开发中任务经常由于某种条件没有得到满足而不得不进入睡眠状态，然后等待条件得到满足的时候再继续运行，进入运行状态。这种需求需要等待队列机制的支持。Linux中提供了等待队列的机制，该机制在内核中应用很广泛。
       在Linux内核中使用等待队列的过程很简单，首先定义一个wait_queue_head，然后如果一个task想等待某种事]]></description><category></category></item></channel></rss>