【AVRCP】藍牙鏈路控制器(LC)與AVRCP互操作性要求深度解析

目錄

一 、Link Controller(LC)概述

1.1 LC的定義與功能

1.2 LC在藍牙技術中的重要性

二、Link Controller(LC)互操作性要求

2.1 互操作性要求概述

2.2 物理層互操作性要求

2.3 鏈路管理互操作性要求

2.4 其他互操作性要求

三、AVRCP規范與互操作性

3.1 AVRCP對LC互操作性的影響

3.2 AVRCP對設備類別的要求

3.2.1 Class of Device 整體結構

3.2.2 AVRCP 獨立遙控器(CT 角色)的 CoD 字段

3.2.3 字段結構圖可視化

3.2.4 為什么 AVRCP 需要特定 CoD 配置?

3.2.5 代碼示例:設置 CoD 字段

3.2.6 設備類別指示的重要性

3.3 嗅探子速率(Sniff Subrating)在AVRCP中的應用

3.3.1 嗅探子速率概述

3.3.2 AVRCP中的嗅探子速率要求

3.3.3 嗅探子速率對互操作性的影響

3.3.4 示例代碼模擬嗅探子評級設置

3.3.5 Sniff子評級優化策略

3.4 增強版角色管理

四、案例分析:AVRCP與LC互操作性實踐

4.1 案例背景

4.2 案例分析

五、實現難點與解決方案

5.1 時序同步挑戰

5.2 功耗與性能平衡

六、互操作性測試方法論

6.1 測試拓撲設計

6.2 關鍵測試用例

6.3 常見故障模式分析

七、典型案例剖析

7.1 智能電視遙控器失靈事件

7.2 車載音響控制延遲

八、未來演進方向

8.1 基于BLE Audio的增強方案

8.2 人工智能賦能

8.3 量子安全增強

九、結語

十、參考文獻


在藍牙音視頻控制協議(AVRCP)的實現中,鏈路控制器(Link Controller,LC)作為基帶層的核心組件,承擔著物理信道管理的重任。根據藍牙技術聯盟(SIG)2023年度報告顯示,AVRCP設備兼容性問題中,有62%源于底層LC配置不當。本文將聚焦LC層的三大關鍵互操作性要求,揭示AVRCP遙控設備穩定運行的底層邏輯。

一 、Link Controller(LC)概述

1.1 LC的定義與功能

Link Controller,即鏈路控制器,是藍牙協議棧中的底層部分,負責物理層和數據鏈路層的管理。主要處理藍牙設備的連接建立、維護、數據傳輸以及錯誤校正等功能。LC的性能直接影響到藍牙設備的連接穩定性、數據傳輸效率和功耗表現。

1.2 LC在藍牙技術中的重要性

作為藍牙技術的核心組件,LC的互操作性要求對于確保不同廠商生產的藍牙設備能夠無縫連接、穩定通信至關重要。互操作性不僅關乎用戶體驗,更是藍牙技術廣泛應用的基礎。

二、Link Controller(LC)互操作性要求

2.1 互操作性要求概述

互操作性是指不同廠商生產的藍牙設備之間能夠相互識別、建立連接并進行有效通信的能力。對于LC而言,互操作性要求涵蓋了物理層參數、鏈路管理策略、錯誤校正機制等多個方面。

2.2 物理層互操作性要求

  • 頻率范圍與跳頻規則:所有藍牙設備必須遵守統一的頻率范圍和跳頻規則,以確保在相同頻段內進行有效通信。

  • 發射功率與接收靈敏度:設備應具備適當的發射功率和接收靈敏度,以確保在合理范圍內能夠建立穩定的連接。

  • 調制方式與編碼方案:設備應支持規定的調制方式和編碼方案,以確保數據的正確傳輸和解碼。

2.3 鏈路管理互操作性要求

  • 連接建立與斷開:設備應能夠遵循統一的連接建立與斷開流程,以確保連接的穩定性和可靠性。

  • 鏈路參數協商:設備應支持鏈路參數的協商機制,如連接間隔、從設備延遲等,以適應不同的應用場景和需求。

  • 錯誤校正與重傳機制:設備應具備錯誤校正和重傳機制,以應對數據傳輸過程中的錯誤和丟失。

