基于NXP例程學習CAN UDS刷寫流程

文章目錄

    • 前言
    • 1.概述
      • 1.1 診斷報文
    • 2.協議數據單元(N_PDU)
      • 2.1 尋址信息(N_AI)
        • 2.1.1 物理尋址
        • 2.1.2 功能尋址
        • 2.1.3 常規尋址(Normal addressing)
        • 2.1.4 常規固定尋址(Normal fixed addressing)
        • 2.1.5 擴展尋址(Extended addressing)
        • 2.1.6 混合尋址(Mixed addressing)
      • 2.2 協議控制信息(N_PCI)
        • 2.2.1 單幀(SF)
        • 2.2.2 多幀
    • 3.診斷服務
      • 3.1 請求和響應
        • 3.1.1 流程圖
        • 3.1.2 消息流格式
        • 3.1.3 抑制肯定響應
        • 3.1.4 NRC
      • 3.2 常見服務
        • DiagnosticSessionControl(診斷會話控制)($10)服務
          • 服務描述
          • 請求/響應
        • ECUReset(ECU 復位)($11)服務
          • 服務描述
          • 請求消息
          • 響應消息
        • SecurityAccess(安全訪問)($27)服務
          • 服務描述
          • 請求消息
          • 響應消息
        • CommunicationControl(通信控制)($28)服務
          • 服務描述
          • 請求消息
          • 響應消息
        • WriteDataByIdentifier(通過標識符寫數據)($2E)服務
            • 服務描述
          • 請求消息
          • 響應消息
        • RoutineControl(例程控制)($31)服務
          • 服務描述
          • 請求消息
          • 響應消息
        • RequestDownload(請求下載)($34)服務
          • 服務描述
          • 請求消息
          • 響應消息
        • TransferData(傳輸數據)($36)服務
          • 服務描述
          • 請求消息
          • 響應消息
        • RequestTransferExit(請求傳輸終止)($37)服務
          • 服務描述
          • 請求消息
          • 響應消息
    • 4.刷寫流程
      • 4.1 預編程階段
      • 4.2 編程階段
        • 4.2.1 $31服務
      • 4.3 后編程階段

前言

基于EcuBus-Pro實現CAN UDS升級

上文介紹了如何使用EcuBus-Pro實現CAN UDS升級的上位機,本文基于EcuBus-Pro監控的數據,詳細介紹下S32K144官方CAN UDS Bootloader的流程。

筆者沒有UDS的實戰經驗,所以文章內容是參考《GB/T 40822-2021》和一些網絡上的培訓資料完成,如果有不對的地方,還請幫忙評論區指出。

1.概述

通常車廠提高的DBC文件中有三類報文,如下所示:

  • 應用報文,用于多個ECU之間交互功能,比如執行開轉向燈功能。
  • 診斷報文,用于Tester讀取ECU端存儲的故障信息,程序升級等。
  • 網絡管理報文,用于協調多個ECU進行有序的休眠喚醒。

下文要介紹的CAN UDS刷寫,使用的就是診斷報文。

1.1 診斷報文

Tester端和ECU端使用診斷報文傳輸的流程圖如下:

通信流程圖(來源于網絡)

可以看到診斷報文的使用也是按照OSI模型來的,如下圖所示:

CAN UDS的OSI模型(來源于網絡)

2.協議數據單元(N_PDU)

按上文描述,診斷報文需要經過網絡層進行組包拆包,所以需要了解網絡層的協議格式,即N_PDU的組成,如下圖所示。

PDU格式

其中,N_AI,N_PCI,N_Data的說明如下圖所示。

PDU組成參數說明(來源于網絡)

2.1 尋址信息(N_AI)

尋址方式按通信對象分為功能尋址和物理尋址;按地址格式分為常規尋址、常規固定尋址、擴展尋址、混合尋址四種方式。

另外,下文提到的SATA的意義如下:

  • 源地址(SA):發送節點地址
  • 目標地址(TA):接收節點地址
2.1.1 物理尋址

物理尋址,即Tester和ECU一對一通信,示例圖如下:

物理尋址(來源于網絡)

2.1.2 功能尋址

功能尋址,即Tester向多個ECU發出同一功能的診斷請求,示例圖如下:

功能尋址(來源于網絡)

