WM_CH 发表于 2018-8-15 17:49:56

救命!linux平台的蓝牙驱动怎么搞?AP6212的

刚来新公司,拿到个小任务,这边用海思平台,要加载一下AP6212的蓝牙固件,然后实现手机和海思开发板进行通信。
这,讲真,我刚学完韦东山讲的linux驱动视频,这个完全超纲了。。。完全不会,一脸懵逼。。。3天了。。。

从网上搜,包括自己看文档,大致会分为以下几个步骤:
1.配置内核,让其支持蓝牙(AP6212是串口接口蓝牙),并在内核启动后,加载AP6212的固件,固件要事先放到开发板的文件系统中。
2.可能需要AP6212的驱动程序(找不到现成的),打开AP6212芯片的电源开关,就是操作GPIO。
然后使用驱动程序,完成Soc的串口和AP6212进行通信,这个是HCI部分?我不太确定。
3.此后估计开发板需要移植bluez协议栈,使用蓝牙工具hcitool或gatttool来实现一个蓝牙串口。

这是我能想到的所有的步骤了,具体操作网上零零碎碎的也能搜得到,只能瞎试。。。

在此特地问一下大家,我这个任务要完成的步骤是什么,怎么做。
原谅我刚从单片机转过来,驱动工作经验太菜了,,,


大哥们求帮忙





WM_CH 发表于 2018-8-15 17:53:43

我另一个同事完成了AP6212的wifi驱动部分,
让我参考他写的文档,完成蓝牙驱动部分。

天荒 发表于 2018-8-15 17:56:12

没有做过哈

saddam911 发表于 2018-8-15 18:04:55

楼主厉害啊 !
从单片机升级到Linux了 还是软硬都搞不错
一直想入门Linux驱动,一直也没入得了门

我目前在做一个Android手持设备的项目,用的是瑞芯微的RK3288,买了Firefly的开发板,我看这个开发板上用的就是AP6212,这个Firefly的开发板开源做的挺好,原理图 源代码什么的都有,下面是网址你去看看吧,不知道对你有没有帮助。
另外,现在新版本的Linux驱动都是设备树了吧,我看我们公司搞软件的就是配置一些东西驱动就好了,好像比以前好弄吧?韦东山的视频我也看过,他讲的应该还不是设备树,不过以前的设备驱动架构搞明白了现在的设备树肯定能明白,应该是更简单了吧。
http://www.t-firefly.com/doc/download/16.html

chenchaoting 发表于 2018-8-15 18:09:18

讲linux的很多,真正告诉你做个应用,做个驱动的几乎没有

wye11083 发表于 2018-8-15 18:25:21

chenchaoting 发表于 2018-8-15 18:09
讲linux的很多,真正告诉你做个应用,做个驱动的几乎没有

nnd做驱动得会内核,这些视频的有几个真会的

haffman1 发表于 2018-8-15 18:44:23

看你的描述这小公司心得有多大:)

yeahmen 发表于 2018-8-15 19:02:14

这真有些超纲,熬过去,要花些时间

亲爱的混蛋 发表于 2018-8-15 19:56:37

我那开发版,几年了,就会刷固件。。。

yick 发表于 2018-8-15 21:26:03

现在linux很少有操作GPIO的了,都是改设备树。

shuiluo2 发表于 2018-8-16 08:18:50

还是玩单片机爽,哈哈

cloudxxcloud 发表于 2018-8-16 08:41:06

去AP6212官网找找,找找类似的,移植过来

WM_CH 发表于 2018-8-16 09:02:22

cloudxxcloud 发表于 2018-8-16 08:41
去AP6212官网找找,找找类似的,移植过来

谢谢,我去看看

WM_CH 发表于 2018-8-16 09:05:55

haffman1 发表于 2018-8-15 18:44
看你的描述这小公司心得有多大:)

刚来公司,也不是紧急的东西,就是做做看看我水平呗
明显,我可能被开除{:sad:}

WM_CH 发表于 2018-8-16 09:07:02

saddam911 发表于 2018-8-15 18:04
楼主厉害啊 !
从单片机升级到Linux了 还是软硬都搞不错
一直想入门Linux驱动,一直也没入得了门


谢谢,我去瑞芯微官网看看

WM_CH 发表于 2018-8-16 09:14:12

wye11083 发表于 2018-8-15 18:25
nnd做驱动得会内核,这些视频的有几个真会的

还行,学完韦东山视频,我觉得很大程度上是知识的分享方法错了。驱动技术本身并不难。
很多人喊驱动难,内核难,让新手望而却步。这样不好

728196 发表于 2018-8-16 09:18:56

要原厂驱动 和 移植文档,这个让boss想办法。
不要自己瞎折腾。