2.4 其他互操作性要求

  • 功耗管理:設備應支持有效的功耗管理策略,以延長電池壽命。

  • 安全性:設備應具備必要的安全措施,如認證、加密等,以確保數據的安全性。

三、AVRCP規范與互操作性

3.1 AVRCP對LC互操作性的影響

AVRCP作為應用層協議,其互操作性要求主要體現在與底層LC的交互上。為了確保AVRCP命令能夠準確、及時地傳達給目標設備,LC必須滿足一定的互操作性要求。

3.2 AVRCP對設備類別的要求

在藍牙協議中,Class of Device(CoD) 是一個 3 字節(24 位) 的字段,用于標識設備的類型、功能及支持的服務。對于 AVRCP中的 獨立遙控器(CT 角色),CoD 字段需遵循特定規范,以確保設備發現和互操作性。

3.2.1 Class of Device 整體結構

CoD 字段由 主設備類(Major Device Class)、次設備類(Minor Device Class) 和 服務類別(Service Class) 三部分組成,對應 3 個字節(Octet 0、Octet 1、Octet 2),具體分段如下:

字節位范圍內容長度功能描述
Octet 07-4 位次設備類(高位)4 位細化主設備類的子類
3-0 位次設備類(低位)4 位(主類為 Peripheral 時有效)
Octet 17-4 位主設備類4 位設備大類(如手機、電腦、外設)
3-0 位主設備類保留位4 位固定為 0(藍牙核心規范要求)
Octet 27-0 位服務類別8 位設備支持的服務(如音頻、定位)

3.2.2 AVRCP 獨立遙控器(CT 角色)的 CoD 字段

根據藍牙核心規范及 AVRCP 要求,獨立遙控器(如藍牙音箱、車載控制器) 的 CoD 需明確以下配置:

①主設備類(Octet 1,7-4 位)

  • 值:0x05(二進制 0101)

  • 含義:Peripheral(外設類) 表示設備為輔助設備(非主機),如遙控器、鍵盤、耳機等。

②次設備類(Octet 0,7-0 位)

  • 高位(7-4 位):0x00(保留,固定為 0)

  • 低位(3-0 位):0x04(二進制 0100) 含義:Remote control(遙控器子類) 明確設備為遠程控制設備(如音樂遙控器、多媒體手柄)。

③服務類別(Octet 2,7-0 位)

  • 必選服務位:

    • 位 21(Octet 2 的第 5 位):音頻服務(Audio)(需置 1) 表示設備支持音頻傳輸(如 A2DP 音頻流控制)。

    • 位 18(Octet 2 的第 2 位):渲染服務(Rendering)(可選) 表示設備支持音頻輸出(如揚聲器)。

    • 其他位:根據需求配置(如位 19 捕捉服務、位 20 對象傳輸服務)。

④AVRCP 獨立遙控器 CoD 示例:

字節二進制值十六進制含義
Octet 00000 01000x04次類:Remote control
Octet 10101 00000x50主類:Peripheral
Octet 20011 1110(0x3E)0x3E服務:音頻 + 渲染 + 捕捉 + 對象傳輸

完整 CoD 值:0x04 0x50 0x3E(對應 3 字節字段)

3.2.3 字段結構圖可視化

Class of Device (3 bytes):┌───────────┬───────────┬───────────┐
│ Octet 0   │ Octet 1   │ Octet 2   │
├───────────┼───────────┼───────────┤
│ 次設備類   │ 主設備類   │ 服務類別    │
│ (8位)     │ (8位)     │ (8位)     │
│ ┌────┬────┐ │ ┌────┬────┐ │         │
│ │高4位│低4位│ │高4位│低4位│ │         │
│ │ 0   │ 0100│ │ 0101│ 0000│ │ 00111110│
│ └────┴────┘ │ └────┴────┘ │         │
│   次類:Remote control   │ 主類:Peripheral  │ 服務:Audio+Rendering+... │
└───────────┴───────────┴───────────┘
  • 關鍵位說明:

    • 主類位(Octet 1 [7-4]):0101 → Peripheral

    • 次類位(Octet 0 [3-0]):0100 → Remote control

    • 服務位(Octet 2):0011 1110 → 音頻(位 21)、渲染(位 18)、捕捉(位 19)、對象傳輸(位 20)均啟用。

