1 | ;
|
---|
2 | ; メモリ配置定義
|
---|
3 | ; ・コンパイラ言語仕様の「セグメント名一覧」を参考にコンパイラ生成のセグメントを定義
|
---|
4 | ; ・先頭に"@@"が付くセグメント名はコンパイラが生成.それ以外は独自定義
|
---|
5 | ; ・ブートフラッシュの再リンク機能は使用せず,フラッシュメモリ領域定義は省略
|
---|
6 | ; ・@@VECTnn の定義もここでは省略
|
---|
7 | ;
|
---|
8 |
|
---|
9 | ;
|
---|
10 | ; MEMORY
|
---|
11 | ;
|
---|
12 | ; @@CODE の配置アドレスを安定させるためROM領域を2つに分割する
|
---|
13 | MEMORY ROM_HEAD : ( 00000000H, 000000d8H ) / REGULAR
|
---|
14 | MEMORY ROM : ( 000000d8H, 0000ff28H ) / REGULAR
|
---|
15 | MEMORY RAM : ( 000fef00H, 00001000H ) / REGULAR
|
---|
16 |
|
---|
17 | ;
|
---|
18 | ; SEGMENT(ROM_HEAD)
|
---|
19 | ;
|
---|
20 | ; ベクタテーブル領域(00000H--0007FH,128バイト, ただし02h-03hには配置しない)
|
---|
21 | MERGE VECTOR : AT ( 00000000H ) = ROM_HEAD / REGULAR
|
---|
22 |
|
---|
23 | ; callt関数のテーブル用セグメント( 00080H-000BFH, 64バイト), CALLT0属性
|
---|
24 | MERGE @@CALT : AT ( 00000080H ) = ROM_HEAD / REGULAR
|
---|
25 |
|
---|
26 | ; オプションバイト領域(C0H--C2H, C3H)はセグメント定義できない
|
---|
27 |
|
---|
28 | ; セキュリティID(C4H--CDH)
|
---|
29 | MERGE SECID : AT ( 000000c4H ) = ROM_HEAD / REGULAR
|
---|
30 |
|
---|
31 | ; オンチップデバッグ機能の使用領域(CEH--D7H)
|
---|
32 | ;MERGE OCDWORK : AT ( 000000ceH ) = ROM_HEAD / REGULAR
|
---|
33 |
|
---|
34 | ;
|
---|
35 | ; SEGMENT(ROM)
|
---|
36 | ;
|
---|
37 | MERGE @@CODE : = ROM / REGULAR ; コード部用セグメント(near), BASE属性
|
---|
38 | MERGE @@BASE : = ROM / REGULAR ; callt関数・割り込み関数用セグメント, BASE属性
|
---|
39 | MERGE @@LCODE : = ROM / REGULAR ; ライブラリ・コード部用セグメント(near), BASE属性
|
---|
40 | MERGE @@LBASE : = ROM / REGULAR ; ライブラリ・callt関数用セグメント, BASE属性
|
---|
41 | ; この行を有効にするとなぜかMIRRORP属性が失われるため,とりあえずコメントとする
|
---|
42 | ;MERGE @@CNST : = ROM / REGULAR ; ROMデータ(near), MIRRORP属性
|
---|
43 | MERGE @@R_INIT : = ROM / REGULAR ; near初期化データ用セグメント(初期値あり), UNIT64KP属性
|
---|
44 | MERGE @@R_INIS : = ROM / REGULAR ; 初期化データ用セグメント(初期値ありsreg変数), UNIT64KP属性
|
---|
45 |
|
---|
46 | MERGE @@CODEL : = ROM / REGULAR ; コード部用セグメント(far)
|
---|
47 | MERGE @@LCODEL : = ROM / REGULAR ; ライブラリ・コード部用セグメント(far)
|
---|
48 | MERGE @@CNSTL : = ROM / REGULAR ; ROMデータ(far), PAGE64KP属性
|
---|
49 | MERGE @@RLINIT : = ROM / REGULAR ; far初期化データ用セグメント(初期値あり), UNIT64KP属性
|
---|
50 |
|
---|
51 | ;
|
---|
52 | ; SEGMENT(RAM)
|
---|
53 | ;
|
---|
54 | MERGE @@BITS : = RAM / REGULAR ; boolean型変数, bit型変数用セグメント, BSEG領域
|
---|
55 |
|
---|
56 | MERGE @@INIT : = RAM / REGULAR ; データ領域用セグメント(初期値あり, near配置), BASEP属性
|
---|
57 | MERGE @@DATA : = RAM / REGULAR ; データ領域用セグメント(初期値なし, near配置), BASEP属性
|
---|
58 | MERGE @@INIS : = RAM / REGULAR ; データ領域用セグメント(初期値あり sreg 変数), SADDRP属性
|
---|
59 | MERGE @@DATS : = RAM / REGULAR ; データ領域用セグメント(初期値なし sreg 変数), SADDRP属性
|
---|
60 | MERGE @@INITL : = RAM / REGULAR ; データ領域用セグメント(初期値あり, far配置), UNIT64KP属性
|
---|
61 | MERGE @@DATAL : = RAM / REGULAR ; データ領域用セグメント(初期値なし, far配置), UNIT64KP属性
|
---|
62 |
|
---|
63 | MERGE @@CODER : = RAM / REGULAR ; RAM配置 コード部用セグメント
|
---|
64 | MERGE @@LCODER : = RAM / REGULAR ; RAM配置 ライブラリ・コード用セグメント
|
---|
65 | MERGE @@CNSTR : = RAM / REGULAR ; RAM配置 ROMデータ用セグメント(near), MIRRORP または UNIT64KP属性
|
---|
66 | MERGE @@CNSTLR : = RAM / REGULAR ; RAM配置 ROMデータ用セグメント(far), PAGE64KP属性
|
---|