主题中讨论的其他器件: CC2564
工具/软件:Linux
我们正在目标器件上使用'CC2564MODACMOGMO'模块(基于 ARM 架构的 Linux 内置)。
并按照 wiki 页面"processors.wiki.ti.com/.../Shared_Transport_Driver' "为启用支持
Linux 中的共享传输驱动程序和 btwilink 驱动程序。
下面是我们所做的内核更改。
CONFIG_TI_ST=y
CONFIG_BT_WiLink=y
其他新增内容:
CONFIG_BT=y (支持蓝牙子系统)
BT_BREDR=y (蓝牙经典(BR/EDR)特性)
CONFIG_BT_RFCOMM=y (支持 RFCOMM 协议)
CONFIG_BT_RFCOMM_TTY=y (支持 RFCOMM TTY)
CONFIG_BT_BNEP=y (支持 BNEP 协议)
CONFIG_BT_BNEP_MC_FILTER=y (支持多播滤波器)
CONFIG_BT_BNEP_PROTO_FILTER=y (支持协议滤波器)
CONFIG_BT_HIDD=y (支持 HIDP 协议)
BT_LE_=y (低功耗蓝牙(LE)特性)
我们还在上面的链接中进行了所需的“平台更改”。
然后下载了服务包"cc256xb_bt_sp_v1.6.zip"并复制了
将'initscripts-TIInit_6.7.16_ble_add-on.bts'添加到目标器件的'/lib/firmware /'目录中、
并将 BTS 文件重命名为"TIInit_6.7.16.bTS"。
但是、当器件启动时、我们会收到以下错误消息。
(STK):ldisc 安装超时
(STK):ldisc_install = 0
(STK):等待卸载 ldisc 时超时
(STK):ldisc_install = 1.
(STK):ldisc 安装超时
(STK):ldisc_install = 0
(STK):等待卸载 ldisc 时超时
(STK):ldisc_install=1 (stk):ldisc 安装超时
(STK):ldisc_install = 0
(STK):等待卸载 ldisc 时超时
(STK):ldisc_install=1 (stk):ldisc 安装超时
(STK):ldisc_install=0 (stk):等待 ldisc 卸载时超时
(STK):ldisc_install=1 (stk):ldisc 安装超时
(STK):ldisc_install=0 (stk):等待 ldisc 卸载时超时
(STK):ldisc_install=1 (stk):ldisc 安装超时
(STK):ldisc_install=0 (stk):等待 ldisc 卸载时超时
蓝牙:ST_register 失败-22
现在、如果 发出命令"hciconfig hci0 up"、则输出将是、
(STC): ChnL_id list empty :4.
(STK):st_km_start (stk):ldisc_install = 1.
(STK):ldisc installation timeout (stk):ldisc_install = 0
(STK):等待卸载 ldisc 时超时(stk):ldisc_install = 1.
(STK):ldisc installation timeout (stk):ldisc_install = 0
(STK):等待卸载 ldisc 时超时(stk):ldisc_install = 1.
(STK):ldisc installation timeout (stk):ldisc_install = 0
(STK):等待卸载 ldisc 时超时(stk):ldisc_install = 1.
(STK):ldisc installation timeout (stk):ldisc_install = 0
(STK):等待卸载 ldisc 时超时(stk):ldisc_install = 1.
(STK):ldisc installation timeout (stk):ldisc_install = 0
(STK):等待卸载 ldisc 时超时(stk):ldisc_install = 1.
(STK):ldisc installation timeout (stk):ldisc_install = 0
(STK):等待 ldisc 取消安装时超时蓝牙:ST_register failed -22
无法初始化设备 hci0:输入/输出错误(5)
如果我们将 btwilink 驱动程序构建为模块并使用 modprobe 加载它、则会出现相同的错误消息。
我们还使用链接git.ti.com/.../initscripts'上的固件文件更改了固件文件
TIInit_6.7.16.bts 并复制到目标器件的"/lib/firmware "目录、然后驱动程序也会生成相同的错误消息。
我们还尝试了另一种方法、即禁用"btwilink"驱动程序支持并使用普通 UART 内核模块、
然后、我们会收到以下错误消息。
内核更改:
已启用:
CONFIG_BT_HCIUART=y (HCI UART 驱动程序)
CONFIG_BT_HAIUART_H4=y (支持 UART (H4)协议)
CONFIG_BT_HCEUART_BCSP=y (支持 BCSP 协议)
CONFIG_BT_HCEUART_LL=y (支持 HFILL 协议)
已禁用:
CONFIG_TI_ST
CONFIG_BT_WiLink
现在复制了固件文件,在启动后,我们使用了以下命令来引入'hci0'接口,
命令: bluetoothd &
输出:
命令:hciattach -n -s 115200 /dev/ttySC2 Texas 115200流&
输出:
找到了德州仪器的芯片!
固件文件:/lib/firmware/TIInit_6.7.16.bts
已加载 BTS 脚本版本1
器件设置完成
命令:hciconfig hci0 up
输出:
命令:hciconfig hci0 piscan
输出:
命令:hciconfig -a
输出:
hci0: 类型:BR/EDR 总线:UART
BD 地址:CC:78:AB:3F:45:87 ACL MTU:1021:4 SCO MTU:180:4
运行 PSCAN ISCAN
RX 字节:1507 ACL:0 SCO:0事件:48错误:0
TX 字节:1063 ACL:0 SCO:0命令:48错误:0
特性:0xFF 0xFE 0x2D 0xFE 0xdb 0xff 0x7B 0x87
数据包类型:Dm1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
链接策略:RSWITCH 保持监听
链接模式:从器件接受
名称:'BuildRoot-0'
类:0x400100
服务类:电话
设备类:计算机,未分类
HCI 版本:4.0 (0x6) 修订版本:0x0
LMP 版本:4.0 (0x6) 子版本:0x1b90
制造商:Texas Instruments Inc.(13)
命令:hcitool 扫描
输出:
在这里、hcitool 扫描会检测周围的设备、但在大多数情况下、它不会检测周围的任何设备、
即不产生输出、器件"buildroot-0"也无法检测到其他器件。
如果我们更改从 URLgit.ti.com/.../initscripts'下载的固件文件。
命令'hciattach -n -s 115200 /dev/ttySC2 Texas 115200 flow &'将产生以下输出。
输出:
找到了德州仪器的芯片!
固件文件:/lib/firmware/TIInit_6.7.16.bts
已加载 BTS 脚本版本1
TExaS:将波特率更改为3000000、将流控制更改为1
初始化超时。
Deepak