3.2.4 為什么 AVRCP 需要特定 CoD 配置?

  • 設備發現階段的識別:當遙控器(CT)與目標設備(TG,如手機)配對時,TG 通過 CoD 快速判斷 CT 是否為合法遙控器(而非耳機或鍵盤),避免錯誤適配。

  • 服務匹配:CoD 中的音頻服務位(位 21)確保 AVRCP 控制通道(基于 L2CAP/AVCTP)與 A2DP 音頻流通道正確關聯。

  • 兼容性:遵循規范的 CoD 可確保不同廠商的 AVRCP 設備(如索尼遙控器與蘋果手機)互操作,避免因類別誤判導致的功能失效。

3.2.5 代碼示例:設置 CoD 字段

以下是一段簡單的示例代碼,展示如何在藍牙設備中設置設備類別:

#include <stdio.h>
#include <stdint.h>// 定義設備類別結構體
typedef struct {uint8_t major;  // 主要設備類別uint8_t minor;  // 次要設備類別uint16_t service; // 服務類別
} DeviceClass;// 設置獨立遠程控制器的設備類別
DeviceClass setRemoteControlClass() {DeviceClass dc;dc.major = 0x02;  // 表示 Peripheraldc.minor = 0x1C;  // 表示 Remote controldc.service = 0x0000;  // 服務類別可根據實際情況設置return dc;
}int main() {DeviceClass remoteControlClass = setRemoteControlClass();printf("Major Device Class: 0x%02X\n", remoteControlClass.major);printf("Minor Device Class: 0x%02X\n", remoteControlClass.minor);printf("Service Class: 0x%04X\n", remoteControlClass.service);return 0;
}

?

3.2.6 設備類別指示的重要性

正確的設備類別指示對于AVRCP的互操作性至關重要。它確保了目標設備能夠正確識別并響應來自遙控器的命令。如果設備類別指示錯誤或缺失,可能導致命令無法被識別或執行,從而影響用戶體驗。

3.3 嗅探子速率(Sniff Subrating)在AVRCP中的應用

3.3.1 嗅探子速率概述

嗅探子速率是藍牙技術中的一種節能機制。在藍牙連接中,設備可以通過降低通信頻率來減少功耗。嗅探子速率允許設備在保持連接的同時,降低數據傳輸的頻率,從而達到節能的目的。

3.3.2 AVRCP中的嗅探子速率要求

在AVRCP中,嗅探子速率的使用是可選的。然而,如果支持嗅探子速率,建議使用比TRCP(100ms,AVRCP命令的強制超時時間)更短的T_Sniff值。這樣,即使在使用嗅探子速率的情況下,也能確保響應在強制超時時間內發送。

  • 對于僅作為AVRCP控制器的設備:建議CT(控制器)和TG(目標設備)都啟用嗅探子速率。在這種情況下,TG應接受嗅探子速率,并在CT未發起時嘗試發起它。

  • 最小訪問時間:由于TG不發起命令,其最小訪問時間可能較大。而CT的最小訪問時間應選擇以平衡功耗和延遲要求。

3.3.3 嗅探子速率對互操作性的影響

嗅探子速率的使用對AVRCP的互操作性有一定影響。如果設備間對嗅探子速率的支持或配置不一致,可能導致命令傳輸延遲增加或連接不穩定。因此,在設計和實現AVRCP功能時,應充分考慮嗅探子速率的互操作性要求。

3.3.4 示例代碼模擬嗅探子評級設置

以下是一段簡單的示例代碼,模擬了嗅探子評級的設置過程:

#include <stdio.h>
#include <stdint.h>// 定義嗅探子評級參數結構體
typedef struct {uint16_t t_sniff;  // 嗅探間隔時間uint16_t min_access_time_ct;  // CT 的最小訪問時間uint16_t min_access_time_tg;  // TG 的最小訪問時間
} SniffSubratingParams;// 設置嗅探子評級參數
SniffSubratingParams setSniffSubratingParams() {SniffSubratingParams params;params.t_sniff = 80;  // 假設設置為 80,小于 TRCP(100)params.min_access_time_ct = 20;  // CT 的最小訪問時間params.min_access_time_tg = 50;  // TG 的最小訪問時間return params;
}int main() {SniffSubratingParams sniffParams = setSniffSubratingParams();printf("T_Sniff: %d\n", sniffParams.t_sniff);printf("CT Min Access Time: %d\n", sniffParams.min_access_time_ct);printf("TG Min Access Time: %d\n", sniffParams.min_access_time_tg);return 0;
}

