Line 602: |
Line 602: |
| | | |
| == FCRAM memory-regions layout == | | == FCRAM memory-regions layout == |
| + | FCRAM is partitioned into three regions of memory (APPLICATION, SYSTEM, and BASE). Most applications can only allocate memory from one of these regions (which is encoded in the [[NCCH/Extended_Header#ARM11_Kernel_Flags|process kernel flags]]). There is a fixed set of possible size of each memory region, determined by the APPMEMTYPE value in [[Configuration_Memory#APPMEMTYPE|configuration memory]] (which in turn is set up according to the [[FIRM#FIRM_Launch_Parameters|firmware launch parameters]]). |
| + | |
| + | Support for APPMEMTYPEs 6 and 7 was implemented in [[NS]] with [[8.0.0-18]]. These configurations are only supported in the [[New_3DS]] ARM11-kernel, and are in fact the only ones supported there at all. Applications only get access to the larger memory regions when this is specified in their [[NCCH/Extended Header#New3DS System Mode|extended header]]. |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
− | ! [[Configuration_Memory#APPMEMTYPE|Configmem-APPMEMTYPE]] Value | + | ! APPMEMTYPE Value |
| ! Base address relative to FCRAM+0, for APPLICATION mem-region | | ! Base address relative to FCRAM+0, for APPLICATION mem-region |
| ! Region size, for APPLICATION mem-region | | ! Region size, for APPLICATION mem-region |
Line 669: |
Line 673: |
| | | |
| The SYSTEM mem-region size is calculated with: size = FCRAMTOTALSIZE - (APPLICATION_MEMREGIONSIZE + BASE_MEMREGIONSIZE). | | The SYSTEM mem-region size is calculated with: size = FCRAMTOTALSIZE - (APPLICATION_MEMREGIONSIZE + BASE_MEMREGIONSIZE). |
− |
| |
− | Support for type6/7 was [[NCCH/Extended Header|implemented]] in [[NS]] with [[8.0.0-18]], these are only supported in the [[New_3DS]] ARM11-kernel not the regular 3DS kernel. These two types are the only ones supported by the New3DS kernel.
| |
| | | |
| All memory allocated by the kernel itself for kernel use is located under BASE. Most system-modules run under the BASE memregion too. | | All memory allocated by the kernel itself for kernel use is located under BASE. Most system-modules run under the BASE memregion too. |