2.1.3 常規尋址(Normal addressing)

常規尋址,使用11位CAN ID,將N_AI映射到消息幀的CAN ID區域,但是沒有規定N_AI與CAN ID的具體映射關系,如下圖所示。

常規尋址(來源于網絡)

常規尋址是最常見的尋址方式,對于常規尋址:

  • 如果使用物理地址,每個ECU需要分配兩個CAN ID,一個用于請求,一個用于響應。

物理-常規尋址(來源于網絡)

  • 如果使用功能地址,同一個組的ECU共用一個CAN ID用于請求。

功能-常規尋址(來源于網絡)

2.1.4 常規固定尋址(Normal fixed addressing)

常規固定尋址,使用29位CAN ID,與混合尋址編排方式類似,完整定義了N_AI如何映射到29位CAN ID,格式如下圖所示。

常規固定尋址(來源于網絡)

下文介紹的S32K1 CAN UDS升級流程,就是使用的這種尋址方式。

2.1.5 擴展尋址(Extended addressing)

擴展尋址,使用11位CAN ID,N_AI中的N_TA映射到CAN數據幀的第一個字節,其它域映射到CAN ID,格式如下圖所示。

擴展尋址(來源于網絡)

2.1.6 混合尋址(Mixed addressing)

混合尋址,僅用于遠程診斷,格式如下圖所示。

混合尋址-11位ID(來源于網絡)

混合尋址-29位ID(來源于網絡)

2.2 協議控制信息(N_PCI)

PCI的結構如下圖所示,根據后續發送的N_Data長度分為單幀和多幀兩種。

N_PCI結構(來源于網絡)

2.2.1 單幀(SF)

當N_Data的長度在7個字節以內,選擇單幀發送。

上圖中的SF_DL代表N_Data的長度,<=7個字節,一個單幀的示例如下圖:

單幀示例(來源于網絡)

2.2.2 多幀

當N_Data的長度超過7個字節,需要選擇多幀發送。一個多幀的示例如下圖:

多幀示例(來源于網絡)

多幀報文需要用到三種報文:

  • 第一幀FF,其中FF_DL代表N_Data的長度,>7個字節,<=4095個字節。單獨的FF示例如下:

FF示例(來源于網絡)

  • 連續幀CF,其中SN用于0-F循環計數。單獨的CF示例如下:

CF示例(來源于網絡)

  • 流控幀FC,相關的參數有FS、BS和STmin,參數說明和單獨的FC示例如下:
參數含義
FS0繼續發送。讓發送方繼續發送接下來的連續幀,表示接收方已經準備好了接收最大為BS數量的連續幀。
1等待。發送方等待下一幀流控幀并重置自己的計時。一般用于接收方沒有處理完上一次接收到的連續幀。
2過載。發送方打算發送的數據長度超過了接收方的儲存能力。
BS1~FF表示發送方在發送BS數值的連續幀之后,需要等待接收方的流控幀。
0表示不需要任何流控幀,直接發送全部數據。
STmin00~7F單位為ms
F1~F9表示0.1~0.9ms
0按照發送方最快的速度發送

FC示例(來源于網絡)

3.診斷服務

N_Data和應用層的關系對應關系如下:

N_PDU映射到A_PDU

  • N_Data的第一個字節對應診斷服務ID
  • N_Data的第二個字節對應診斷服務的子功能或者數據參數(不具有子功能的診斷服務)

接下來介紹Tester和ECU基于診斷服務的交互方式,以及常見的診斷服務。

3.1 請求和響應

診斷服務的交互模式一般是是Tester發起服務請求,ECU端對服務進行響應。

3.1.1 流程圖

診斷服務的請求和響應的流程圖如下:

診斷服務流程圖(來源于網絡)

3.1.2 消息流格式

流程圖中的消息流對應的格式如下圖所示:

消息流格式

3.1.3 抑制肯定響應

有些時候為了提高傳輸效率,有些服務不回復肯定響應報文,即抑制肯定響應,通過設置請求消息流的子功能參數的bit7,如下圖所示:

3.1.4 NRC

常見的NRC如下圖所示,更多NRC的描述,查閱《GB/T 40822-2021》。

NRC

3.2 常見服務

下圖是常見的服務以及支持的會話模式。

