
Sniffer Bluetooth 5 et 4.x LE pour le matériel TI CC1352/CC26x2 avec prise en charge de la publicité étendue, de tous les modes PHY, du filtrage MAC/RSSI et de l'export PCAP compatible avec Wireshark.
Sniffle est un sniffer pour Bluetooth 5 et 4.x (LE) utilisant le matériel TI CC1352/CC26x2.
Sniffle possède un certain nombre de fonctionnalités utiles, notamment :
Si vous ne souhaitez pas faire l'effort de mettre en place un environnement de construction pour le firmware, vous pouvez simplement flasher les binaires de firmware précompilés à l'aide d'UniFlash/DSLite. Les binaires de firmware précompilés sont joints aux versions de la page des versions (releases) GitHub de ce projet. Lorsque vous utilisez un firmware précompilé, assurez-vous d'utiliser le code Python correspondant à l'étiquette de version plutôt qu'à la branche master afin d'éviter les problèmes de compatibilité avec un firmware en retard sur la branche master.
Le arm-none-eabi-gcc fourni par les gestionnaires de paquets des différentes
distributions Linux manque souvent de certains fichiers d'en-tête ou nécessite des
modifications de la configuration du linker. Pour un minimum de tracas, je suggère
d'utiliser le GCC ARM lié ci-dessus. Vous pouvez simplement télécharger et extraire
les exécutables précompilés.
Le SDK TI est fourni sous forme d'un binaire exécutable qui extrait un ensemble de
code source une fois que vous acceptez le contrat de licence. Sous Linux et Mac, le
répertoire d'installation par défaut se trouve dans ~/ti/. Cela fonctionne très bien
et mes makefiles s'attendent à ce chemin, je suggère donc de simplement conserver la
valeur par défaut ici. Il en va de même pour l'outil TI SysConfig.
Une fois le SDK extrait, vous devrez modifier un makefile pour l'adapter à votre
environnement de construction. Dans ~/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01
(ou là où le SDK a été installé), il y a un makefile nommé imports.mak.
Les seuls chemins à définir ici pour construire Sniffle sont ceux de GCC, XDC,
cmake et SysConfig. Nous n'avons pas besoin du compilateur CCS. Voir le diff ci-dessous
comme exemple, et adaptez-le à l'endroit où vous avez installé les choses.```
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
À partir de la version SDK 8.30.01.01, pour compiler avec les versions récentes de GCC (et binutils), une petite modification du SDK est nécessaire pour éviter les erreurs de liaison "Unknown destination type (ARM/Thumb)" et "dangerous relocation: unsupported relocation".```
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
Après avoir effectué cette modification, vous devrez recompiler le SDK.``` cd ~/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01 make build-gcc -j5
### Obtenir DSLite
DSLite est l'outil serveur de programmation et de débogage en ligne de commande de TI pour les débogueurs XDS110. Les cartes Launchpad CC26xx et CC13xx intègrent toutes deux des débogueurs XDS110. Malheureusement, TI ne fournit pas de téléchargement autonome de DSLite en ligne de commande. Le moyen le plus simple d'obtenir DSLite est d'installer [UniFlash](http://www.ti.com/tool/download/UNIFLASH) depuis TI. Il est disponible pour Linux, Mac et Windows. L'exécutable DSLite se trouvera dans `deskdb/content/TICloudAgent/linux/ccs_base/DebugServer/bin/DSLite` par rapport au répertoire d'installation d'UniFlash. Sous Linux, le répertoire d'installation par défaut d'UniFlash se trouve dans `~/ti/`.
Vous devez placer le répertoire de l'exécutable DSLite dans votre `$PATH`.
## Compilation du firmware