| OUTPUT_ARCH( "riscv" ) |
| |
| MEMORY |
| { |
| flash (rxl) : ORIGIN = 0x20400000, LENGTH = 128K |
| ram (wx) : ORIGIN = 0x80000000, LENGTH = 16K |
| } |
| |
| SECTIONS |
| { |
| flash_text : { |
| *(.text.entry) |
| *(.text) |
| } >flash |
| |
| /* data segment */ |
| .data : { *(.data) } >ram |
| |
| .sdata : { |
| __global_pointer$ = . + 0x800; |
| *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) |
| *(.srodata*) |
| *(.sdata .sdata.* .gnu.linkonce.s.*) |
| } >ram |
| |
| /* bss segment */ |
| __bss_start = .; |
| .sbss : { |
| *(.sbss .sbss.* .gnu.linkonce.sb.*) |
| *(.scommon) |
| } >ram |
| .bss : { *(.bss) } >ram |
| __bss_end = .; |
| |
| __malloc_start = .; |
| . = . + 512; |
| |
| /* End of uninitalized data segement */ |
| _end = .; |
| } |
| |
| ENTRY(_start) |
| |
| ASSERT(_end < 0x80004000, "program is too large") |