export PKG_CONFIG_LIBDIR=/usr/arm-xscale-linux-gnu/lib/pkgconfig
pkg-config --list-all
<-- 先确认交叉编译环境下,bluez,dbus等是否已经安装.
确认后接着就可以交叉编译hcidump-1.42了
./configure --host=arm-xscale-linux-gnu --prefix=/usr/arm-xscale-linux-gnu
make
make install
交叉编译成功后把PC上整个目录 /usr/arm-xscale-linux-gnu/sbin/hcidump 拷贝到 arm 板上的相同路径下.
在板子上先初始化bluetooth device
#insmod bluetooth.ko
#insmod hci_uart.ko
#insmod l2cap.ko
#insdmo rfcomm.ko
#reset_set_bluetooth_gpio <-- 这是我们板子上蓝牙设备工作的开关,同时还控制着一盏蓝色led指示灯.
#bccmd -t bcsp -d /dev/ttyS1 psload -r ./blue_core4.psr <-- 初始化pskey
#hciattach -s 921600 ttyS1 bcsp 921600
#hciconfig hci0 reset
接着运行
#hcidump
在另一个控制台下运行测试程序
obex_test XX:XX:XX:XX:XX:XX
运行起来可以看hcidump所在的控制台,打印出了HCI 层的log
>HCI Event: Command Status (0x0f) plen 4
>HCI Event: Connect Complete (0x03) plen 11
...
参考Bluetooth Core V2.1 + EDR.pdf 接可以知道每个Event的内容了.