/*-------------------------------------------------*/ /* 3069monitor.x /* H8-3069F 日立モニタ用リンカスクリプト /* @since 15May2004 fenrir /*-------------------------------------------------*/ OUTPUT_FORMAT("elf32-h8300") OUTPUT_ARCH(h8300:h8300h) ENTRY("_start") /*---- メモリマップ ----*/ MEMORY { /* vectors(r) : o = 0x400000, l = 0x000100 rom(r) : o = 0x400100, l = 0x010000 ram(rwx) : o = 0x410000, l = 0x1e0000 stack(rwx) : o = 0x5ffffc, l = 0x000004 */ vectors(r) : o = 0xffc040, l = 0x000100 rom(r) : o = 0x400000, l = 0x080000 ram(rwx) : o = 0x480000, l = 0x180000 stack(rwx) : o = 0x5ffffc, l = 0x000004 } /*---- 各セクション定義 ----*/ SECTIONS { /*リセットベクタと割り込みベクタ等の設定*/ .vectors : { LONG(ABSOLUTE(_start)) /* 0 リセット */ LONG(ABSOLUTE(_start)) /* 1 システム予約1 */ LONG(ABSOLUTE(_start)) /* 2 システム予約2 */ LONG(ABSOLUTE(_start)) /* 3 システム予約3 */ LONG(ABSOLUTE(_start)) /* 4 システム予約4 */ LONG(ABSOLUTE(_start)) /* 5 システム予約5 */ LONG(ABSOLUTE(_start)) /* 6 システム予約6 */ LONG(DEFINED(_int_nmi) ? ABSOLUTE(_int_nmi) : ABSOLUTE(_start)) /* 7 NMI(外部割込み) */ LONG(DEFINED(_int_trap0) ? ABSOLUTE(_int_trap0) : ABSOLUTE(_start)) /* 8 TRAPA#1 */ LONG(DEFINED(_int_trap1) ? ABSOLUTE(_int_trap1) : ABSOLUTE(_start)) /* 9 TRAPA#2 */ LONG(DEFINED(_int_trap2) ? ABSOLUTE(_int_trap2) : ABSOLUTE(_start)) /* 10 TRAPA#3 */ LONG(DEFINED(_int_trap3) ? ABSOLUTE(_int_trap3) : ABSOLUTE(_start)) /* 11 TRAPA#4 */ LONG(DEFINED(_int_irq0) ? ABSOLUTE(_int_irq0) : ABSOLUTE(_start)) /* 12 IRQ0 */ LONG(DEFINED(_int_irq1) ? ABSOLUTE(_int_irq1) : ABSOLUTE(_start)) /* 13 IRQ1 */ LONG(DEFINED(_int_irq2) ? ABSOLUTE(_int_irq2) : ABSOLUTE(_start)) /* 14 IRQ2 */ LONG(DEFINED(_int_irq3) ? ABSOLUTE(_int_irq3) : ABSOLUTE(_start)) /* 15 IRQ3 */ LONG(DEFINED(_int_irq4) ? ABSOLUTE(_int_irq4) : ABSOLUTE(_start)) /* 16 IRQ4 */ LONG(DEFINED(_int_irq5) ? ABSOLUTE(_int_irq5) : ABSOLUTE(_start)) /* 17 IRQ5 */ LONG(ABSOLUTE(_start)) /* 18 システム予約 */ LONG(ABSOLUTE(_start)) /* 19 システム予約 */ LONG(DEFINED(_int_wovi) ? ABSOLUTE(_int_wovi) : ABSOLUTE(_start)) /* 20 WOVI(インターバルタイマ) */ LONG(DEFINED(_int_cmi) ? ABSOLUTE(_int_cmi) : ABSOLUTE(_start)) /* 21 CMI(コンペアマッチ) */ LONG(ABSOLUTE(_start)) /* 22 システム予約 */ LONG(DEFINED(_int_adi) ? ABSOLUTE(_int_adi) : ABSOLUTE(_start)) /* 23 AD変換終了 */ LONG(DEFINED(_int_imia0) ? ABSOLUTE(_int_imia0) : ABSOLUTE(_start)) /* 24 IMIA0 */ LONG(DEFINED(_int_imib0) ? ABSOLUTE(_int_imib0) : ABSOLUTE(_start)) /* 25 IMIB0 */ LONG(DEFINED(_int_ovi0) ? ABSOLUTE(_int_ovi0) : ABSOLUTE(_start)) /* 26 OVI0 */ LONG(ABSOLUTE(_start)) /* 27 システム予約 */ LONG(DEFINED(_int_imia1) ? ABSOLUTE(_int_imia1) : ABSOLUTE(_start)) /* 28 IMIA1 */ LONG(DEFINED(_int_imib1) ? ABSOLUTE(_int_imib1) : ABSOLUTE(_start)) /* 29 IMIB1 */ LONG(DEFINED(_int_ovi1) ? ABSOLUTE(_int_ovi1) : ABSOLUTE(_start)) /* 30 OVI1 */ LONG(ABSOLUTE(_start)) /* 31 システム予約 */ LONG(DEFINED(_int_imib2) ? ABSOLUTE(_int_imib2) : ABSOLUTE(_start)) /* 32 IMIA2 */ LONG(DEFINED(_int_imib2) ? ABSOLUTE(_int_imib2) : ABSOLUTE(_start)) /* 33 IMIB2 */ LONG(DEFINED(_int_ovi2) ? ABSOLUTE(_int_ovi2) : ABSOLUTE(_start)) /* 34 OVI2 */ LONG(ABSOLUTE(_start)) /* 35 システム予約 */ LONG(DEFINED(_int_cmia0) ? ABSOLUTE(_int_cmia0) : ABSOLUTE(_start)) /* 36 CMIA0 */ LONG(DEFINED(_int_cmib0) ? ABSOLUTE(_int_cmib0) : ABSOLUTE(_start)) /* 37 CMIB0 */ LONG(DEFINED(_int_cmia1b1) ? ABSOLUTE(_int_cmia1b1) : ABSOLUTE(_start)) /* 38 CMIA1/CMIB1 */ LONG(DEFINED(_int_tovi01) ? ABSOLUTE(_int_tovi01) : ABSOLUTE(_start)) /* 39 TOVI0/TOVI1 */ LONG(DEFINED(_int_cmia2) ? ABSOLUTE(_int_cmia2) : ABSOLUTE(_start)) /* 40 CMIA2 */ LONG(DEFINED(_int_cmib2) ? ABSOLUTE(_int_cmib2) : ABSOLUTE(_start)) /* 41 CMIB2 */ LONG(DEFINED(_int_cmia3b3) ? ABSOLUTE(_int_cmia3b3) : ABSOLUTE(_start)) /* 42 CMIA3/CMIB3 */ LONG(DEFINED(_int_tovi23) ? ABSOLUTE(_int_tovi23) : ABSOLUTE(_start)) /* 43 TOVI2/TOVI3 */ LONG(DEFINED(_int_dend0a) ? ABSOLUTE(_int_dend0a) : ABSOLUTE(_start)) /* 44 DEND0A */ LONG(DEFINED(_int_dend0b) ? ABSOLUTE(_int_dend0b) : ABSOLUTE(_start)) /* 45 DEND0B */ LONG(DEFINED(_int_dend1a) ? ABSOLUTE(_int_dend1a) : ABSOLUTE(_start)) /* 46 DEND1A */ LONG(DEFINED(_int_dend1b) ? ABSOLUTE(_int_dend1b) : ABSOLUTE(_start)) /* 47 DEND1B */ LONG(ABSOLUTE(_start)) /* 48 システム予約 */ LONG(ABSOLUTE(_start)) /* 49 システム予約 */ LONG(ABSOLUTE(_start)) /* 50 システム予約 */ LONG(ABSOLUTE(_start)) /* 51 システム予約 */ LONG(DEFINED(_int_eri0) ? ABSOLUTE(_int_eri0) : ABSOLUTE(_start)) /* 52 ERI0(受信エラー 0) */ LONG(DEFINED(_int_rxi0) ? ABSOLUTE(_int_rxi0) : ABSOLUTE(_start)) /* 53 RXI0(受信データフル 0) */ LONG(DEFINED(_int_txi0) ? ABSOLUTE(_int_txi0) : ABSOLUTE(_start)) /* 54 TXI0(送信データエンプティ 0) */ LONG(DEFINED(_int_tei0) ? ABSOLUTE(_int_tei0) : ABSOLUTE(_start)) /* 55 TEI0(送信終了 0) */ LONG(DEFINED(_int_eri1) ? ABSOLUTE(_int_eri1) : ABSOLUTE(_start)) /* 56 ERI1(受信エラー 1) */ LONG(DEFINED(_int_rxi1) ? ABSOLUTE(_int_rxi1) : ABSOLUTE(_start)) /* 57 RXI1(受信データフル 1) */ LONG(DEFINED(_int_txi1) ? ABSOLUTE(_int_txi1) : ABSOLUTE(_start)) /* 58 TXI1(送信データエンプティ 1) */ LONG(DEFINED(_int_tei1) ? ABSOLUTE(_int_tei1) : ABSOLUTE(_start)) /* 59 TEI1(送信終了 1) */ LONG(DEFINED(_int_eri2) ? ABSOLUTE(_int_eri2) : ABSOLUTE(_start)) /* 60 ERI2(受信エラー 2) */ LONG(DEFINED(_int_rxi2) ? ABSOLUTE(_int_rxi2) : ABSOLUTE(_start)) /* 61 RXI2(受信データフル 2) */ LONG(DEFINED(_int_txi2) ? ABSOLUTE(_int_txi2) : ABSOLUTE(_start)) /* 62 TXI2(送信データエンプティ 2) */ LONG(DEFINED(_int_tei2) ? ABSOLUTE(_int_tei2) : ABSOLUTE(_start)) /* 63 TEI2(送信終了 2) */ } > vectors /* プログラム領域&参照のみのデータ領域 */ .text : { _text_begin = . ; *(.text) /* プログラム領域 */ *(.rodata) /* コンスタント領域(read only) */ *(.rodata.*) *(.gnu.linkonce.r.*) *(.gnu.linkonce.t.*) _text_end = . ; } > rom .tors : { _ctors_begin = . ; *(.ctors) _ctors_end = . ; _dtors_begin = . ; *(.dtors) _dtors_end = . ; } > rom /* 初期値を持つグローバル変数,スタティック変数領域 */ .data : AT(ADDR(.tors) + SIZEOF(.tors)){ _data_begin = . ; *(.strings) /* 文字列 */ *(.data) *(.tiny) _data_end = . ; } > ram /* 初期値を持たないグローバル変数,スタティック変数領域 */ .bss : { _bss_begin = . ; *(.bss) *(COMMON) _bss_end = . ; _end = . ; } > ram /* スタック領域 */ .stack : { _initial_stack_point = . +4 ; _stack = . ; *(.stack) } > stack .eight : { *(.eight) } > ram /* デバックセクション */ /* Stabs */ .stab 0 (NOLOAD) : { *(.stab) } .stabstr 0 (NOLOAD) : { *(.stabstr) } .stab.excl 0 (NOLOAD) : { *(.stab.excl) } .stab.exclstr 0 (NOLOAD) : { *(.stab.exclstr) } .stab.index 0 (NOLOAD) : { *(.stab.index) } .stab.indexstr 0 (NOLOAD) : { *(.stab.indexstr) } .comment 0 (NOLOAD) : { *(.comment) } /* DWARF 1 */ .debug 0 (NOLOAD) : { *(.debug) } .line 0 (NOLOAD) : { *(.line) } /* GNU DWARF 1 拡張 */ .debug_srcinfo 0 (NOLOAD) : { *(.debug_srcinfo) } .debug_sfnames 0 (NOLOAD) : { *(.debug_sfnames) } /* DWARF 1.1 & DWARF 2 */ .debug_aranges 0 (NOLOAD) : { *(.debug_aranges) } .debug_pubnames 0 (NOLOAD) : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 (NOLOAD) : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 (NOLOAD) : { *(.debug_abbrev) } .debug_line 0 (NOLOAD) : { *(.debug_line) } .debug_frame 0 (NOLOAD) : { *(.debug_frame) } .debug_str 0 (NOLOAD) : { *(.debug_str) } .debug_loc 0 (NOLOAD) : { *(.debug_loc) } }