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

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

我正在努力在 Aurix TC39x 上配置總線 MPU(又名安全保護系統)。 作為一個乾運行,我配置了具有 0x70100000 的下部和上部地址的 SPR_SPR_SPR_SPROT_RGNUA0

我的問題:

有沒有辦法理解如何找出問題是什麼? 如果您 CAN 提供一些有關如何配置安全保護系統的背景信息,那就太好了(這方面有什麼先決條件嗎?例如:應該啟用 SYSCON 的普羅特嗎?...等等)

 

背景資訊:

我使用 RTOS 並在主管模式下從 core0 和 core1 上的任務執行所有配置並讀取操作,而不啟用內存保護。

@NeMa_4793301 

1 解決方案
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

保護機制最多支援八個記憶體區域。 正如我所提到的,默認配置允許所有內存區域,並允許從所有 BUS 主機訪問。 如果您只是配置一個區域,那麼根據其他地區的配置將仍然允許在 0x70100000 到 0x70200000範圍內的訪問。

為了保護單個區域,您需要以這樣的方式配置所有寄存器,使需要保護的受保護範圍內的地址是不允許的任何範圍寄存器。 並不是所有區域都必須始終使用相同的值進行配置。

問候,

普魯德維

在原始文章中檢視解決方案

0
3 回應
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨,感謝您提供的信息,只是為了確保我正確理解了您的聲明,說保護一個區域從 0x70 萬到 0X70200 萬,CPU0_RGN0_LA 到 CPU0_SPLA 需要配置為需要使用 0x70100000 和 CPU0配置了 0 萬?

如果上述正確,我CAN 知道為什麼我們有 0-7 組 CAN 配置的區域嗎?

謝謝

0
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

保護機制最多支援八個記憶體區域。 正如我所提到的,默認配置允許所有內存區域,並允許從所有 BUS 主機訪問。 如果您只是配置一個區域,那麼根據其他地區的配置將仍然允許在 0x70100000 到 0x70200000範圍內的訪問。

為了保護單個區域,您需要以這樣的方式配置所有寄存器,使需要保護的受保護範圍內的地址是不允許的任何範圍寄存器。 並不是所有區域都必須始終使用相同的值進行配置。

問候,

普魯德維

0
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

要使用 SPROT 保護機制,必須正確配置所有區域,因為這些寄存器的默認 Reset 值允許完整的內存和所有 BUS 主機。為了允許/阻止訪問所有範圍寄存器,CPUx_SPROT_RGNy_LA 和 CPUX _發芽的 RGNy_UA(其 中  x = CPU 編 號, Y = 區域號碼:0 至 7)應該允許它或阻止它。

問候,

普魯德維

0