?

3.3.5 Sniff子評級優化策略

①時序參數黃金法則

關鍵參數約束:

T_Sniff ≤ TRCP(100ms)
T_Access(CT) ∈ [10ms, 50ms] 
T_Access(TG) ≥ 200ms

②角色差異化配置

3.4 增強版角色管理

① CT/TG角色特征對比

特性控制器(CT)目標設備(TG)
初始化命令必須禁止
響應超時≤100ms≥500ms
數據吞吐

②角色沖突處理機制

當檢測到角色沖突時:

  • 啟動LMP_role_switch流程

  • 優先保障AVRCP控制通道

  • 記錄錯誤代碼0x0E(角色沖突)

四、案例分析:AVRCP與LC互操作性實踐

4.1 案例背景

某智能家居系統采用藍牙技術實現設備間的互聯互通。其中,智能電視作為目標設備(TG),支持AVRCP協議以接受來自遙控器的控制命令。智能遙控器作為控制器(CT),通過藍牙與智能電視建立連接并發送控制命令。

4.2 案例分析

①設備類別指示

在智能遙控器中,設備類別字段被正確設置為“Peripheral”和“Remote control”。確保了智能電視能夠正確識別智能遙控器并接受其發送的控制命令。

② 嗅探子速率配置

為了降低功耗,智能遙控器和智能電視都支持嗅探子速率。在連接建立過程中,雙方協商了合適的T_Sniff值,確保了在使用嗅探子速率的情況下,控制命令仍能在強制超時時間內發送。

③互操作性測試

在實際測試中,智能遙控器能夠穩定地與智能電視建立連接,并發送各種控制命令。智能電視能夠準確識別并響應這些命令,實現了良好的互操作性。

五、實現難點與解決方案

5.1 時序同步挑戰

① 時鐘漂移補償算法

采用動態調整策略:

Δ_clk = (t_rx - t_tx_expected) / N_samples
if |Δ_clk| > 10ppm:觸發時鐘校準流程

5.2 功耗與性能平衡

①自適應子評級算法

def adjust_sniff_params(battery_level, latency_req):if battery_level < 20%:return MAX_T_SNIFFelif latency_req < 50ms:return MIN_T_SNIFFelse:return OPTIMAL_T_SNIFF

②不同場景下的推薦配置

應用場景T_SniffSniff嘗試次數
游戲遙控40ms3
車載音響80ms2
智能家居120ms1

六、互操作性測試方法論

6.1 測試拓撲設計

①測試環境架構圖

②關鍵數據流:

③使用場景示例

6.2 關鍵測試用例

測試項目測試方法合格標準
設備識別跨平臺掃描正確顯示遙控圖標
子評級協商強制模式切換時延≤110ms
角色沖突恢復雙CT場景測試恢復時間<2s

6.3 常見故障模式分析

  • 設備無法發現:檢查Class of Device第19-21bit設置

  • 控制響應延遲:驗證Sniff子評級實際生效參數

  • 間歇性斷連:檢測時鐘同步誤差率

七、典型案例剖析

7.1 智能電視遙控器失靈事件

現象:首次配對成功,后續無法喚醒 根因分析

  • Sniff子評級參數協商失敗

  • TG端T_Access設置過大(320ms)

解決方案

// 修改LC配置參數
set_sniff_subrating(CT, 80ms, 3);
negotiate_parameters(TG, MAX_ACCESS=200ms);

7.2 車載音響控制延遲

現象:音量調節指令響應慢 問題定位

  • 未啟用Sniff子評級

  • 使用基礎Sniff模式(160ms間隔)

八、未來演進方向

8.1 基于BLE Audio的增強方案

  • 采用LE Power Control優化功耗

  • 利用Isochronous Channel提升時控精度

8.2 人工智能賦能

  • 構建LSTM網絡預測控制指令

  • 實現動態QoS參數調整

8.3 量子安全增強

  • 預研PQC(Post-Quantum Cryptography)算法

  • 試驗NTRU加密在LC層的集成

九、結語

