Next: 索引, Previous: メモリフック, Up: Top

## 4 チュートリアル

実際に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'が表示される様を観察することができます．