UP:目次 |
BACK:2.1 ソフトウェア構成 |
NEXT:2.3.1 ダウンロードに必要な機材・接続方法 |
2.2 実行形式ファイルの作成(バッチファイルの編集・実行)
画像用、駆動用のユーザプログラムは、コンパイル ・アセンブル・オブジェクトリンクが行われ、SH用の実行形式のファイルを作
成します。これらの実行に必要な処理は、'dm.bat'に記述します。
このバッチファイルは、既存のオブジェクトファイルや実行ファイルの削除、
環境変数の設定や'*.lnk'や'*.cmd'ファイルの作成、コンパイルやリンクの 実行を行う記述がされてます。
以下のバッチファイルの環境設定は、FSF(Free Software Foundation)のSH用GCCコンパイラを
'C:\GCC_SH'をインストール先に指定してインストールしたものを基準にしています。
このファイルの実行には、各環境に合わせて書き直す必要があります。
注、説明のため以下のバッチファイルには行番号が付加されていますが、
元のファイルにはついていません。
画像用ソースプログラムのバッチファイル'dm.bat'
1 : del *.bak
2 : del *.o
3 : del *.hex
4 : del *.map
5 : del *.pif
6 : del *.cmd
7 : del *.lnk
8 : del *.out
9 : del *.lst
-
以前に行われたGCCの実行によってできた上記の拡張子を持ったファイルの削除を行います。
補足説明:拡張子
10 : set DJGPP=c:/gcc_sh/bin/djgpp.env
11 : set GCC_SH_PATH=c:\gcc_sh
12 : set PATH=%GCC_SH_PATH%\bin;"%PATH%"
13 : set TMPDIR=%GCC_SH_PATH%\tmp
14 : set COMPILER_PATH=%GCC_SH_PATH%\bin
15 : set LIBRARY_PATH=%GCC_SH_PATH%\lib
16 : set C_INCLUDE_PATH=%GCC_SH_PATH%\include
17 : set GCC_EXEC_PREFIX=%GCC_SH_PATH%\bin
-
各環境変数の設定
GCCのインストールしたディレクトリを参考に各自設定を書き直します。
補足説明:環境変数
18 : echo -t -v -warn-common
>> sram.lnk
19 : echo -Map sram.map
>> sram.lnk
20 : echo -o sram.out
>> sram.lnk
21 : echo boot.o
>> sram.lnk
22 : echo bsc.o
>> sram.lnk
23 : echo rtm.o
>> sram.lnk
24 : echo ini.o
>> sram.lnk
25 : echo fnd.o
>> sram.lnk
26 : echo tim.o
>> sram.lnk
27 : echo si0.o
>> sram.lnk
28 : echo ccd.o
>> sram.lnk
29 : echo user.o
>> sram.lnk
30 : echo cppt.o
>> sram.lnk
31 : echo command.o
>> sram.lnk
32 : rem echo omni.o
>> sram.lnk
33 : echo dumm.o
>> sram.lnk
34 : rem echo c:\gcc\sh\lib\libkmc.a >> sram.lnk
35 : echo c:\gcc_sh\lib\m2\libgcc.a >> sram.lnk
36 : echo c:\gcc_sh\lib\m2\libc.a
>> sram.lnk
-
リンクファイル'sram.lnk'の作成
34行目においてコメントアウトされているのは、京都マイクロコンピュータ製のGCCを使用している場合の記述です。もし、このGCCをお使いの場合は34行目の
rem を外し、35・36行目を rem によってコメントアウトしてください。
37 : echo SECTIONS {
> sram.cmd
38 : echo .text 0x00400400 :
>> sram.cmd
39 : echo {
>> sram.cmd
40 : echo __stext
= . ; >> sram.cmd
41 : echo *(.text)
>> sram.cmd
42 : echo __etext
= . ; >> sram.cmd
43 : echo }
>> sram.cmd
44 : echo .data :
>> sram.cmd
45 : echo {
>> sram.cmd
46 : echo __sdata
= . ; >> sram.cmd
47 : echo *(.data)
>> sram.cmd
48 : echo __edata
= . ; >> sram.cmd
49 : echo }
>> sram.cmd
50 : echo .bss 0x00490000 :
>> sram.cmd
51 : echo {
>> sram.cmd
52 : echo __sbss
= . ; >> sram.cmd
53 : echo *(.bss)
>> sram.cmd
54 : echo *(COMMON)
>> sram.cmd
55 : echo __ebss
= . ; >> sram.cmd
56 : echo __heep
= . ; >> sram.cmd
57 : echo }
>> sram.cmd
58 : echo }
>> sram.cmd
59 : rem sram.lnk,sram.cmdに\rがあるとld.exeでリンクエラーとなる
60 : rem as -o boot.o boot.s -ahlms -a=boot.lst
61 : as -o boot.o boot.s -a -as -v > boot.lst
62 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ rtm.c
63 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ bsc.c
64 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ ini.c
65 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ fnd.c
66 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ tim.c
67 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ si0.c
68 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ ccd.c
69 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ cppt.c
70 : rem gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ omni.c
71 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ dumm.c
72 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ user.c
73 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ command.c
74 : ld @sram.lnk -Tsram.cmd
駆動用ソースプログラムのバッチファイル'dm.bat'
1 : del *.bak
2 : del *.o
3 : del *.hex
4 : del *.map
5 : del *.pif
6 : del *.cmd
7 : del *.lnk
8 : del *.cfg
9 : del *.out
10 : del *.lst
-
以前に行われたGCCの実行によってできた上記の拡張子を持ったファイルの削除を行います。
補足説明:拡張子
11 : rem set DJGPP=c:/gcc_sh/bin/djgpp.env
12 : rem set GCC_SH_PATH=c:\gcc_sh
13 : rem set PATH=%GCC_SH_PATH%\bin;"%PATH%"
14 : rem set TMPDIR=%GCC_SH_PATH%\tmp
15 : rem set COMPILER_PATH=%GCC_SH_PATH%\bin
16 : rem set LIBRARY_PATH=%GCC_SH_PATH%\lib
17 : rem set C_INCLUDE_PATH=%GCC_SH_PATH%\include
18 : rem set GCC_EXEC_PREFIX=%GCC_SH_PATH%\bin
-
各環境変数の設定
GCCのインストールしたディレクトリを参考に各自設定を書き直します。
補足説明:環境変数
19 : rem test.lnkやtest.cmdの中に¥r(=改行コード)が紛れ込ん
20 : rem でいる場合はリンカld.exeでcannot open。。のエラーが出
21 : rem て、test.outが作成されないので注意する事。
22 : echo -t -v -warn-common
> test.lnk
23 : echo -Map test.map
>> test.lnk
24 : echo -o test.out
>> test.lnk
25 : echo boot.o
>> test.lnk
26 : echo rtm.o
>> test.lnk
27 : echo ini.o
>> test.lnk
28 : echo fnd.o
>> test.lnk
29 : echo hio.o
>> test.lnk
30 : echo tim.o
>> test.lnk
31 : echo enc.o
>> test.lnk
32 : echo acc.o
>> test.lnk
33 : echo pwm.o
>> test.lnk
34 : echo sio.o
>> test.lnk
35 : echo adc.o
>> test.lnk
36 : echo bff.o
>> test.lnk
37 : echo comm.o
>> test.lnk
38 : echo sens.o
>> test.lnk
39 : echo motr.o
>> test.lnk
40 : echo mppt.o
>> test.lnk
41 : echo cmd.o
>> test.lnk
42 : echo user.o
>> test.lnk
43 : echo dumm.o
>> test.lnk
44 : rem echo c:\gcc\sh\lib\libkmc.a >> test.lnk
45 : echo c:\gcc_sh\lib\m2\libgcc.a >>
test.lnk
46 : echo c:\gcc_sh\lib\m2\libc.a
>> test.lnk
-
リンクファイル'sram.lnk'の作成
44行目においてコメントアウトされているのは、京都マイクロコンピュータ製のGCCを使用している場合の記述です。もし、このGCCをお使いの場合は34行目の
rem を外し、45・46行目を rem によってコメントアウトしてください。
47 : echo SECTIONS {
> test.cmd
48 : echo .text 0x00200000 :
>> test.cmd
49 : echo {
>> test.cmd
50 : echo
__stext = . ; >> test.cmd
51 : echo
*(.vector)
>> test.cmd
52 : echo
*(.text)
>> test.cmd
53 : echo
__etext = . ; >> test.cmd
54 : echo }
>> test.cmd
55 : echo .data :
>> test.cmd
56 : echo {
>> test.cmd
57 : echo
__sdata = . ; >> test.cmd
58 : echo
*(.data)
>> test.cmd
59 : echo
__edata = . ; >> test.cmd
60 : echo }
>> test.cmd
61 : echo .bss 0x00400400 :
>> test.cmd
62 : echo {
>> test.cmd
63 : echo
__sbss = . ; >> test.cmd
64 : echo
*(.bss)
>> test.cmd
65 : echo
*(COMMON)
>> test.cmd
66 : echo
__ebss = . ; >> test.cmd
67 : echo
__heep = . ; >> test.cmd
68 : echo }
>> test.cmd
69 : echo }
>> test.cmd
70 : as -o boot.o boot.s -a -as -v > boot.lst
71 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ rtm.c
72 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ ini.c
73 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ fnd.c
74 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ hio.c
75 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ tim.c
76 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ pwm.c
77 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ enc.c
78 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ acc.c
79 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ sio.c
80 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ adc.c
81 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ bff.c
82 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ ped.c
83 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ motr.c
84 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ mppt.c
85 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ sens.c
86 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ user.c
87 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ cmd.c
88 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ dumm.c
89 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ -DROBONO=1
comm.c
90 : ld @test.lnk -Ttest.cmd
91 : copy test.out target\id1.out
92 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ -DROBONO=2
comm.c
93 : ld @test.lnk -Ttest.cmd
94 : copy test.out target\id2.out
95 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ -DROBONO=3
comm.c
96 : ld @test.lnk -Ttest.cmd
97 : copy test.out target\id3.out
98 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ -DROBONO=4
comm.c
99 : ld @test.lnk -Ttest.cmd
100 : copy test.out target\id4.out
101 : gcc -c -v -Wall -g -m2 -O0 -D_GCC_ -D_SH2_ -DROBONO=5 comm.c
102 : ld @test.lnk -Ttest.cmd
103 : copy test.out target\id5.out
-
各環境変数の設定
GCCのインストールしたディレクトリを参考に各自設定を書き直します。
補足説明:環境変数
駆動用ソースプログラムのバッチファイル'dmc.bat'
コンパイルが実行できなかったのでこのように変更しました。
…
58 : rem echo c:\gcc\sh\lib\libkmc.a >> test.lnk
59 : echo c:\gcc_sh\lib\libgcc.a
>> test.lnk
60 : echo c:\gcc_sh\lib\libc.a
>> test.lnk
…
pathの設定
windowsのAUTOEXEC.BATにgcc.lib.includeのpathを通す。
1 :loadhigh c\windows\command\nlsfunc.exe c:\windows\country.sys
2 :
3 :set home=c:\home
4 :set path=c:\gcc\bin;c:\meadow\1.12b1\bin;%path%
/*変更点*/
5 :
6 :emacs=meadow
7 :prefix=c\meadow
8 :lispdir=c:\meadow\site-lisp
9 :
10 :c_include_path=c:\gcc\include
/*変更点*/
11 :tmpdir=c:\windows\temp
12 :compiler_path=c:\gcc\bin
13 :library_path=c:\gcc\lib
/*変更点*/
…
これによってコンパイラが使用出来るようになりました。
NEXT:2.3.1 ダウンロードに必要な機材・接続方法