天天看點

常見的CPU通路引起的記憶體保護問題為什麼隻用event_122上報 - 2

對于TIC66x DSP,每個corePac的L1D記憶體(包括cache與SRAM)大小為32k位元組。L1D記憶體控制器把32k位元組的記憶體分為16個頁,每頁大小為2k位元組,與之對應的是L1D記憶體控制器實作了16個寄存器(L1DMPPA16~31,見下圖)用于一對一定義16個頁的通路權限(設定是否允許目前CPU以及哪些外設通路和設定通路權限)。

而在TI C66x DSP的corePac文檔中有這一段話:L1DMPPA0 through L1DMPPA15 memory protection pages/registers do not exist in C66x CorePac. Reading from or writing to these registers

triggers a DSP memory protection fault from L1D memory controller.

即L1DMPPA0~15寄存器是不存在的,使用者不能通路這些寄存器, 任何TI文檔中也沒有講解這16個寄存器的作用,個人了解這16個寄存器已經對空位址與reserved位址進行了保護,這些保護是硬體寫死的,使用者不可設定,是以L1D記憶體控制器才可以檢測到CPU對空位址與reserved位址的非法通路,但有待TI專家對此種猜想的确認。

常見的CPU通路引起的記憶體保護問題為什麼隻用event_122上報 - 2