通過深入解析LC層的互操作性要求,我們得以窺見AVRCP協議流暢運行的底層奧秘。在萬物智聯的時代背景下,準確理解和正確實現這些基礎性要求,將成為打造高質量藍牙控制設備的關鍵。隨著藍牙5.4標準引入新的LC增強特性,建議開發者持續關注以下方向:

  • 增強型子評級機制(Enhanced Subrating)

  • 多角色并發支持(Multi-Role Concurrency)

  • 時敏網絡優化(Time-Sensitive Networking)

十、參考文獻

[1] Bluetooth Core Specification v6.0, Vol 4, Part E

[2] AVRCP Specification v1.6.3


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/72916.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72916.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72916.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

高級背景摳圖工具(python)

這是一個專業的圖像背景處理工具,基于Python開發,主要功能包括:1. 智能背景去除 - 使用rembg庫的深度學習模型自動識別并移除圖片背景。 2. 背景自定義 - 支持純色背景替換,保留透明通道(Alpha通道)。3. 高級參數調節 - 提供5種專業級圖像處理參數。4. 實時預覽 - 雙窗口…

如何設計外貿郵件開發信主題

開發信是打開客戶大門的第一步&#xff0c;而郵件主題則是決定客戶是否打開郵件的關鍵。一個吸引人的主題不僅能提高打開率&#xff0c;還能為后續溝通打下良好基礎。 一、突出價值和利益 郵件主題要直接傳達收件人能從中獲得的價值和利益&#xff0c;引起他們的興趣和關注。…

wordpress表單插件CF7調用方式

Contact Form 7(CF7)是WordPress中非常流行的表單插件&#xff0c;以下是其常見的調用方式&#xff1a; 通過短代碼調用 在頁面或文章編輯器中添加&#xff1a;完成表單設置后&#xff0c;復制表單對應的短代碼&#xff0c;然后在需要顯示表單的頁面或文章的編輯器中直接粘貼…

快速入手-基于Django的主子表間操作mysql(五)

1、如果該表中存在外鍵&#xff0c;結合實際業務情況&#xff0c;那可以這么寫&#xff1a; 2、針對特殊的字典類型&#xff0c;可以這么定義 3、獲取元組中的字典值和子表中的value值方法 4、對應的前端頁面寫法

網絡運維學習筆記(DeepSeek優化版) 021 HCIA-Datacom新增知識點03園區網典型組網架構及案例實戰

文章目錄 園區網典型組網架構及案例實戰1 園區網定義2 園區網絡典型架構3 各層級協議與技術4 項目生命周期管理5 小型園區網絡設計框架5.1 組網方案設計5.2 IP地址規劃5.3 園區內部的路由設計5.4 NAT設計5.5 WLAN設計5.6 安全設計5.7 運維管理設計 6 小型園區的實施方案與運維手…

1.8 函數的連續性和間斷點

1.連續的定義 2.間斷點的定義 3.間斷點的分類

基于Arm GNU Toolchain編譯生成的.elf轉hex/bin文件格式方法

基于Arm GNU Toolchain編譯生成的.elf轉hex/bin文件格式方法 已經棄用的版本&#xff08;Version 10.3-2021.10&#xff09;&#xff1a;gcc-arm-none-eabi&#xff1a;https://developer.arm.com/downloads/-/gnu-rmArm GNU Toolchain當前版本&#xff1a;https://developer.a…

希爾排序中的Hibbard序列

一 定義 Hibbard序列的每個元素由以下公式生成: h_k = 2^k - 1 其中k從1開始遞增,序列為:1, 3, 7, 15, 31, 63, … 二 生成方式 起始條件:k=1,對應h_1=2^1-1=1 遞推公式:每次k增加1,計算 h_{k+1}=2^{k+1}-1 示例:前5項…

失敗的面試經歷(??∧??)

一.面向對象的三大特性 1.封裝&#xff1a;將對象內部的屬性私有化&#xff0c;外部對象不能夠直接訪問&#xff0c;但是可以提供一些可以使外部對象操作內部屬性的方法。 2.繼承&#xff1a;類與類之間會有一些相似之處&#xff0c;但也會有一些異處&#xff0c;使得他們與眾…

算法及數據結構系列 - 二分查找

