
TI CC1352/CC26x2 हार्डवेयर के लिए ब्लूटूथ 5 और 4.x LE स्निफ़र, जिसमें विस्तारित विज्ञापन (extended advertising), सभी PHY मोड, MAC/RSSI फ़िल्टरिंग और Wireshark के साथ संगत PCAP निर्यात का समर्थन शामिल है।
Sniffle TI CC1352/CC26x2 हार्डवेयर का उपयोग करके ब्लूटूथ 5 और 4.x (LE) के लिए एक स्निफर है।
Sniffle में कई उपयोगी विशेषताएं हैं, जिनमें शामिल हैं:
यदि आप फर्मवेयर के लिए बिल्ड वातावरण स्थापित करने की मेहनत नहीं करना चाहते हैं, तो आप UniFlash/DSLite का उपयोग करके प्रीबिल्ट फर्मवेयर बाइनरी को फ्लैश कर सकते हैं। प्रीबिल्ट फर्मवेयर बाइनरी इस प्रोजेक्ट के GitHub रिलीज़ टैब पर रिलीज़ के साथ संलग्न होती हैं। प्रीबिल्ट फर्मवेयर का उपयोग करते समय, master के बजाय रिलीज़ टैग के अनुरूप Python कोड का उपयोग करना सुनिश्चित करें, ताकि master ब्रांच से पीछे रहने वाले फर्मवेयर के साथ संगतता समस्याओं से बचा जा सके।
विभिन्न Linux वितरणों के पैकेज प्रबंधक के माध्यम से उपलब्ध arm-none-eabi-gcc में अक्सर कुछ हेडर फ़ाइलों की कमी होती है या लिंकर कॉन्फ़िगरेशन में कुछ बदलावों की आवश्यकता होती है। न्यूनतम परेशानी के लिए, मैं ऊपर लिंक किए गए ARM GCC का उपयोग करने का सुझाव देता हूं। आप केवल प्रीबिल्ट एक्ज़ीक्यूटेबल्स को डाउनलोड कर निकाल सकते हैं।
TI SDK एक एक्ज़ीक्यूटेबल बाइनरी के रूप में प्रदान किया जाता है जो लाइसेंस अनुबंध स्वीकार करने के बाद बहुत सारे स्रोत कोड निकालता है। Linux और Mac पर, डिफ़ॉल्ट स्थापना निर्देशिका ~/ti/ के अंदर होती है। यह ठीक काम करती है और मेरी मेकफाइलें इस पथ की अपेक्षा करती हैं, इसलिए मैं यहां केवल डिफ़ॉल्ट के साथ जाने का सुझाव देता हूं। यही बात TI SysConfig टूल पर भी लागू होती है।
SDK निकाले जाने के बाद, आपको अपने बिल्ड वातावरण से मेल खाने के लिए एक मेकफ़ाइल संपादित करनी होगी। ~/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01 (या जहाँ भी SDK स्थापित किया गया था) के भीतर imports.mak नाम की एक मेकफ़ाइल है। Sniffle बनाने के लिए यहां केवल GCC, XDC, cmake और SysConfig के लिए पथ सेट करने की आवश्यकता है। हमें CCS कंपाइलर की आवश्यकता नहीं है। उदाहरण के रूप में नीचे दिया गया diff देखें, और जहाँ भी आपने चीजें स्थापित की हैं उसके अनुसार अनुकूलित करें।```
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
SDK संस्करण 8.30.01.01 के अनुसार, GCC (और binutils) के हालिया संस्करणों के साथ संकलन करने के लिए,
लिंकिंग त्रुटियों से बचने हेतु SDK में एक छोटा संशोधन आवश्यक है
"Unknown destination type (ARM/Thumb)" और "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
यह संशोधन करने के बाद, आपको SDK को पुनः संकलित करने की आवश्यकता होगी।``` cd ~/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01 make build-gcc -j5
### DSLite प्राप्त करना
DSLite, XDS110 डिबगरों के लिए TI की कमांड लाइन प्रोग्रामिंग और डीबग सर्वर उपकरण है।
CC26xx और CC13xx Launchpad बोर्ड दोनों में XDS110 डिबगर शामिल होते हैं।
दुर्भाग्य से, TI DSLite के लिए स्टैंडअलोन कमांड लाइन डाउनलोड उपलब्ध नहीं कराता।
DSLite प्राप्त करने का सबसे आसान तरीका TI से [UniFlash](http://www.ti.com/tool/download/UNIFLASH) इंस्टॉल करना है।
यह Linux, Mac और Windows के लिए उपलब्ध है। DSLite निष्पादन योग्य फ़ाइल
UniFlash इंस्टॉलेशन निर्देशिका के सापेक्ष `deskdb/content/TICloudAgent/linux/ccs_base/DebugServer/bin/DSLite` पर स्थित होगी।
Linux पर, डिफ़ॉल्ट UniFlash
इंस्टॉलेशन निर्देशिका `~/ti/` के अंदर होती है।
आपको DSLite निष्पादन योग्य निर्देशिका को अपने `$PATH` में रखना चाहिए।
## फर्मवेयर निर्माण
एक बार GCC, DSLite और SDK इंस्टॉल और कार्यशील हो जाएं, तो Sniffle का निर्माण
सीधा-सादा होना चाहिए। बस `fw` निर्देशिका में जाएं और
`make` चलाएं। यदि आपने SDK को डिफ़ॉल्ट निर्देशिका में इंस्टॉल नहीं किया है, तो आपको
मेकफ़ाइल में `SIMPLELINK_SDK_INSTALL_DIR` को संपादित करने की आवश्यकता हो सकती है।