常見服務

下面詳細介紹下S32K1官方CAN UDS升級例程使用到的幾種服務。

DiagnosticSessionControl(診斷會話控制)($10)服務
服務描述

DiagnosticSessionControl(診斷會話控制)服務用于在服務端中啟用不同的診斷會話。

請求/響應

請求/響應消息格式如下:

$10服務格式(來源于網絡)

數據參數定義如下:

$10服務數據參數

該服務支持的NRC如下:
$10服務支持的NRC

ECUReset(ECU 復位)($11)服務
服務描述

客戶端使用ECUReset(ECU 復位)服務來請求服務端復位。

該服務請求服務端根據嵌入在ECU 復位請求消息中的復位類型參數值的內容有效地執行服務端復位。可以在服務端中執行復位之前或之后發送ECU 復位肯定響應消息(如果需要)。建議在執行ECU 復位之前發送ECU 復位肯定響應消息。

請求消息

請求消息的定義如下:

請求消息定義

請求消息子功能的定義如下:

請求消息子功能定義

響應消息

肯定響應消息的定義如下:

肯定響應消息定義

支持的NRC如下:

支持的NRC

SecurityAccess(安全訪問)($27)服務
服務描述

該服務的目的是提供訪問數據和/或診斷服務的手段,這些服務由于保密、排放或安全的原因而受到限制。

該用于將例程或數據下載或上傳到服務端和從服務端讀取指定的內存位置的診斷服務,可能需要在SecurityAccess(安全訪問)的情況下進行。

下載到服務端的非正常例程或數據可能會損壞電子設備或其他車輛部件,或者影響車輛排放、保密或安全標準的符合性。保密概念利用了種子和密鑰之間的關系。

使用該服務的典型示例如下所示

  • 客戶端請求“種子”;
  • 服務端發送“種子”;
  • 客戶端發送“密鑰”(與接收的種子配對);
  • 服務端響應“密鑰”有效,并且它將自行解鎖。

$27服務流程圖

主機廠一般會設置不同的安全等級,用于執行后續不同的功能。安全級別切換的常見方式如下:

安全級別切換

請求消息

請求消息的定義如下:

請求消息的定義

子功能參數的定義如下:

子功能參數的定義

requestSeed(請求種子)值與sendKey(發送密鑰)值具有固定關系:

  • “requestSeed=01”確定了“requestSeed=01”和“sendKey=02”之間的固定關系;
  • “requestSeed=03”確定了“requestSeed=03”和“sendKey=04”之間的固定關系。

數據參數的定義如下:

數據參數的定義

響應消息

肯定響應消息的定義如下:

肯定響應消息的定義

支持的NRC如下:

支持的NRC

CommunicationControl(通信控制)($28)服務
服務描述

該服務的目的是開啟/關閉服務端(例如應用程序通信消息)某些消息的發送和/或接收。

請求消息

請求消息的定義如下:

請求消息的定義

子功能參數的定義如下:

子功能參數的定義

數據參數的定義如下:

數據參數的定義

響應消息

肯定響應消息的定義如下:

肯定響應消息的定義

支持的NRC如下:

支持的NRC

WriteDataByIdentifier(通過標識符寫數據)($2E)服務
服務描述

通過標識符寫數據服務允許客戶端向服務端中給定數據標識符指定的內部位置寫入信息。

請求消息

請求消息的定義如下:

請求消息的定義

數據參數包含的值定義太多,文章篇幅有限,有興趣的建議查看《GB/T 40822-2021》的附錄C.1。

響應消息

肯定響應消息的定義如下:

肯定響應消息的定義

支持的NRC如下:

支持的NRC

RoutineControl(例程控制)($31)服務
服務描述

客戶端使用RoutineControl(例程控制)服務執行指定的步驟的序列并且獲得任何相關結果。

該服務具有較大靈活性,但一般用途包括擦除內存、重置或學習自適應數據、運行自測試、覆蓋正常服務端控制策略、控制服務端值隨時間變化以及預定義序列(比如關閉敞篷車頂)等。

客戶端使用RoutineControl(例程控制)服務進行如下操作:

  • StartRoutine(啟動例程);
  • StopRoutine(停止例程);
  • 請求例程結果。

使用2字節routineIdentifier(例程標識符)。

