
Bluetooth 5 und 4.x LE Sniffer für TI CC1352/CC26x2 Hardware mit Unterstützung für erweiterte Werbung, alle PHY-Modi, MAC/RSSI-Filterung und PCAP-Export, kompatibel mit Wireshark.
Sniffle ist ein Sniffer für Bluetooth 5 und 4.x (LE) mit TI CC1352/CC26x2 Hardware.
Sniffle hat eine Reihe nützlicher Funktionen, darunter:
Wenn Sie sich nicht die Mühe machen möchten, eine Build-Umgebung für die Firmware einzurichten, können Sie einfach vorgefertigte Firmware-Binärdateien mit UniFlash/DSLite flashen. Vorgefertigte Firmware-Binärdateien sind den Releases auf dem GitHub-Releases-Tab dieses Projekts beigefügt. Wenn Sie vorgefertigte Firmware verwenden, stellen Sie sicher, dass Sie den Python-Code des entsprechenden Release-Tags und nicht von master verwenden, um Kompatibilitätsprobleme mit der Firmware zu vermeiden, die hinter dem master-Branch liegt.
Das arm-none-eabi-gcc, das von verschiedenen Linux-Distributionen über deren
Paketmanager bereitgestellt wird, enthält oft einige Header-Dateien nicht oder erfordert
Änderungen an der Linker-Konfiguration. Für minimale Kopfschmerzen empfehle ich die
Verwendung des oben verlinkten ARM GCC. Sie können die vorgebauten ausführbaren Dateien
einfach herunterladen und entpacken.
Das TI SDK wird als ausführbare Binärdatei bereitgestellt, die nach der Annahme des
Lizenzvertrags eine Reihe von Quellcode extrahiert. Unter Linux und Mac befindet sich das
Standardinstallationsverzeichnis in ~/ti/. Das funktioniert gut und meine Makefiles
erwarten diesen Pfad, daher empfehle ich, hier einfach die Standardeinstellung zu
verwenden. Gleiches gilt für das TI SysConfig-Tool.
Sobald das SDK extrahiert wurde, müssen Sie eine Makefile bearbeiten, um es an Ihre
Build-Umgebung anzupassen. Innerhalb von ~/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01
(oder wo auch immer das SDK installiert wurde) gibt es eine Makefile namens imports.mak.
Die einzigen Pfade, die hier zum Bau von Sniffle gesetzt werden müssen, sind für GCC, XDC,
cmake und SysConfig. Wir brauchen den CCS-Compiler nicht. Siehe das folgende Diff als
Beispiel und passen Sie es an den Ort an, an dem Sie die Dinge installiert haben.```
diff --git a/imports.mak b/imports.mak
index b2cf5bf59..389d1a7c3 100644
--- a/imports.mak
+++ b/imports.mak
@@ -18,14 +18,14 @@
-XDC_INSTALL_DIR ?= /home/username/ti/xdctools_3_62_01_15_core -SYSCONFIG_TOOL ?= /home/username/ti/ccs1270/ccs/utils/sysconfig_1.21.1/sysconfig_cli.sh +XDC_INSTALL_DIR ?= $(HOME)/ti/xdctools_3_62_01_15_core +SYSCONFIG_TOOL ?= $(HOME)/ti/sysconfig_1.21.1/sysconfig_cli.sh
-CMAKE ?= /home/username/cmake-3.21.3/bin/cmake +CMAKE ?= cmake PYTHON ?= python3
TICLANG_ARMCOMPILER ?= /home/username/ti/ccs1270/ccs/tools/compiler/ti-cgt-armllvm_3.2.2.LTS-0 -GCC_ARMCOMPILER ?= /home/username/arm-none-eabi-gcc/12.3.Rel1-0 +GCC_ARMCOMPILER ?= $(HOME)/arm_tools/arm-gnu-toolchain-14.3.rel1-x86_64-arm-none-eabi IAR_ARMCOMPILER ?= /home/username/iar9.50.2
Ab SDK-Version 8.30.01.01 ist eine kleine Änderung am SDK erforderlich, um mit aktuellen Versionen von GCC (und binutils) zu kompilieren, um Linker-Fehler wie "Unknown destination type (ARM/Thumb)" und "dangerous relocation: unsupported relocation" zu vermeiden.```
diff --git a/kernel/tirtos7/packages/ti/sysbios/family/arm/m3/Hwi_asm_gcc.s b/kernel/tirtos7/packages/ti/sysbios/family/arm/m3/Hwi_asm_gcc.s
index 187cfd744..4cbf0d384 100644
--- a/kernel/tirtos7/packages/ti/sysbios/family/arm/m3/Hwi_asm_gcc.s
+++ b/kernel/tirtos7/packages/ti/sysbios/family/arm/m3/Hwi_asm_gcc.s
@@ -236,6 +236,7 @@ lab$1:
@ user code has set the PRIMASK and not cleared it, or when single
@ stepping with interrupts disabled.
+.type ti_sysbios_family_arm_m3_Hwi_interruptsAreDisabledButShouldNotBe, %function
ti_sysbios_family_arm_m3_Hwi_interruptsAreDisabledButShouldNotBe:
b ti_sysbios_family_arm_m3_Hwi_interruptsAreDisabledButShouldNotBe
diff --git a/kernel/tirtos7/packages/ti/sysbios/family/arm/v8m/Hwi_asm_gcc.s b/kernel/tirtos7/packages/ti/sysbios/family/arm/v8m/Hwi_asm_gcc.s
index 717f49c9a..1c83ed725 100644
--- a/kernel/tirtos7/packages/ti/sysbios/family/arm/v8m/Hwi_asm_gcc.s
+++ b/kernel/tirtos7/packages/ti/sysbios/family/arm/v8m/Hwi_asm_gcc.s
@@ -226,6 +226,7 @@ lab$1:
@ user code has set the PRIMASK and not cleared it, or when single
@ stepping with interrupts disabled.
+.type ti_sysbios_family_arm_v8m_Hwi_interruptsAreDisabledButShouldNotBe, %function
ti_sysbios_family_arm_v8m_Hwi_interruptsAreDisabledButShouldNotBe:
b ti_sysbios_family_arm_v8m_Hwi_interruptsAreDisabledButShouldNotBe
Nachdem Sie diese Änderung vorgenommen haben, müssen Sie das SDK neu kompilieren.``` cd ~/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01 make build-gcc -j5
### DSLite beziehen
DSLite ist TIs Befehlszeilen-Programmier- und Debug-Server-Tool für XDS110-Debugger.
Die CC26xx- und CC13xx-Launchpad-Boards enthalten beide XDS110-Debugger.
Leider stellt TI keinen eigenständigen Befehlszeilen-Download für DSLite bereit.
Der einfachste Weg, DSLite zu erhalten, ist die Installation von [UniFlash](http://www.ti.com/tool/download/UNIFLASH) von TI.
Es ist für Linux, Mac und Windows verfügbar.
Die ausführbare DSLite-Datei befindet sich unter `deskdb/content/TICloudAgent/linux/ccs_base/DebugServer/bin/DSLite` relativ zum UniFlash-Installationsverzeichnis.
Unter Linux befindet sich das Standard-Installationsverzeichnis von UniFlash in `~/ti/`.
Sie sollten das Verzeichnis der ausführbaren DSLite-Datei in Ihrem `$PATH` platzieren.
## Firmware-Erstellung