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