請求消息

請求消息的定義如下:

請求消息的定義

子功能參數的定義如下:

子功能參數的定義

數據參數的定義如下:

數據參數的定義

響應消息

肯定響應消息的定義如下:

肯定響應消息的定義

肯定響應消息的數據參數定義如下:

肯定響應消息的數據參數定義

支持的NRC如下:

支持的NRC

RequestDownload(請求下載)($34)服務
服務描述

客戶端利用“requestDownload(請求下載)”服務啟動客戶端到服務端之間的數據傳輸(下載)。

服務端收到“requestDownload(請求下載)”請求消息后,應在其發送肯定響應消息之前采取必要行動接收數據。

請求消息

請求消息的定義如下:

請求消息的定義

數據參數的定義如下:

數據參數的定義

響應消息

肯定響應消息的定義如下:

肯定響應消息的定義

肯定響應消息的數據參數定義如下:

肯定響應消息的數據參數定義

支持的NRC如下:

支持的NRC

TransferData(傳輸數據)($36)服務
服務描述

客戶端利用傳輸數據服務從客戶端向服務端(下載)或從服務端向客戶端(上傳)傳輸數據。

請求消息

請求消息的定義如下:

請求消息的定義

數據參數的定義如下:

數據參數的定義

響應消息

肯定響應消息定義如下:

肯定響應消息定義

肯定響應消息的數據參數定義如下:

肯定響應消息的數據參數定義

支持的NRC如下:

支持的NRC

RequestTransferExit(請求傳輸終止)($37)服務
服務描述

客戶端利用此服務終止客戶端與服務端之間的數據傳輸(上傳或下載)

請求消息

請求消息的定義如下:

請求消息的定義

數據參數的定義如下:

數據參數的定義

響應消息

肯定響應消息定義如下:

肯定響應消息定義

肯定響應消息的數據參數定義如下:

肯定響應消息的數據參數定義

支持的NRC如下:

支持的NRC

4.刷寫流程

整個刷寫流程分三步,分別是預編程階段、編程階段以及后編程階段。

4.1 預編程階段

預編程階段主要做一些程序升級前的準備工作,包括禁用DTC設置以及非診斷通信等。

預編程階段的流程圖如下所示,左側的標準步驟是必須要實現的。

預編程階段流程圖

從EcuBus-Pro抓取的該階段的數據如下所示。

MCU例程沒有DTC設置的功能,所以未使用$85服務關閉DTC設置。

預編程階段數據log

4.2 編程階段

編程階段是對MCU程序進行升級的主要階段。

編程階段的流程圖如下所示。

編程階段流程圖

從EcuBus-Pro抓取的該階段的數據如下所示。

$36服務傳輸的數據量太大,下圖隱藏了大量的傳輸數據。如果需要查看完整數據,可以去前文提供的gitee倉庫查看log表格。

編程階段數據log

4.2.1 $31服務

其它服務內容的實現細節,可以通過前文提到的EcuBus-Pro工程的腳本文件詳細查看;關于例程控制($31)服務,下面簡單描述下。

S32K1官方demo使用的$31服務包含了三種RoutineID,如下圖所示。

$31服務RoutineID

三種RoutineID實現的功能如下圖:

  • Routine=0xFF00,實現Flash擦除功能
  • Routine=0x0202,發送CRC校驗碼,用于確認傳輸數據的完整性,即傳輸過程中數據是否有丟包或被篡改。
  • Routine=0xFF01,編程依賴性檢查,確認傳輸的固件是否合法有效,即上位機給過來的固件是否來源可靠,功能是否驗證過。

$31服務-MCU端功能

4.3 后編程階段

后編程階段用于在MCU程序升級完成后進行硬件復位,以及將編程會話切換到默認會話。

后編程階段的流程圖如下所示。

后編程階段流程圖

從EcuBus-Pro抓取的該階段的數據如下所示。

后編程階段數據log


如果覺得這篇文章對你有用,幫忙給個一鍵三連!!!

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

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

相關文章

近期手上的一個基于Function Grap(類AWS的Lambda)小項目的改造引發的思考