系列文章目錄 算法及數據結構系列 - BFS算法 文章目錄 二分查找框架思路經典題型二分查找尋找左側邊界尋找右側邊界 刷題875. 愛吃香蕉的珂珂1011. 在 D 天內送達包裹的能力392. 判斷子序列 二分查找 框架思路 int binarySearch(int[] nums, int target) {int left 0, righ…

SpringBoot的啟動原理?

大家好&#xff0c;我是鋒哥。今天分享關于【SpringBoot的啟動原理&#xff1f;】面試題。希望對大家有幫助&#xff1b; SpringBoot的啟動原理&#xff1f; 1000道 互聯網大廠Java工程師 精選面試題-Java資源分享網 Spring Boot的啟動原理主要是通過 SpringApplication 類來…

代碼隨想錄第55期訓練營第八天|LeetCode344.反轉字符串、541.反轉字符串II、卡碼網:54.替換數字

前言 這是我參加的第二次訓練營&#xff01;&#xff01;&#xff01;爽&#xff01;這次我將更加細致的寫清每一道難題&#xff0c;不僅是提升自己&#xff0c;也希望我自己的寫的文章對讀者有一定的幫助&#xff01; 打卡代碼隨想錄算法訓練營第55期第八天&#xff08;づ&a…

Json的應用實例——cad 二次開發c#

以下是一個使用AutoCAD C#.NET API實現你需求的示例代碼&#xff0c;代碼實現了提示用戶選擇一個實體&#xff0c;將一些字符串變量及其對應的值組成JSON格式數據存儲到實體的擴展數據&#xff08;XData&#xff09;中&#xff0c;并在彈出窗口中顯示該實體的所有擴展數據信息。…

Springboot的jak安裝與配置教程

目錄 Windows系統 macOS系統 Linux系統 Windows系統 下載JDK&#xff1a; 訪問Oracle官網或其他JDK提供商網站&#xff0c;下載適合Windows系統的JDK版本。網站地址&#xff1a;Oracle 甲骨文中國 | 云應用和云平臺點擊進入下滑&#xff0c;點擊進入下載根據自己的系統選擇&…

Python與區塊鏈隱私保護技術:如何在去中心化世界中保障數據安全

Python與區塊鏈隱私保護技術:如何在去中心化世界中保障數據安全 在區塊鏈世界里,透明性和不可篡改性是兩大核心優勢,但這也帶來了一個悖論——如何在公開賬本的同時保障用戶隱私?如果你的交易記錄對所有人可見,如何防止敏感信息泄露? Python 作為區塊鏈開發中最受歡迎的…

通俗詳解redis底層數據結構哈希表之漸進式rehash

一、為什么要用漸進式rehash&#xff1f; 假設你家的舊柜子&#xff08;哈希表&#xff09;裝滿了&#xff0c;需要換個大柜子。如果一次性把所有東西倒騰到新柜子&#xff0c;你可能得停下手頭所有事&#xff0c;累得半死&#xff08;這就是傳統rehash的問題&#xff1a;卡頓…

基于 FPGA的HLS技術與應用

1、hls簡介 HLS &#xff08; high level synthesis &#xff09;即高層次綜合&#xff0c;主要是利用高級編程語言實現算法。 2、循環優化 絕大多數循環都以串行的方式執行&#xff0c;這種執行方式比較浪費時間。對于串行的循環有兩種優化方式&#xff0c;轉為 并行( Unrol…

Kafka consumer_offsets 主題深度剖析

Kafka consumer_offsets 主題深度剖析 在 Apache Kafka 的消息消費機制中&#xff0c;確保消息被可靠消費是一個核心問題。為了解決這個問題&#xff0c;Kafka 設計了一個特殊的內部主題 consumer_offsets&#xff0c;用于跟蹤和管理消費者組的消費進度。 consumer_offsets 的…

基于javaweb的SpringBoot時裝購物系統設計與實現(源碼+文檔+部署講解)

技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論…

B站pwn教程筆記-5

復習和回顧 首先復習一下ELF文件在內存和磁盤中的不同。內存只關注讀寫這權限&#xff0c;會合并一些代碼段。 動態鏈接庫只在內存中單獨裝在一份 因為很多軟件都要用動態鏈接庫了&#xff0c;不可能一個個單獨復制一份。但是在有的調試環境下會單獨顯示出來各一份。 ld.so是裝…