summaryrefslogblamecommitdiff
path: root/doc/memlayout.txt
blob: af760ca2e5ed4d839819471f0a2b09654c4f7472 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
                                                 
 
                                
                                                                          









                                                                                                        
This is the memory layout of a standard process :

This can be changed by the app :
- 0x00100000 to 0x20000000 		Application's code and static data
- 0x20000000 to 0xB0000000		Application's heap
- 0xB0000000 to 0xBF000000		Stacks (automatically allocated by kernel, size 0x8000=32k each)
This is necessary :
- 0xC0000000 to 0xFFFFFFFF		Kernel code and heap

The beginning of the kernel code at 0xC0000000 corresponds to the linker-defined
symbol k_highhalf_addr, that is used at as many places as possible.
If this address was to be changed, it would have to be changed in two places :
- link.ld, change address of k_highhalf_addr;
- loader_.asm, update the temporary GDT structure data.