函數式Function是云計算里最近幾年流行起來的新的架構和模式&#xff0c;因為它不依賴云主機&#xff0c;非常輕量&#xff0c;按需使用&#xff0c;甚至是免費使用&#xff0c;特別適合哪種數據同步&#xff0c;數據轉發&#xff0c;本身不需要保存數據的業務場景&#xff0c;…

什么是 SQL 注入?如何防范?

什么是 SQL 注入?如何防范? 1. SQL 注入概述 1.1 基本定義 SQL 注入(SQL Injection)是一種通過將惡意SQL 語句插入到應用程序的輸入參數中,從而欺騙服務器執行非預期SQL命令的攻擊技術。攻擊者可以利用此漏洞繞過認證、竊取數據甚至破壞數據庫。 關鍵結論:SQL 注入是O…

高德地圖應用OceanBase單元化構建下一代在線地圖服務

IEEE International Conference on Data Engineering (ICDE) 是數據庫和數據工程領域的頂級學術會議之一&#xff08;與SIGMOD、VLDB并成為數據庫三大頂會&#xff09;&#xff0c;自1984年首次舉辦以來&#xff0c;每年舉辦一次。ICDE涵蓋廣泛的主題&#xff0c;包括數據庫系統…

Vue3中Element-Plus中el-input及el-select 邊框樣式

如果不需要顯示下邊框&#xff0c;純無邊框直接將 【border-bottom: 1px solid #C0C4CC; 】注掉或去掉即可。 正常引用組件使用即可&#xff0c;無須自定義樣式&#xff0c;最終效果CSS樣式。 <style scoped> /* 輸入框的樣式 */ :deep(.el-input__wrapper) { box-sha…

如何做好一份技術文檔:從信息孤島到知識圖譜的進階之路

如何做好一份技術文檔&#xff1a;從信息孤島到知識圖譜的進階之路 在軟件開發的漫長征程中&#xff0c;技術文檔如同隱藏在代碼叢林中的路標&#xff0c;不僅指引著開發團隊的前行方向&#xff0c;更在產品迭代的歲月里構筑起知識傳承的橋梁。一份優質的技術文檔&#xff0c;既…

Docker Compose使用自定義用戶名密碼啟動Redis

通常我們使用下面的命令來啟動 redis 容器&#xff0c;此時連接 Redis 的時候是不需要用戶認證的 sudo docker run -d --name my-redis -p 6379:6379 redis此時我們可以使用 redis-server --requirepass "mypassword" 來指定默認用戶&#xff08;default&#xff09…

1.什么是node.js、npm、vue

一、Node.js 是什么&#xff1f; &#x1f63a; 定義&#xff1a; Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行時環境&#xff0c;讓你可以在瀏覽器之外運行 JavaScript 代碼&#xff0c;主要用于服務端開發。 &#x1f63a;從計算機底層說&#xff1a;什么是“運…

如何在 Vue.js 中集成 Three.js —— 創建一個旋轉的 3D 立方體

在這篇文章中&#xff0c;我將向大家展示如何將 Three.js 與 Vue.js 結合&#xff0c;創建一個簡單的 3D 場景&#xff0c;并展示一個旋轉的立方體。通過這個簡單的示例&#xff0c;你將學習到如何在 Vue 項目中集成 Three.js&#xff0c;以及如何創建動態的 3D 內容。 1. 安裝…

DeepSeek?R1-0528 重磅升級:螞蟻百寶箱免費、無限量調用

DeepSeek?R1-0528 重磅升級&#xff1a;螞蟻百寶箱免費、無限量調用 端午假期前一天&#xff0c;DeepSeek?R1 更新到了 0528 版本&#xff01; 官方說明&#xff1a;0528 版本在深度思考與推理能力方面顯著增強——在數學、編程與通用邏輯等多項基準測評中&#xff0c;表現已…

RS232轉Profinet網關在檢漏儀與西門子PLC里的應用

RS232轉Profinet網關在檢漏儀與西門子PLC里的應用 在工業自動化和控制領域&#xff0c;設備間的高效通信至關重要。RS232轉Profinet網關作為一種關鍵的轉換工具&#xff0c;能夠將傳統的RS232接口設備接入現代化的Profinet網絡&#xff0c;從而實現數據的無縫傳輸和設備的遠程…

jenkins-jenkins簡介

