Fórum Root.cz

Hlavní témata => Hardware => Téma založeno: mhi 18. 10. 2021, 17:19:54

Název: ESP32 MMU/MPU
Přispěvatel: mhi 18. 10. 2021, 17:19:54
Potreboval bych na ESP32 SoC v zakladni verzi (LX6), pripadne -S2 (LX7) a -C3 (Risc-V) udelat detekci zapisu do nekolika stranek (pametovych rozsahu). Jsem obeznamen s tim, jak funguje ARM MPU, Tensilica/Cadence LX6/LX7 by mely mit neco podobneho. V datasheetu je to nejak popsane, ale moc moudry z toho nejsem. RISC-V by taky neco mel mit, ale opet me zkusenosti jsou nulove. A navic si nejsem jist jak je to u toho ESP, protoze na foru pisou ze "neni otestovano"...

Tusite tu nekdo jak se LX6/7 MMU(MPU) da pouzit na detekci toho zapisu? Predstava je, ze budu mit pro N stranek definovane radky v MPU, ktere povoli cteni, ale faultnou pri zapisu. Ve fault handleru pak udelam pres tyto data invalidate a povolim zapis.

A jeste navic ... potrebuju aby to u ESP32-WROVER chodilo nad externi PSRAM :). To uz jsem z datasheetu nevycetl vubec, jestli je takhle mozne.
Název: Re:ESP32 MMU/MPU
Přispěvatel: RDa 18. 10. 2021, 17:37:39
Ja ti nevim, ale do TRM jsi se dival?

https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf
na strane 600 to zacina..

V kratkosti: zvolit granularitu (prilis mala znamena managed jen spodni cast pameti), pak nastavit 16 bitu masky kdy to ma udelat catch, a pro jaky PID se to aktivuje (asi smesna snaha o privilege level). V handleru se bud zmeni PID (nebo to udela interrupt controller sam, takze bys tim "privilegovanym" procesem mel byt schopen delat pristupy bez double-faultu.

Ale nikde tam nepisou, co za preruseni to dela.. find na MPU nachazi   APP_MMU_IA_INT /  APP_MPU_IA_INT ... a ani jak udelat restart operace. Podle me to udela jen indikaci zakazaneho pristupu a tim to hasne.. neni to jako u x86 s restartem instrukce.
Název: Re:ESP32 MMU/MPU
Přispěvatel: mhi 18. 10. 2021, 18:33:57
Do "TRM" jsem koukal. Ja tam tech nejasnosti vidim celou radu, popravde jich je spis vic nez tech jasnych veci :).