M0 核心卡在 SROM API 中

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager
您好,我正在使用 Traveo T2G CYT2B7,並且剛剛開始在 2 個內核(M4 和 M0p)之間開發通信程序。
我參考了英飛凌(賽普拉斯)提供的 SDL 7.7.0 示例代碼中的 IPC 管道。
簡而言之,在我的 proejct 中,M4 核心是一個客戶端,M0p 核心是一個服務器,它們與同步模式進行通信。
M4 發送消息包並等待,直到 M0p 的操作完成。
該數據包位於共享內存區域,該區域位於由 M4 和 M0p 共享的 RAM 中。
並且該數據包包括一個帶有返回值的變量,該變量將被設置為 M0p 的操作結果。
 
1.M4/M0p 初始化 IPC 管道與循環 ()。
使用的資源:IPC 通道索引(6/7),IPC 中斷指數(6/7),CPU 中斷(CPU 中斷)
2.M4 請求消息包與 CY_IPC_ 管道發送消息(),並等待
3.M0p 接收消息並通過 Cy_IPC_pipe_POPE_ 註冊回調執行註冊的回調函數()
4.M0p 在消息包中設置其結果,並釋放 IPC 通道
5.M4 發布 IPC 通道後檢查消息包中的結果
 
 
我的問題是,如果 M0p 核心調用 SROM API 通過 C_FlashSecreRase(),在步驟 3 中執行註冊的回調函數時,M0P 卡在 Cr_Srom_Clapi()中。
 
yeon_0-1695264217108.png

 

它看起來像 SROM API 不會釋放系統化結構並停止。

在 t32 與 IPC 相關的周邊設備信息如下。

yeon_1-1695264295011.png

 

CPU 的優先級和 CPUINDDX1_IRQN 的優先級設置在準備器的結構()中,因為我沒有改變 SDL 中的啟動。
有什麼要設置,我錯過了?

請幫幫我。
提前謝謝你。

2 回應
Translation_Bot
Community Manager
Community Manager
Community Manager

@yeon

您CAN告訴我註冊的回呼函數中正在做什麼嗎?


根據我的理解,CM0+ 正在訪問 RAM 中的共享區域,SROM API 調用是在代碼閃存區域或工作閃存區域中完成的。 (如果我的解釋有任何問題,請糾正我)


CAN分享一下您在執行系統呼叫時遇到的狀態代碼嗎?

您CAN嘗試在不執行兩個核心之間的通訊程式的情況下執行系統呼叫嗎?(希望確保準備系統呼叫基礎設施時沒有問題)

您CAN分享 cm0plus 和 cm4 程式碼文件,以便我嘗試了解其行為嗎?

最好的問候,

濕婆賽

0
Translation_Bot
Community Manager
Community Manager
Community Manager

因不活動而被鎖定

0