SMP865X广告机之蓝牙(bluetooth)

作者 QQ: 35327864,msn: fgwf1@hotmail.com,mail: agooou@gmail.com

零,bluetooth概念及原理,请参考http://blog.sina.com.cn/s/blog_602f87700100e902.html,这是一篇极好的文章。
一,内核bluetooth驱动的支持
    我是基于smp865x-sdk3.8.0开发的,其中的linux内核为2.6.22.19-27。配置smp865x开发环境的步骤就略了。本人用的是市面上普通的USB dongle蓝牙模块。
    1,重新配置linux内核
        make menuconfig
        进入Networking support -> Bluetooth subsystem support,选择L2CAP protocol support,RFCOMM protocol support,
        接着,进入Bluetooth device drivers,选择HCI USB driver。
        本人的蓝牙只为了进行简单数据通讯,不作为鼠标,音频等使用,故而仅选择如上选项,并都作为built-in编译进内核。
    2,配置usb驱动
        进入Device Drivers -> USB support,选择SMP86xx EHCI HCD (USB 2.0) support,这是smp86xx平台上专用于usb2.0的驱动。可以build-in,也可以以模块方式编译,但在运行时需要modprobe。
        同时,我也选了EHCI HCD (USB 2.0) support,不清楚这个有没有用。
    3,编译
        host> make all  
        host> make modules
        host> make modules_install   // put them in rootfs
        host> make all zbimage-linux-xload
        最后生成了zbimage-linux-xload 在 ./arch/mips/boot/下。这就是rootfs固件了,将它烧写到sata上进行测试或直接烧进nand完成固件升级。
    4,启动系统,将需要的驱动加载,插入usb蓝牙,如果一切正常则能发现设备。

二,bluez程序库移植,包含hcitool,hciconfig,rfcomm工具的移植及使用
    上一步,我们将bluetooth的支持编译到了内核中。此时,我们还无法使用蓝牙,真正要操作蓝牙,需要编写应用程序支持。bluez程序库就是提供给我们编写蓝牙程序的基本库。该库负责进行系统调用,用以驱动硬件。我们只需要调用bluez的API即可。下载地址:git://git.kernel.org/pub/scm/bluetooth/bluez.git
    1,bluetooth库
        bluetooth库即bluez/lib下内容,只有3个c文件,就这三个c文件和一些头文件构成了bluetooth库。因为这几个文件并不依赖外部,所以,很好移植,不详述。
    2,编译tools
        tools比较多,我选择了hcitool,hciconfig,rfcomm这三个进行编译。其中,有parser.y,lexer.l。需要使用yacc和lex进行预处理。我直接在x86下configure并编译,直接生成了parser.c,parser.h和lexer.c。
        记得要把config.h也拷过去用。
    3,编译过程也很简单,不述。

三,基于hci层协议的程序编写

四,基于L2CAP层协议的程序编写
五,基于rfcomm层协议的程序编写

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值