cqfeiyu 发表于 2018-8-16 09:39:49

AP6212移植

cqfeiyu 发表于 2018-8-16 09:50:15

arm linux串口蓝牙工具移植及使用

WM_CH 发表于 2018-8-16 09:50:20

728196 发表于 2018-8-16 09:18
要原厂驱动 和 移植文档,这个让boss想办法。
不要自己瞎折腾。

没有文档,原来的同事也是自己从网上各种搜索搞的WiFi驱动。
我们这边应该和海思官方没有任何沟通,SDK都是朋友之间要到的。

mikewang011 发表于 2018-8-16 10:50:31

我之前是调试 Android bludroid的, 芯片是bcm43455 大概顺序
1.调整设备树,调试 上电
2. 调整设备树, 调试 rfkill, wakeup 管脚
3.调整设备树, 调试串口
4. 按照实际情况配置 bludroid 配置文件(etc/bluetooth/bt_vendor.conf),里面配置了 协议栈使用哪个串口通信,固件位置,名称等信息

spcm 发表于 2018-8-16 11:13:09

公司有两种板子都用到这种模块ap6255,imx6的很快搞定了,stm32的还没动静。没有技术支持很难。

zhonghua_li 发表于 2018-8-16 11:37:11

只知其然,而不知其所以然的结果就是这样, 没有别人的例子,就没法自己搞。

hu9977 发表于 2018-8-16 11:58:47

楼主是怎样从单片机的工作换到Linux的?我现在也在搞Linux

haffman1 发表于 2018-8-16 12:37:53

WM_CH 发表于 2018-8-16 09:05
刚来公司,也不是紧急的东西,就是做做看看我水平呗
明显,我可能被开除...

小公司里玩linux太累了除非有人指导
另外linux并不是像你说的那么简单的
网上那种教程纯粹是表面东西没多大意义

WM_CH 发表于 2018-8-16 13:27:45

haffman1 发表于 2018-8-16 12:37
小公司里玩linux太累了除非有人指导
另外linux并不是像你说的那么简单的
网上那种教程纯粹是表面东西 ...

哦哦,你是怎么学会的啊,教一下我啊大哥

WM_CH 发表于 2018-8-16 13:28:43

spcm 发表于 2018-8-16 11:13
公司有两种板子都用到这种模块ap6255,imx6的很快搞定了,stm32的还没动静。没有技术支持很难。 ...

imx6怎么搞的啊,方便分享一下吗{:lol:}

WM_CH 发表于 2018-8-16 13:29:15

hu9977 发表于 2018-8-16 11:58
楼主是怎样从单片机的工作换到Linux的?我现在也在搞Linux

我看的韦东山视频   

WM_CH 发表于 2018-8-16 13:30:17

mikewang011 发表于 2018-8-16 10:50
我之前是调试 Android bludroid的, 芯片是bcm43455 大概顺序
1.调整设备树,调试 上电
2. 调整设备树,...

嗯,我在看一篇网上的文章,跟你这个差不多过程,谢谢。
https://blog.csdn.net/gatieme/article/details/48751743

htjgdw 发表于 2018-8-16 16:51:51

看LZ积分应该是技术大牛级别了。。。

WM_CH 发表于 2018-8-16 17:40:42

htjgdw 发表于 2018-8-16 16:51
看LZ积分应该是技术大牛级别了。。。

大水牛{:lol:}         

spcm 发表于 2018-8-17 07:12:22

WM_CH 发表于 2018-8-16 13:28
imx6怎么搞的啊,方便分享一下吗

买周立功一块开发板用的AP6xx,从上面改的,代码分享不了不好意思

sup888 发表于 2018-8-17 09:27:05

WM_CH 发表于 2018-8-16 09:14
还行,学完韦东山视频,我觉得很大程度上是知识的分享方法错了。驱动技术本身并不难。
很多人喊驱动难, ...

看了几期,就这么有自信了,我也去看看{:lol:}

WM_CH 发表于 2018-8-17 15:58:09

spcm 发表于 2018-8-17 07:12
买周立功一块开发板用的AP6xx,从上面改的,代码分享不了不好意思

{:3_49:}            

meirenai 发表于 2018-8-17 16:02:46

小民可以去问问 不再犹豫 啊。

meirenai 发表于 2018-8-17 16:09:21

我最近也在用这个 正基的WIFI模块,不过是用 STM32 来驱动。

WM_CH 发表于 2018-8-17 16:38:02

meirenai 发表于 2018-8-17 16:09
我最近也在用这个 正基的WIFI模块,不过是用 STM32 来驱动。

谢谢老铁救场{:lol:}      

34480016 发表于 2018-8-17 19:58:03

