@@ -18,13 +18,14 @@ func createLdScript(w *Wave) (io.Reader, error) {
1818 t := `
1919ENTRY(_start)
2020MEMORY {
21- ram (RX) : ORIGIN = 0xFFFFFFFF80000400, LENGTH = 0x77FFFBFF
21+ boot (RX) : ORIGIN = 0xFFFFFFFF80000400, LENGTH = 0x50
22+ ram (RWX) : ORIGIN = 0xFFFFFFFF80000450, LENGTH = 0x77FFFBAF
2223}
2324SECTIONS {
2425 ..generatedStartEntry 0xFFFFFFFF80000400 :
2526 {
2627 a.out (.text)
27- } > ram
28+ } > boot
2829 _RomSize = 0x1050;
2930 _RomStart = _RomSize;
3031 {{range .ObjectSegments -}}
@@ -65,7 +66,7 @@ SECTIONS {
6566 . = ALIGN(0x10);
6667 _{{.Name}}SegmentDataEnd = .;
6768 } > ram
68- _RomSize += ( _{{.Name}}SegmentDataEnd - _ {{.Name}}SegmentTextStart );
69+ _RomSize += SIZEOF(.. {{.Name}});
6970 _{{.Name}}SegmentRomEnd = _RomSize;
7071
7172 ..{{.Name}}.bss ADDR(..{{.Name}}) + SIZEOF(..{{.Name}}) (NOLOAD) :
@@ -88,8 +89,8 @@ SECTIONS {
8889 _{{.Name}}SegmentBssEnd = .;
8990 _{{.Name}}SegmentEnd = .;
9091 } > ram
91- _RomSize += ( _{{.Name}}SegmentBssEnd - _ {{.Name}}SegmentBssStart );
92- _{{.Name}}SegmentBssSize = ( _{{.Name}}SegmentBssEnd - _ {{.Name}}SegmentBssStart );
92+ _RomSize += SIZEOF(.. {{.Name}}.bss );
93+ _{{.Name}}SegmentBssSize = SIZEOF( .. {{.Name}}.bss );
9394 {{ end }}
9495 {{range .RawSegments -}}
9596 _{{.Name}}SegmentRomStart = _RomSize;
@@ -101,7 +102,7 @@ SECTIONS {
101102 {{end}}
102103 _{{.Name}}SegmentDataEnd = .;
103104 } > ram
104- _RomSize += ( _{{.Name}}SegmentDataEnd - _ {{.Name}}SegmentDataStart );
105+ _RomSize += SIZEOF(.. {{.Name}});
105106 _{{.Name}}SegmentRomEnd = _RomSize;
106107 {{ end }}
107108 /DISCARD/ :
0 commit comments