移植88W8987A驱动和MFG程序到ARM平台

把88W8987A的驱动和MFG软件移植到明远智睿的MY-IMX6-EK200开发板,Linux-4.1.15平台上:

  1. 按“MY-IMX6 Linux-4_1_15 编译参考手册”文档的说明搭建交叉编译环境。如果打开新的终端窗口,则用以下命令设置和检查交叉编译环境:

tangb@myzr:~/my-work/8987a/wlan_src$ source /opt/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi

tangb@myzr:~/my-work/8987a/wlan_src$ echo $CC

arm-poky-linux-gnueabi-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/opt/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi

  1. 修改驱动包里的 ”SD-UAPSTA-UART-BT-8987-U16-MMC-W16.68.1.p174-16.26.1.p174-C4X16604-GPL/wlan_src/Makefile”:

#COMPATDIR=/lib/modules/$(KERNELVERSION_X86)/build/compat-wireless-3.2-rc1-1/include

#CC=                  $(CROSS_COMPILE)gcc -I$(COMPATDIR)

#LD=                  $(CROSS_COMPILE)ld

#KERNELVERSION_X86 :=       $(shell uname -r)

#KERNELDIR ?= /lib/modules/$(KERNELVERSION_X86)/build

KERNELDIR = /home/tangb/my-work/02_source/linux-4.1.15

然后“make build”。

把生成的下列文件复制到U盘:mlan.ko   sd8987.ko

  1. 修改MFG软件“mfg8987brg.p164\Bridge\bridge\Makefile”:

#CONFIG_NONPLUG_SUPPORT=y

CONFIG_NONPLUG_SUPPORT=n

#CC=/usr/local/arm-marvell-krkwd-linux-gnueabi/gcc/bin/arm-none-linux-gnueabi-gcc

然后“make build”。

把生成的“mfgbridge”复制到U盘。

  1. 把“E:\Temp\mfg8987brg.p164\bin\FwImage\sdio8987_uart_combo.bin”和“E:\Temp\mfg8987brg.p164\Bridge\bin_mfgbridge\bridge_init.conf”也复制到U盘。
  2. 把U盘插入MY-IMX6-EK200开发板,把sdio8987_uart_combo.bin复制到/lib/firmware/mrvl目录。然后加载驱动和运行MFG软件,详见”log.txt”文件。

insmod hci_uart.ko

insmod mlan.ko

insmod sd8987.ko drv_mode=1 mfg_mode=1 cal_data_cfg=none fw_name=mrvl/w8987o_SDIO_UART_WLAN.bin fw_serial=0

mkdir /lib/firmware/mrvl

cp w8987o_SDIO_UART_WLAN.bin /lib/firmware/mrvl/

./mfgbridge

  1. 修改“E:\Temp\mfg8987brg.p164\bin\release\labtool\ SetUp.ini”,使其中的DutIpAddress 和HostIpAddress与开发板和电脑的IP地址一致。
  2. 把驱动包中的“wlan_src\mapp\mlanconfig\config\ cal_data.conf”复制到labtool目录里,并改名为“WlanCalData_ext.conf”。

大功告成,labtool的运行结果如下图所示。

如果要测试蓝牙,那么:

  1. 修改驱动包里的 ”SD-UAPSTA-UART-BT-8987-U16-MMC-W16.68.p174-16.26.1.p174-C4X16604-GPL/muart_src/Makefile”:

KERNELDIR = /home/tangb/my-work/02_source/linux-4.1.15

# Debug Option

# DEBUG LEVEL n/1/2:

然后“make build”。

把生成的下列文件复制到U盘:hci_uart.ko

  1. 修改驱动包里的 ”SD-UAPSTA-UART-BT-8987-U16-MMC-W16.68.1.p174-16.26.1.p174-C4X16604-GPL/uartfwloader_src/linux/Makefile”:

#CC=gcc

#CFLAGS=-g -O2 -I.

然后“make make”。

把生成的下列文件复制到U盘:fwloader

  1. 在开发板的终端上执行下面的命令:

insmod mlan.ko

sleep 1

insmod sd8987.ko drv_mode=1 mfg_mode=1 cal_data_cfg=none fw_name=mrvl/w8987o_SDIO_UART_WLAN.bin fw_serial=0

插入模组,若FW初始化出错,则先拔掉FTDI USB-UART工具的USB口,然后再插模组,等模组初始化成功,再插工具的USB口。如果用开发板的UART2,则把ttyUSB0改为ttymxc1。

