大家好、我正在尝试使用 Bluetopia API 编译自定义应用程序。 我使用的是 https://www.ti.com/tool/TI-BT-4-2-STACK-LINUX-ADDON 上的 bluetopia 堆栈 。
您能否解释一下 API 结构的大致概述? 如必要的.c 所在的位置以及所有.h 文件所在的位置、这样我就可以编写一个 cmake 文件。
或者、修改构建目录中现有的 make 文件更简单吗?
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.
大家好、我正在尝试使用 Bluetopia API 编译自定义应用程序。 我使用的是 https://www.ti.com/tool/TI-BT-4-2-STACK-LINUX-ADDON 上的 bluetopia 堆栈 。
您能否解释一下 API 结构的大致概述? 如必要的.c 所在的位置以及所有.h 文件所在的位置、这样我就可以编写一个 cmake 文件。
或者、修改构建目录中现有的 make 文件更简单吗?
您好!
您是否能够在不进行任何修改的情况下按原样从 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 卡:
有一点奇怪的是、尽管将 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$