This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TIBLUETOOTHSTACK-SDK:Bluetopia 自定义应用

Guru**** 1175120 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/998624/tibluetoothstack-sdk-bluetopia-custom-application

器件型号:TIBLUETOOTHSTACK-SDK

大家好、我正在尝试使用 Bluetopia API 编译自定义应用程序。 我使用的是 https://www.ti.com/tool/TI-BT-4-2-STACK-LINUX-ADDON 上的 bluetopia 堆栈

您能否解释一下 API 结构的大致概述? 如必要的.c 所在的位置以及所有.h 文件所在的位置、这样我就可以编写一个 cmake 文件。

或者、修改构建目录中现有的 make 文件更简单吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Andrew:

    您使用的是什么器件?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我使用的是 AM335x 评估板。 我的工作站上安装了 SDK、可以在 EVM 上编译、传输和运行应用程序、而不会出现任何问题。

    我在 VS 代码中打开了 Bluetopia API、我尝试获取一个 cmake 来构建一个简单的应用程序、该应用程序可以 进行 API 调用。



  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您是否能够在不进行任何修改的情况下按原样从 SDK 构建 Bluetopia 栈、或者是否能够做到这一点、只需在将新程序添加到 makefile 方面提供帮助?

    您是否查看 过用于 Linux 的 Bluetopia 构建指南? 它包含有关 SDK 结构的大量文档以及有关如何构建 SDK 的说明。

    总的来说、您需要为本地工作区和工具链修改一些配置文件、但在运行"源配置"后、您应该将 makefile 文件建立在构建目录中提供的主 makefile 文件基础之上。 我建议您查看提供的 makefile 以及构建指南中的文档。

    此致、
    Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    感谢您提供信息。 修改现有 makefile 可以正常工作。

    我已修改 setup-bt 文件和 proj/toolchain-defs.mak 以反映以下内容

    setup-bt:
    本地工具链安装的#路径
    导出 toolchain_path=/home/acisneros/ti-processor-sdk-linux-am335x-evm-06.03.00.106/linux-devkit/sysroots

    SDK 编译内核的#路径
    导出 kernel_path=/home/acisneros/ti-processor-sdk-linux-am335x-evm-06.03.00.106/board-support/linux-4.19.94 +gitAUTOINC+be5389fd85-gbe5389fd85/

    toolchain-def.mak:
    KERNELDIR=$(kernel_path)/
    toolchain_path_native=$(toolchain_path)/x86_64-Arago-linux/
    toolchain_path_target=$(toolchain_path)/armv7at2hf-neon -linux-gnueabi/
    toolchain_prefix=arm-linux-gnueabihf
    arch = ARM

    运行 source configure.sh 并 make clean 后、我最终会出现此错误

    Cisneros@Ubuntu:~/Wifi-BLE/AM335xBluetopiaLinuxProduction-4.2.1.1.1.0/build sudo make
    acisneros 的[sudo]密码:
    make:***没有规则使目标'Kernel_2_6/SS1VNETM.c'成为'/BluetopiaPM/Bluetopia/VNET/SS1VNETM.ko 所需的目标。  停下。

    我在这里发现了类似的问题: https://e2e.ti.com/support/wireless-connectivity/wifi/f/wi-fi-forum/561987/problem-in-ti-bluetooth-stack-for-wl18xx---build-process-guide
    我做了一些改变、但我一定错过了一些东西。

    有什么想法?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您的 setup-bt 文件和 toolchain-def.mak 看起来不错。

    对于您遇到的错误、请尝试注释掉 platform.mak 文件中的 VNET 构建目标。 该文件应位于 build/proj 中、通过注释掉 targets +=$(VNET_targets:%=$(VNETDIR)/%)行、您应该无需创建该 SS1VNETM.c 文件。

    此致、

    Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    我运行了'make clobber'、然后运行'Source configure'、然后我能够生成。 这修复了构建错误。

    但是、将新构建的二进制文件传输到 AM335x 评估板、然后尝试启动 SS1BTPM 会导致错误。 请注意、当我传输并运行预编译的二进制文件时、我没有看到此错误。

    root@AM335x-EVM:~/ Bluetopia#./SS1BTPM
    ./SS1BTPM:/lib/libc.so.6:找不到版本`glibc_2.28'(./SS1BTPM 要求)
    根目录@AM335x-EVM:~/ Bluetopia#

    看起来 GNU c 库与 SDK 工具链中的 libc 版本不同。

    来自交叉编译器工具链的 libc:

    acisneros@~ Ubuntu:μ C/ti-processor-sdk-linux-am335x-evm-06.03.00.106/linux-devkit/sysroots/armv7at2hf-none-linux-gnueabi/lib$ ls libc.so.6
    libc.so

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Andrew:

    在 AM335x EVM 上、您是否按照此处的说明使用默认映像加载了 SD 卡:

    http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Overview/Processor_SDK_Linux_create_SD_card_script.html#sd-card-using-default-images

    有一点奇怪的是、尽管将 Bluetopia 编译文件指向带有 libc 的目标文件系统、但仍会出现该错误。

    此致、

    Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Michael、

    AM335x EVM 最近直接从 TI 购买、并随附映像 SD 卡。

    我将 SDK 的 libc 传输到 EVM 以查看不同的版本。

    EVM 随附的 libc:

    root@AM335x-EVM:~#/lib/libc.so.6
    GNU C Library (GNU libc)稳定发布版本2.21、作者:Roland McGrath 等

    SDK 中的 libc (在 EVM 上查看):

    root@AM335x-EVM:~./libc.SO.6
    GNU C 库(用于 A 配置文件架构8.3-2019.03 (ARM-REF-8.36)的 GNU 工具链)稳定版本2.28。

    这里有明显不同的版本。

    您会在这里推荐什么? 重新映像 SD 卡?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我制作了一个随包装盒一起提供的 SD 卡克隆、以进行备份。 然后按照提供的指南重新成像 SD 卡。 但是、在'create-sdcard.sh'脚本完成后、SD 卡将不再可引导。

    我在之前和之后附加了分配的屏幕截图。 创建 SD 卡输出。

    创建 SD 卡后

    在覆盖 SD 卡之前:

    ############################################################################################################################

    此脚本将从自定义或预构建的二进制文件创建可引导 SD 卡。

    必须使用根权限并从的 bin 目录运行该脚本
    SDK

    示例:
     $ sudo ./create-sdcard.sh

    如果 SD 卡已格式化、则可以跳过格式化和
    分区正确。

    ############################################################################################################################


    可用于将图像写入的驱动器:

    # 主要  次   要大小  名称
    1:  8      16  31166976 sdb
     
    输入 Device Number 或 n 以退出:1.
     
    已选择 SDB

    ############################################################################################################################

          小部分 警告********

       所选设备大于16GB
       继续超过此点将从器件中擦除数据
       仔细检查这是否是正确的 SD 卡

    ############################################################################################################################

    是否要继续[y/n]:y

     


    /dev/sdb 是一款 sdx 器件
    sdb1 2295字节的当前大小
    sdb2 31164171字节的当前大小

    ############################################################################################################################

       如果只需要 boot 和 rootfs (大多数用户),请选择2个分区。
       如果需要 SDK 和 SD 卡上的其他内容、请选择3个分区。  这是
           通常由设备制造商使用、可访问分区 tarball。

       继续警告****将擦除 sdb 上的所有数据

    ############################################################################################################################

    所需分区数[2/3]:2.

     
    现在用2个分区对 sdb 进行分区...
     

    ############################################################################################################################

          现在制作2个分区

    ############################################################################################################################

    中的1024+0记录
    1024+0记录输出
    已复制1048576字节(1.0MB、1.0MiB)、0.621908 s、1.7MB/s
    磁盘大小- 31914983424字节
    警告:生成的分区未正确对齐以获得最佳性能:1s % 2048s!= 0s
    警告:生成的分区未正确对齐以获得最佳性能:4591s % 2048s!= 0s

    ############################################################################################################################

          分区引导

    ############################################################################################################################
    mkfs.fat 4.1 (2017-01-24)
    mkfs.fat:警告-小写标签可能无法在 DOS 或 Windows 中正常工作
    mkfs.vfat:无法打开/dev/sdb1:没有此类文件或目录

    ############################################################################################################################

          对 rootfs 进行分区

    ############################################################################################################################
    mke2fs 1.45.5 (2020年1月7日)
    文件/dev/sdb2不存在、并且未指定大小。


    ############################################################################################################################

      分区现已完成
      继续安装文件系统或选择"n"以安全退出

      **警告**继续将擦除分区中的任何文件

    ############################################################################################################################


    是否要继续? [y/n]:y

     
     
    装入分区
    安装:/home/acisneros/ti-processor-sdk-linux-am335x-evm-06.03.00.106/bin/boot:错误的 FS 类型、错误的选项、/dev/sdb1上错误的超级块、代码页或帮助程序缺失或其它错误。
    安装:/home/acisneros/ti-processor-sdk-linux-am335x-evm-06.03.00.106/bin/rootfs:错误的 FS 类型、错误的选项、/dev/sdb2上错误的超级块、代码页或帮助程序缺失或其它错误。
     
    清空分区
     

    正在同步....

    ############################################################################################################################

       选择要从中安装的文件路径

       1)安装 SDK 中的预构建映像
       2)输入自定义引导和 rootfs 文件路径

    ############################################################################################################################

    立即选择[1/2]: 1.

     
    将从 SDK 预构建映像安装
    现已安装: TI-processor-SDK-Linux-AM335x-EVM-06.03.00.106

    ############################################################################################################################

      找到多个 rootfs tarball

    ############################################################################################################################

       1:tisdk-rootfs-image-am335x-evm.tar.xz
       2:tisdk-dock-rootfs-image-am335x-evm.tar.xz

    输入 rootfs Tarball 的数量:1.
     
    ############################################################################################################################

       正在复制文件... 将需要几分钟时间

    ############################################################################################################################

    正在复制引导分区



    已复制 MLO


    U-boot.img 已复制


    复制 rootfs 系统分区
                                                                                                                                                                                               

     
    正在同步...
     
    卸载分区
    umount:引导:未安装。
    umount: rootfs:未安装。
     
    删除创建的临时目录
     
    操作完成
     
    acisneros@~ Ubuntu:μ C/ti-processor-sdk-linux-am335x-evm-06.03.00.106/bin$

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Michael、

    我成功构建了可引导 SD 卡。 我的问题是我运行 Ubuntu 20.04。 SDK 中的设置脚本仅与 Ubuntu 18.04兼容。 使用18.04创建了新虚拟机,然后运行安装脚本,然后运行顶级 make 文件(我也缺少此步骤)。

    我现在都已经整理好了。 谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Andrew:

    很高兴您的设置正常工作。 感谢您回来并解释您的问题的解决方案、如果您在 AM335x EVM 上使用 Bluetopia 遇到任何其他困难、敬请告知。

    此致、

    Michael