Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- STACK_SIZE = 32K;
- RAM_BOOT_OFFSET = 0x00100000;
- RAM_ENTRY_OFFSET = 0x80400000;
- MEMORY {
- ROM (rx) : ORIGIN = 0xFFFC0000, LENGTH = 256K
- RAM (rwx) : ORIGIN = 0x80000000, LENGTH = 64M /* Paged virtual RAM */
- RAMP (rwx) : ORIGIN = 0x00000000, LENGTH = 64M /* Physical RAM for boot code */
- }
- SECTIONS {
- .rom_header : {
- KEEP(*(.rom_header))
- } > ROM
- .boot_code (RAM_BOOT_OFFSET) : ALIGN(16) {
- KEEP(*(.boot_code));
- . = ALIGN(4);
- } > RAMP AT> ROM
- .boot_bss (NOLOAD) : ALIGN(16) {
- __boot_bss_start = .;
- KEEP(*(.boot_bss));
- __boot_bss_end = .;
- . = ALIGN(4);
- } > RAMP
- .boot_stack (NOLOAD) : ALIGN(16) {
- __boot_stack_end = .;
- . += STACK_SIZE;
- . = ALIGN(16);
- __boot_stack = .;
- } > RAMP
- .kernel : ALIGN(16) {
- KEEP(*(.kernel))
- } > ROM
- .text (RAM_ENTRY_OFFSET) : ALIGN(16) {
- *(.text)
- *(.text.*)
- . = ALIGN(4);
- } > RAM AT> ROM
- .data : ALIGN(16) {
- *(.data)
- *(.data.*)
- . = ALIGN(4);
- } > RAM AT> ROM
- .rodata : ALIGN(16) {
- *(.rdata)
- *(.rdata.*)
- *(.rodata)
- *(.rodata.*)
- . = ALIGN(4);
- } > RAM AT> ROM
- .bss (NOLOAD) : ALIGN(16) {
- __bss_start = .;
- *(.bss)
- *(.bss.*)
- __bss_end = .;
- . = ALIGN(4);
- }
- .stack (NOLOAD) : ALIGN(16) {
- __stack_end = .;
- . += STACK_SIZE;
- . = ALIGN(16);
- __stack = .;
- }
- .heap (NOLOAD) : ALIGN(16) {
- __heap_start = .;
- . += 1M;
- __heap_end = .;
- }
- /DISCARD/ : {
- *(.comment)
- *(.note*)
- *(.eh_frame*)
- }
- __boot_code_vma = ADDR(.boot_code);
- __boot_code_lma = LOADADDR(.boot_code);
- __boot_code_size = SIZEOF(.boot_code);
- __text_vma = ADDR(.text);
- __text_lma = LOADADDR(.text);
- __text_size = SIZEOF(.text);
- __rodata_vma = ADDR(.rodata);
- __rodata_lma = LOADADDR(.rodata);
- __rodata_size = SIZEOF(.rodata);
- __data_vma = ADDR(.data);
- __data_lma = LOADADDR(.data);
- __data_size = SIZEOF(.data);
- __bss_dsize = SIZEOF(.bss) / 4;
- __boot_bss_dsize = SIZEOF(.boot_bss) / 4;
- }
Add Comment
Please, Sign In to add comment