Line 32: |
Line 32: |
| | FCRAM | | | FCRAM |
| |} | | |} |
| + | |
| + | =ARM11 User-land memory regions= |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Virtual Address |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x00100000 / 0x14000000 |
| + | | |
| + | | The [[ExeFS]]:/.code is usually loaded here, most executables are loaded to 0x00100000. |
| + | |- |
| + | | 0x08000000 |
| + | | |
| + | | Heap mapped by [[SVC|ControlMemory]] |
| + | |- |
| + | | 0x1EC00000 |
| + | | |
| + | | IO registers, the mapped IO pages which each process can access is specified in the [[NCCH#CXI|CXI]] exheader.(Applications normally don't have access to registers in this range) |
| + | |} |
| + | |
| + | All executable pages are read-only, and data pages have the execute-never permission set. Normally .text from the loaded ExeFS:/.code is the only mapped executable memory. Executable [[RO Services|CROs]] can be loaded into memory, once loaded the CRO .text section memory page permissions are changed via [[SVC|ControlProcessMemory]] from RW- to R-X. |