killall hciattach

./fw_loader /dev/ttyUSB0 115200 0 helper_uart_3000000.bin

./fw_loader /dev/ttyUSB0 3000000 1 w8987d_SDIO_UART_BT.bin

insmod hci_uart.ko

hciattach /dev/ttyUSB0 any -s 3000000 3000000 flow

./mfgbridge

用 combo的FW 也可以,步骤如下

insmod mlan.ko

sleep 1

insmod sd8987.ko drv_mode=1 mfg_mode=1 cal_data_cfg=none fw_name=mrvl/sdio8987_uart_combo_mfg.bin

sleep 1

insmod hci_uart.ko

hciattach /dev/ttyUSB0 any 115200 flow

hciconfig hci0 up

./mfgbridge

然后,在Windows  端启动labtool, 分别88 查看WLAN和BT 版本号,一切正常。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: mfgtool和uuu都是用于嵌入式设备的工具。 mfgtool是一种通用的制造工具,它用于在生产环境中烧录固件和软件,以保证设备的正常运行。它具有简单易用的界面,可以通过USB或串口与目标设备进行通信。使用mfgtool,制造商可以将固件和软件加载到设备的存储器中,并进行验证和校验。此外,mfgtool还支持设备的自动化测试和硬件的诊断。 而uuu是一种更加强大的工具,用于支持嵌入式设备的完整开发过程。uuu是Universal Update Utility的缩写,它提供了更多的功能和灵活性。它可以用于烧录固件、下载和更新应用程序,调试和测试设备,以及进行远程的系统维护和管理。与mfgtool相比,uuu支持更多种类的通信接口,如USB、网络等,并且可以通过命令行或脚本进行批量操作。 总的来说,mfgtool和uuu都扮演着重要的角色,帮助制造商和开发人员在嵌入式设备的生产和开发过程中提高效率和准确性。无论是在制造过程中的固件烧录,还是在设备的全生命周期内的维护和更新,这两个工具都起着关键的作用。 ### 回答2: Mfgtool和uuu是两种常用于嵌入式系统开发和调试的工具。 Mfgtool(Manufacturing Tool)是一个用于生产制造环境的工具,它主要应用于新设备的生产过程中。它可以通过USB接口与目标设备进行通信,并提供了一系列的功能用于设备的烧录、配置和测试等操作。Mfgtool的设计目标是方便使用,能够简化设备制造过程,提高生产效率。常见的用途包括设备烧录操作系统、刷写引导加载程序、配置设备参数等。 而uuu(Universal Update Utility)是一种通用的更新工具,它主要应用于设备的系统更新和固件升级等操作。相比于Mfgtool,uuu更加灵活,可以适用于不同的设备和操作系统平台。它提供了一组命令行工具,可以通过USB、串口等接口与目标设备进行通信,并进行设备的固件更新、文件传输等操作。uuu的设计目标是易于跨平台使用,可以在Windows、Linux、Mac等不同的操作系统上运行。 Mfgtool和uuu都是在嵌入式系统开发中非常重要的工具,它们能够简化设备的研发过程、提高生产效率,并保证设备的稳定性和可靠性。无论是在设备开发阶段还是在设备量产过程中,选择合适的工具对于提高开发效率和降低成本都是至关重要的。 ### 回答3: mfgtool是一款用于生产制造和烧录嵌入式系统固件的工具。而uuu则是mfgtool的一个版本,它是一款开源的、跨平台的烧录工具。 mfgtool和uuu主要用于将固件烧录到嵌入式系统的存储介质中,以完成系统的烧录和更新。它们广泛应用于各类嵌入式系统的生产制造和维护过程中。 使用mfgtool和uuu,我们可以通过USB接口将已编译好的固件文件烧录到目标设备的闪存、eMMC、SD卡等存储介质中。通过连接目标设备和主机,mfgtool/uuu能够实现固件的自动烧录,完成整个烧录过程的自动化控制。 mfgtool和uuu具有强大的灵活性和可扩展性。它们支持多种操作系统、硬件平台和存储介质,能够满足不同嵌入式系统的烧录需求。同时,它们还提供了丰富的配置选项,可以按需设置烧录参数,如闪存分区、启动方式等,以实现个性化的烧录流程。 总之,mfgtool和uuu是可靠、高效的嵌入式系统烧录工具,通过使用它们,我们可以简化烧录过程,提高生产和维护效率,确保固件的可靠性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值