AMP(Asymmetric Multiprocessing,非對稱多處理) 是一種在同一塊多核芯片上同時(shí)運(yùn)行多個(gè)獨(dú)立操作系統(tǒng)的架構(gòu)模式。與 SMP(對稱多處理)不同,AMP 為每個(gè)操作系統(tǒng)分配專屬的 CPU 核心、內(nèi)存空間和外設(shè)資源,各子系統(tǒng)之間物理隔離、互不干擾。
在工業(yè)嵌入式領(lǐng)域,AMP 架構(gòu)完美解決了 “實(shí)時(shí)性” 與 “豐富生態(tài)” 這對矛盾的需求:
Linux 側(cè):承擔(dān)圖形界面、網(wǎng)絡(luò)協(xié)議棧、AI 推理、文件系統(tǒng)等非實(shí)時(shí)任務(wù)
RT-Thread 側(cè):承擔(dān)硬實(shí)時(shí)控制、高速數(shù)據(jù)采集、工業(yè)總線通信等確定性任務(wù)
睿擎工業(yè)開發(fā)平臺基于 Rockchip RK3506J 芯片(3 核 Cortex-A7),采用精細(xì)化的 1+2 核心劃分方案:CPU0 專用于 Linux,CPU1 和 CPU2 運(yùn)行 RT-Thread,并在其內(nèi)部進(jìn)一步區(qū)分常規(guī)任務(wù)與實(shí)時(shí)任務(wù)。

關(guān)于 AMP 架構(gòu)的完整技術(shù)解析,請參考平臺技術(shù)文檔。本文將重點(diǎn)聚焦于 外設(shè)隔離機(jī)制 與 劃分策略 兩個(gè)核心議題。
外設(shè)隔離是 AMP 架構(gòu)的核心。只有將硬件資源從物理層面進(jìn)行有效隔離,才能真正實(shí)現(xiàn)"兩個(gè)大腦各司其職"的設(shè)計(jì)目標(biāo)。睿擎平臺通過 四大隔離機(jī)制 構(gòu)建了完整的外設(shè)隔離體系。
CPU 核隔離是外設(shè)隔離的基礎(chǔ)。睿擎平臺采用精細(xì)化的 1 (Linux) + 2 (RT-Thread) 核心劃分方案,并在 RT-Thread 內(nèi)部進(jìn)一步實(shí)現(xiàn)了常規(guī)任務(wù)與實(shí)時(shí)任務(wù)的物理隔離:
核心 | 歸屬系統(tǒng) | 任務(wù)類型 | 職責(zé)范圍 |
CPU0 | Linux | 非實(shí)時(shí)任務(wù) | 圖形界面、網(wǎng)絡(luò)協(xié)議棧、AI 推理、常規(guī)外設(shè)中斷處理 |
CPU1 | RT-Thread | 常規(guī)實(shí)時(shí)任務(wù) | 協(xié)議棧處理、文件系統(tǒng)、軟實(shí)時(shí)任務(wù)、一般外設(shè)管理 |
CPU2 | RT-Thread | 硬實(shí)時(shí)任務(wù) | 周期性實(shí)時(shí)任務(wù)、硬實(shí)時(shí)外設(shè)獨(dú)占、中斷響應(yīng) |
核心隔離優(yōu)勢:
Linux 獨(dú)立隔離:Linux 獨(dú)占 CPU0,其內(nèi)部調(diào)度完全不受 RT-Thread 影響
RT-Thread 內(nèi)部雙級隔離:CPU1 負(fù)責(zé)常規(guī)軟實(shí)時(shí)任務(wù),CPU2 專用于硬實(shí)時(shí)任務(wù),確保最高優(yōu)先級任務(wù)不受任何干擾
確定性保障:即使 CPU1 上的常規(guī) RT-Thread 任務(wù)負(fù)載飽和,CPU2 上的硬實(shí)時(shí)任務(wù)響應(yīng)時(shí)間仍穩(wěn)定在微秒級
中斷是外設(shè)與 CPU 之間的通信橋梁。中斷隔離的核心是通過 中斷親和性(Interrupt Affinity) 機(jī)制,將不同外設(shè)的中斷路由到指定的 CPU 核心。在睿擎平臺的 1+2 架構(gòu)下,中斷隔離分為三個(gè)層級:

關(guān)鍵配置:在設(shè)備樹中通過 interrupt-affinity 屬性指定中斷綁定關(guān)系:

隔離效果:
硬實(shí)時(shí)外設(shè)(如 I2C、SPI、Timer)中斷響應(yīng)時(shí)間穩(wěn)定在 1~3 微秒,不受任何其他任務(wù)影響
常規(guī)實(shí)時(shí)外設(shè)(如 UART、SDMMC)中斷綁定到 CPU1,確保基本的實(shí)時(shí)性
非實(shí)時(shí)外設(shè)(如 Display、Audio)中斷綁定到 Linux 的 CPU0,與 Linux 調(diào)度協(xié)同工作
每個(gè)子系統(tǒng)需要獨(dú)立管理自身的時(shí)鐘樹。睿擎平臺通過 rockchip_amp 節(jié)點(diǎn)為 RT-Thread 系統(tǒng)分配專屬時(shí)鐘:

隔離效果:
兩側(cè)時(shí)鐘域完全獨(dú)立,不會出現(xiàn)時(shí)鐘沖突
RT-Thread 側(cè)可獨(dú)立控制實(shí)時(shí)外設(shè)的時(shí)鐘頻率和功耗
Linux 側(cè)無法意外關(guān)閉 RT-Thread 正在使用的時(shí)鐘
AMP 架構(gòu)在內(nèi)存層面同樣實(shí)現(xiàn)了隔離:
內(nèi)存區(qū)域 | 歸屬系統(tǒng) | 用途 |
Linux 系統(tǒng)內(nèi)存 | Linux | Linux 內(nèi)核、用戶空間、文件緩存 |
RT-Thread 系統(tǒng)內(nèi)存 | RT-Thread | RT-Thread 內(nèi)核、線程棧、設(shè)備驅(qū)動緩沖 |
共享內(nèi)存區(qū) | 雙系統(tǒng)共用 | RPMSG 通信緩沖區(qū)、數(shù)據(jù)交換區(qū) |
內(nèi)存訪問權(quán)限:每個(gè)操作系統(tǒng)只能訪問自己的內(nèi)存空間,跨系統(tǒng)數(shù)據(jù)交換必須通過受控的共享內(nèi)存區(qū)域進(jìn)行,防止內(nèi)存越界訪問。
根據(jù)睿擎平臺的 1+2 架構(gòu),RT-Thread 內(nèi)部進(jìn)一步細(xì)分為常規(guī)核 (CPU1) 與實(shí)時(shí)核 (CPU2),因此外設(shè)分配需要遵循三級劃分策略:
這些外設(shè)對響應(yīng)延遲有最嚴(yán)格要求,建議綁定到 RT-Thread 專用的硬實(shí)時(shí)核心:
外設(shè)類型 | 典型實(shí)例 | 分配理由 |
高精度定時(shí)器 | Timer3/4/5 | 微秒級周期調(diào)度、精確時(shí)序控制 |
高速數(shù)據(jù)采集 | I2C0, SPI0 | 避免任何調(diào)度抖動影響采樣精度 |
實(shí)時(shí)通信總線 | CAN0, EtherCAT | 確定性通信要求,周期抖動 < ±5μs |
實(shí)時(shí) GPIO | GPIO1 中斷引腳 | 快速響應(yīng)外部事件,亞微秒級延遲 |
PWM 控制 | PWM0/1 | 精確的電機(jī)速度/閥門開度控制 |
這些外設(shè)需要基本的實(shí)時(shí)性保證,但允許偶發(fā)的微小抖動:
外設(shè)類型 | 典型實(shí)例 | 分配理由 |
串口通信 | UART0/1 | 通信速率較高,需要低延遲響應(yīng) |
文件存儲 | SDMMC1 | RT-Thread 側(cè)日志記錄、參數(shù)存儲 |
次要 CAN 總線 | CAN1 | 非關(guān)鍵 CAN 通信,容忍微秒級抖動 |
次要 GPIO | GPIO2-5 | 狀態(tài)監(jiān)測、非緊急中斷響應(yīng) |
外設(shè)類型 | 典型實(shí)例 | 分配理由 |
顯示接口 | MIPI-DSI, HDMI | 依賴 Qt/Wayland 復(fù)雜圖形棧 |
USB Host | USB0 | 完善的 USB 協(xié)議棧和驅(qū)動生態(tài) |
大容量存儲 | SDMMC0, eMMC | 需要 ext4/FAT32 文件系統(tǒng)支持 |
音頻子系統(tǒng) | I2S0, Audio Codec | 復(fù)雜的 ALSA/PulseAudio 處理框架 |
主網(wǎng)絡(luò)接口 | GMAC0 | 完整的 TCP/IP 協(xié)議棧、網(wǎng)絡(luò)工具鏈 |
外設(shè)類型 | 共享方式 | 說明 |
網(wǎng)絡(luò)接口 | 虛擬網(wǎng)卡 (veth) | RTT 通過 RPMSG 接入 Linux 網(wǎng)絡(luò)棧 |
文件系統(tǒng) | 文件共享服務(wù) | 通過共享內(nèi)存跨系統(tǒng)訪問文件 |
完整的外設(shè)遷移需要在 board.dts中完成三個(gè)關(guān)鍵配置:
通過 status 屬性將 I2C0 聲明為 RT-Thread 管理:

將 I2C0 的控制器時(shí)鐘加入 rockchip_amp 時(shí)鐘列表:

編譯設(shè)備樹并燒錄后,在 RT-Thread Shell 中驗(yàn)證設(shè)備歸屬:

輸出結(jié)果中 i2c0 已注冊在 RT-Thread 系統(tǒng)中,即為遷移成功。
AMP 架構(gòu)的外設(shè)隔離體系為工業(yè)嵌入式系統(tǒng)提供了堅(jiān)實(shí)的運(yùn)行基礎(chǔ):
四層隔離機(jī)制(CPU/中斷/時(shí)鐘/內(nèi)存)從物理層面保證了外設(shè)的可靠歸屬
清晰的劃分指南幫助開發(fā)者快速確定每個(gè)外設(shè)的最優(yōu)分配方案
靈活的配置方式通過設(shè)備樹即可動態(tài)調(diào)整外設(shè)歸屬,無需修改硬件
睿擎工業(yè)開發(fā)平臺完整實(shí)現(xiàn)了上述所有機(jī)制,并提供了豐富的開發(fā)工具鏈和示例工程,幫助開發(fā)者快速構(gòu)建高效、可靠的 AMP 混合部署應(yīng)用。
為了幫助開發(fā)者更好地掌握 AMP 外設(shè)隔離架構(gòu)的實(shí)戰(zhàn)技巧,我們將于 8 月 5 日 20:00(星期三) 舉辦線上技術(shù)直播。
AMP 架構(gòu)實(shí)戰(zhàn):外設(shè)隔離與劃分全流程解析
四大隔離機(jī)制深度剖析
I2C 遷移完整配置流程
設(shè)備樹配置、時(shí)鐘/中斷分配實(shí)戰(zhàn)
雙系統(tǒng)數(shù)據(jù)交互與網(wǎng)絡(luò)互通
在線解答開發(fā)中的疑難問題
報(bào)名方式:點(diǎn)擊下方鏈接
完整的 AMP 示例工程源碼
外設(shè)劃分配置參考手冊
設(shè)備樹配置模板
直播專屬技術(shù)交流群入群資格
8月5日 我們直播間見!