一、簡介 jenkins是一個可擴展的持續集成引擎。持續集成&#xff0c;也就是通常所說的CI&#xff08;Continues Integration&#xff09;&#xff0c;可以說是現代軟件技術開發的基礎。持續集成是一種軟件開發實踐&#xff0c; 即團隊開發成員經常集成他們的工作&#xff0c;通…

vue發版html 生成打包到docker鏡像進行發版

將Vue項目打包成Docker鏡像部署主要分為以下幾個步驟&#xff1a; 1. Vue項目打包? 執行npm run build生成dist文件夾&#xff0c;包含靜態資源文件 注意檢查index.html中資源引用路徑是否正確&#xff08;避免絕對路徑問題&#xff09; 2. 編寫Dockerfile Copy Code FROM…

掃地機器人苦尋新引擎,大疆們卻已攻入腹地

原創 科技新知 前沿科技組 作者丨江籬 編輯丨櫻木、九黎 競爭激烈的掃地機器人賽道&#xff0c;迎來了新玩家。 據近日相關報道&#xff0c;大疆掃地機器人產品已開始量產&#xff0c;預計將于6月份發布。消息稱大疆研發掃地機器人已超過四年&#xff0c;即將上市的產品是掃…

【C++】22. 紅黑樹封裝實現Mymap和Myset

上一章節我們實現了紅黑樹&#xff0c;這一章節我們就用紅黑樹封裝來實現一個我們自己的map和set 1. 源碼及框架分析 SGI-STL 3.0版本的源代碼中&#xff0c;map和set的實現主要分布在若干頭文件中&#xff0c;這些頭文件構成了這兩個容器的完整實現架構&#xff1a; 核心頭文…

02_redis分布式鎖原理

文章目錄 一、redis如何實現分布式鎖1. 使用 SETNX 命令2. 設置過期時間3. 釋放鎖4. 注意事項5. 示例代碼二、Java中分布式鎖如何設置超時時間1. Redis分布式鎖2. 基于Zookeeper的分布式鎖3. 基于數據庫的分布式鎖注意事項一、redis如何實現分布式鎖 Redis 實現分布式鎖是一種…

酷派Cool20/20S/30/40手機安裝Play商店-谷歌三件套-GMS方法

酷派Cool系列主打低端市場&#xff0c;系統無任何GMS程序&#xff0c;也不支持直接開啟或者安裝谷歌服務等功能&#xff0c;對于國內部分經常使用谷歌服務商店的小伙伴非常不友好。涉及機型有酷派Cool20/Cool20S /30/40/50/60等旗下多個設備。好在這些機型運行的系統都是安卓11…

技術為器,服務為本:AI時代的客服價值重構

在智能化浪潮中&#xff0c;大語言模型的出現為客戶服務行業注入了全新動能。然而技術創新的價值不在于技術本身&#xff0c;而在于其賦能服務的深度與廣度。AI對于我們來說&#xff0c;如同發動機之于汽車&#xff0c;重要的不是引擎參數&#xff0c;而是整車帶給用戶的駕駛體…

技術創新如何賦能音視頻直播行業?

在全球音視頻直播行業的快速發展中&#xff0c;技術的持續創新始終是推動行業進步的核心動力。作為大牛直播SDK的開發者&#xff0c;我很榮幸能分享我們公司如何從產品的維度出發&#xff0c;精準把握市場需求&#xff0c;并不斷推動產品的發展&#xff0c;以滿足不斷變化的行業…

Linux線程池(下)(34)

文章目錄 前言一、v3版本二、單例模式概念特點簡單實現 三、其余問題STL線程安全問題智能指針線程安全問題其他鎖的概念 總結 前言 加油&#xff01;&#xff01;&#xff01; 一、v3版本 「優化版」&#xff1a;從任務隊列入手&#xff0c;引入 「生產者消費者模型」&#xff…

Netty 實戰篇:Netty RPC 框架整合 Spring Boot,邁向工程化

本文將基于前面構建的 RPC 能力&#xff0c;嘗試將其與 Spring Boot 整合&#xff0c;借助注解、自動掃描、依賴注入等機制&#xff0c;打造“開箱即用”的 Netty RPC 框架&#xff0c;提升開發效率與工程規范。 一、為什么要整合 Spring Boot&#xff1f; 手動 new 實例、寫注…