実際にSH-GDBを利用するチュートリアルを示します. 対象とするアーキテクチャとして,2つのSH3プロセッサと,それぞれのプロセッサのエリア2のメモリ領域にCharacterDisplayをSingleDataBus16を介して接続したものを用意します.このアーキテクチャ定義ファイルを次に示します.
<?xml version="1.0" encoding="euc-jp"?>
<mics>
<element id="disp0" class="net.wasamon.mics.peripheral.CharacterDisplay" rows="2" cols="16"/>
<element id="bus1" class="net.wasamon.mics.bus.SingleDataBus16" ram="disp0"/>
<element id="proc0"
class="net.wasamon.mics.processor.gdb.SH3"
type = "local"
target="/home/miyo/a.out"
gdb="sh-hitachi-elf-gdb">
<channel id="bus1" offset="0x08000000"/>
</element>
<element id="proc1"
class="net.wasamon.mics.processor.gdb.SH3"
type = "local"
target="/home/miyo/b.out"
gdb="sh-hitachi-elf-gdb">
<channel id="bus1" offset="0x08000000"/>
</element>
</mics>
またproc0で動作させるファイルa.outは,
int main()
{
int i;
int *a;
a = (int*)0x08000000;
for(i = 0; i < 26;i++){
*a = i + 'a';
}
}
を,proc1のb.outは,
int main()
{
volatile int i;
int *a;
int d;
a = (int*)0x08000000;
for(i = 0; i < 100;i++){
}
d = *a;
for(i = 0; i < 26;i++){
*a = d--;
}
}
を,それぞれコンパイルしたものです. MICSを起動し,このファイルを読み込みシミュレーションを実行すると,CharacterDisplayの二文字目に,proc0によって'a'から'z'が次々と表示され,その後proc1によって'z'から'a'が表示される様を観察することができます.