https://debugdump.com/t_245.html
https://debugdump.com/t_1133.html

linux驱动 蓝牙post机的ap6210b

WM_CH 发表于 2018-8-18 14:14:00

34480016 发表于 2018-8-17 19:58
https://debugdump.com/t_245.html
https://debugdump.com/t_1133.html



谢谢大哥,看了您的帖子,很实用,谢谢

visa198 发表于 2018-8-31 13:39:16

大牛现在移植的怎么样了,出来分享一下

mangocity 发表于 2018-8-31 13:49:02

可以直接找正基要驱动代码和移植手册。

WM_CH 发表于 2018-8-31 18:10:04

mangocity 发表于 2018-8-31 13:49
可以直接找正基要驱动代码和移植手册。

有联系方式吗{:lol:} 代理的也可以

higeo 发表于 2018-8-31 18:31:22

楼主不会是培训机构出来的吧,出来简历就是linux驱动开发三年经验,哈哈

WM_CH 发表于 2018-9-2 11:43:44

higeo 发表于 2018-8-31 18:31
楼主不会是培训机构出来的吧,出来简历就是linux驱动开发三年经验,哈哈

哈哈哈哈嗝,很明显不是,培训机构出来的估计会这个

WM_CH 发表于 2018-9-26 15:29:03

visa198 发表于 2018-8-31 13:39
大牛现在移植的怎么样了,出来分享一下

看40楼的两个帖子,40楼这位大神估计就是晕哥。
整体思想就是通过串口,使用HCI命令,把固件传给AP6212就可以了。
不同的目标ARM板需要自行讲引脚功能配置为UART工作模式。

我这边主要就是把两个流控引脚全部拉低了(因为硬件设计板子画错了)也是受晕哥帖子的启发。
CTS/RTS全部拉低后,再使用github上的一个代码,就可以加载固件到AP6212里面了。
github地址:
https://github.com/rafaello7/nanopi-bluetooth
回来把这个代码交叉编译成一个目标ARM板的程序,再随便在GitHub上找个固件,名字叫bcm43438a1.hcd(一开始以为是bcm43438a0.hcd)

目标ARM板上单后,执行:
./ap6212hciattach /dev/ttyAMA1 1000000
即可加载固件成功。
输出的日志:
bcm43xx_init
reset retry
Set Controller UART speed to 1000000 bit/s
Flash firmware /lib/firmware/brcm/bcm43438a1.hcd
Set BDADDR UART: any
Incorrect bdaddr
Set Controller UART speed to 1000000 bit/s
Device setup complete


执行
hciconfig hci0 up 打开蓝牙
hcitool scan 即可进行扫描
hcitool和hciconfig这些工具都是我移植的BlueZ






dxgdsx 发表于 2018-9-26 15:36:56

看到AP6212,瞬间有种亲切感。之前买过一个国产寨板EzPad 5S,里面用的就是AP6212蓝牙wifi二合一模块,预装windows10系统。
自己改装成linux,但是AP6212模块无法工作,那段时间各种搜资料,自己编译内核,折腾了两个月,还是没搞定,直接改回windows10系统了。
当然我那个是卖的平板电脑,不是开发用的开发板,所以搞起来有点抓瞎。

WM_CH 发表于 2018-9-26 15:38:39

编译内核、移植blueZ的部分,我都是从网上找的,一大堆,找一下即可。
arm linux串口蓝牙工具移植及使用
ARM平台上蓝牙协议栈Bluez的移植使用和配置
BlueZ交叉编译
Ubuntu系统(bluez)蓝牙调试






WM_CH 发表于 2018-9-26 15:40:43

dxgdsx 发表于 2018-9-26 15:36
看到AP6212,瞬间有种亲切感。之前买过一个国产寨板EzPad 5S,里面用的就是AP6212蓝牙wifi二合一模块,预装 ...

嗯,这玩意不仅要加载固件,还得移植一堆协议栈上去。
我就不太会弄,这个帖子只是解决了加载蓝牙固件的问题。{:lol:}




von 发表于 2018-12-3 17:26:49

我的运行ap6212hciattach会报错,请问是怎么回事呢
./ap6212hciattach /dev/ttyS4 115200
./ap6212hciattach: line 1: syntax error: unexpected end of file

孤独的猫 发表于 2018-12-3 17:37:58

最终搞好了吗?

jxltom 发表于 2020-6-14 20:28:25

谷歌AOSP下AP系列已经有非常成熟的驱动了,并且可以通过DTS配置

fengyunyu 发表于 2020-9-4 13:37:04

LZ现在成大牛了么?
页: [1]
查看完整版本: 救命!linux平台的蓝牙驱动怎么搞?AP6212的