• 資料介紹
    • 引言
    • 如何增加 RPMsg buffer size
    • 如何將通道數(shù)增加為 64,且通道 size 改為 256byte
    • RPMSG 通信死鎖案例解析
    • No more buffer in queue
  • 資料預(yù)覽
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

LAT6020 STM32MP15X核間通信常見問題解析

03/19 10:50
291
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

LAT6020 STM32MP15X核間通信常見問題解析

562.89 KB

引言

STM32 STM32MP15X 是基于 CM4+CA7 的異構(gòu) SOC,CM4 側(cè)用于實(shí)時(shí)任務(wù)的處理,CA7 側(cè)運(yùn)行 Linux,負(fù)責(zé)更加復(fù)雜的計(jì)算和任務(wù)處理,CM4 側(cè)采集到的數(shù)據(jù)通常會(huì)給到 CA7 去做處理,因此必然需要核間通信的機(jī)制,核間通信需要硬件軟件的支持

硬件:

1)IPCC: 負(fù)責(zé)產(chǎn)生中斷信號(hào)

2)共享內(nèi)存:負(fù)責(zé)數(shù)據(jù)交互

軟件:

1)CM4 側(cè) OPenAMP

2)CA7 Linux 側(cè) RPMsg framework(Mailbox,Remoteproc,RPMsg,VirtIO)

對(duì)于核間通信的基本原理請(qǐng)閱讀相關(guān) wiki 站點(diǎn)文檔。

https://wiki.stmicroelectronics.cn/stm32mpu/wiki/Exchanging_buffers_with_the_coprocessor

https://wiki.stmicroelectronics.cn/stm32mpu/wiki/Linux_RPMsg_framework_overview

本文將結(jié)合幾個(gè)實(shí)際案例討論核間通信可能遇到的問題

  • 如何增加 RPMsg buffer size
  • 如何增加 RPMsg 通道數(shù)
  • RPMsg 通信過程出現(xiàn)死鎖
  • 雙核通信過程出現(xiàn) No more buffer in queue,通信終止

如何增加 RPMsg buffer size

如何將通道數(shù)增加為 64,且通道 size 改為 256byte

通過前文的理解,我們已經(jīng)知道如何計(jì)算 vdev0buffer 和 vdev0vring 的 size 了, 根據(jù)通道vdev size 的計(jì)算公式 vdev0buffer_size = buffer_size * number _of buffer * 2可計(jì)算所需的 vdev0buffer_size=256 * 64*2=32768byte=0x8000Vring size:16 通道,vring size 為 438byte, 那么可得 64 通道時(shí)的 vring_size 約為1752byte=0x6db,由于 reserve memory 按照 4K page size(0x1000)對(duì)齊,且 64 通道數(shù)的情況下所需要的vring_size 0x6db 仍然小于 0x1000,vring size 的大小可保持不變。

RPMSG 通信死鎖案例解析

問題現(xiàn)象是 RPMSG 通信過程中出現(xiàn)死鎖,導(dǎo)致通信中斷,系統(tǒng)重啟。

No more buffer in queue

該問題表現(xiàn)為在 RPMSG 正常通信一段時(shí)間后,CA7 linux 內(nèi)核不停打印日志 No more bufferin queue,通信過程中斷,此時(shí)即使重新加載 CM4 仍然不能恢復(fù),只能重啟系統(tǒng),該問題僅在OPENSTLINUX_V1.0 版本,即對(duì)應(yīng)的內(nèi)核 v4.19 版本中出現(xiàn),在后續(xù)版本中已修復(fù)。

資料預(yù)覽

相關(guān)推薦

  • 艾為芯助力新一代ThinkPad小紅點(diǎn)方案,帶來高效便捷操控體驗(yàn)
    方案
    961
    02/12 09:46
  • 帶攝像頭的AI智能眼鏡_AI大模型落地的最好載體
  • 機(jī)智云天貓語(yǔ)音識(shí)別解決方案
  • 適用于電源備份應(yīng)用的汽車電容器充電器參考設(shè)計(jì)
  • QN902x 數(shù)據(jù)手冊(cè)
    資料
    1596
    2023/11/15
  • STCOM數(shù)據(jù)手冊(cè)-電力線通訊和應(yīng)用SoC