＝ 目次 ＝
1. はじめに ............................................................................. 1
1.1 概要 .............................................................................. 1
1.2 本学習キットに必要なもの........................................................... 3
1.3 添付 CD の内容...................................................................... 4
2. メインボードについて ................................................................. 5
2.1 外観図 ............................................................................ 52.2 メインボードのレビジョンについて................................................... 6
2.3 ハードウェア仕様................................................................... 72.4 ハードウェアブロック図............................................................. 82.5 各部仕様........................................................................... 92.5.1 SH7615......................................................................... 92.5.2 H-UDI インターフェース ......................................................... 92.5.3 フラッシュメモリ.............................................................. 102.5.4 Ethernet I/F.................................................................. 102.5.5 シリアルコミュニケーション I/F ................................................ 112.5.6 スイッチ／LED................................................................. 132.5.7 RTC .......................................................................... 132.6 アドレスマップ.................................................................... 142.7 I/O ポート ........................................................................ 163. ハードウェア設計について ............................................................ 173.1 製品開発.......................................................................... 173.1.1 製品開発の流れ................................................................ 173.1.2 製品企画（顧客要求）.......................................................... 173.2 回路設計.......................................................................... 183.2.1 ハードウェア仕様設計.......................................................... 19(1) ハードウェアとソフトウェアの切り分け .......................................... 19(2) ソフトウェア担当者との打ち合わせ.............................................. 19(3) ハードウェア仕様書作成........................................................ 203.2.2 ボードシステム設計～トップダウン設計 .......................................... 213.2.3 回路設計...................................................................... 23(1) 電源回路の概要................................................................ 23(2) 部品選定～表面実装部品（SMD）................................................. 24(3) 詳細回路設計.................................................................. 253.2.4 回路図入力～ネットリストの作成................................................ 313.3 プリント基板設計.................................................................. 323.3.1 プリント基板とは.............................................................. 32
3.3.2 プリント基板の設計方法........................................................ 333.4 機構設計.......................................................................... 35
3.5 試作機製造........................................................................ 36
3.5.1 製造資料作成.................................................................. 36
3.5.2 部品実装...................................................................... 37
3.6 動作確認（デバッグ）.............................................................. 383.6.1 確認方法...................................................................... 38
3.6.2 波形検証～オシロスコープを用いた計測 .......................................... 39

エンベデッドシステム技術者育成のためのμiTRON（SH2）組み込み学習キットvii

3.6.3 タイミング測定～ロジックアナライザを用いた計測 ................................ 40
3.6.4 ファームウェアの実装と動作検証................................................ 41
3.6.5 環境試験～性能測定から信頼性試験まで .......................................... 424. ソフトウェア設計について ............................................................ 43
4.1 プログラム開発環境................................................................ 434.2 モジュール作成の流れ.............................................................. 44
4.2.1 前処理........................................................................ 44
4.2.2 コンパイル.................................................................... 44
4.2.3 アセンブル.................................................................... 44
4.2.4 リンク........................................................................ 44
5. 学習課題を行う前に知っておきたいこと................................................. 45
5.1 µITRON API ....................................................................... 45
5.2 CPU（SH7615）の概要............................................................... 46
5.3 例外処理ベクタテーブルとベクタ番号................................................ 47
5.4 IRL 割り込み ...................................................................... 49
5.5 ビッグエンディアンとリトルエンディアン ............................................ 50
6. 開発環境を使ってみよう！ ............................................................ 51
6.1 GNU 開発環境の構築 ................................................................ 52
6.1.1 開発環境のインストール........................................................ 53
6.2 Eclipse の操作 .................................................................... 58
6.3 Cygwin の操作 ..................................................................... 65
7. 学習課題１ 簡単なプログラムを動かしてみよう！....................................... 68
7.1 導入 ............................................................................. 68
7.2 ソフトウェアの書き込み手順について................................................ 72
7.3 サンプルプログラムのクリーンアップについて ........................................ 74
7.4 サンプルプログラムの中身.......................................................... 75
7.5 DIP/SW の状態を取り出す ........................................................... 77
7.6 シリアル通信...................................................................... 80
7.6.1 シリアル初期化................................................................ 80
7.6.2 シリアル送信.................................................................. 81
7.6.3 シリアル受信.................................................................. 85
8. 学習課題２ デバッグモニタを組み込んでみよう！....................................... 92
8.1 デバッグモニタとは？.............................................................. 92
8.1.1 デバッグモニタ組み込み........................................................ 92
8.1.2 メモリダンプ.................................................................. 97
8.1.3 メモリセット.................................................................. 99
8.1.4 メモリフィル................................................................. 101
8.1.5 RTC の設定／表示 ............................................................. 102
8.1.6 デバッグモニタの利用方法..................................................... 103
8.2 gdb とは？ ....................................................................... 104
8.2.1 gdb を利用するために ......................................................... 104
8.2.2 gdb を使ってみよう ........................................................... 104
8.2.3 gdb でデバックしてみよう ..................................................... 106
9. 学習課題３ TOPPERS/JSP を組み込んでみよう！ .........................................108
9.1 TOPPERS/JSP とは？ ............................................................... 108
9.2 タスク .......................................................................... 109
9.3 TOPPERS/JSP 組み込み ............................................................. 111
9.4 サービスコール................................................................... 114

viii

エンベデッドシステム技術者育成のためのμiTRON（SH2）組み込み学習キット

9.5 簡単なプログラムの作成........................................................... 117
9.5.1 簡単なタスクプログラム....................................................... 117
9.5.2 新しいプロジェクトの追加..................................................... 122
9.5.3 マルチタスクプログラム....................................................... 126
9.5.4 マルチタスクプログラム（タスク管理） ......................................... 129
9.5.5 マルチタスクプログラム（タスク間通信） ....................................... 133
9.5.6 時間監視（ラウンドロビン）................................................... 139
9.5.7 割り込みプログラム........................................................... 145
9.6 RTC（リアルタイムクロック）制御.................................................. 154
9.6.1 RTC 初期化 ................................................................... 155
9.6.2 時刻取得..................................................................... 156
9.6.3 時刻設定..................................................................... 157
9.6.4 アラーム設定................................................................. 158
9.6.5 アラーム割り込み............................................................. 159
9.6.6 サンプルプログラム........................................................... 160
9.6.7 サンプルプログラムの操作..................................................... 161
9.6.8 サンプルプログラムのコード................................................... 162
9.6.9 Ｉ２Ｃインターフェース........................................................ 167
9.6.10 RTC 初期化(I2C インターフェース版) ........................................... 171
9.6.11 時刻取得(I2C インターフェース版) ............................................ 172
9.6.12 時刻設定(I2C インターフェース版) ............................................ 173
9.6.13 アラーム設定(I2C インターフェース版) ........................................ 174
9.6.14 アラーム割り込み(I2C インターフェース版) .................................... 175
9.6.15 サンプルプログラム(I2C インターフェース版) .................................. 176
9.6.16 サンプルプログラムの操作(I2C インターフェース版)............................. 177
9.6.17 サンプルプログラムのコード(I2C インターフェース版)........................... 178
9.7 WDT（ウォッチドックタイマー）制御................................................ 193
9.7.1 WDT のレジスタへの読み書きについて ........................................... 193
9.7.2 WDT の各機能について ......................................................... 194
9.7.3 ウォッチドックタイマとして使用............................................... 195
9.7.4 インターバルタイマとして使用................................................. 1969.7.5 サンプルプログラム........................................................... 197
9.7.6 サンプルプログラムの操作..................................................... 198
9.7.7 サンプルプログラムのコード................................................... 199
10. 学習課題４ ネットワーク通信をやってみよう！........................................20310.1 TCP/IP について ................................................................. 203
10.2 プロトコルスタックについて...................................................... 205
10.3 TINET（TCP/IP プロトコルスタック）について ...................................... 205
10.4 アドレスについて................................................................ 206
10.5 プロトコルについて.............................................................. 207
10.5.1 IP（Internet protocol）..................................................... 208
10.5.2 ICMP（Internet Control Message Protocol） ................................... 209
10.5.3 ARP（Address Resolution Protocol） .......................................... 210
10.5.4 UDP（User Datagram Protocol）............................................... 210
10.5.5 TCP（Transmission Control Protocol） ........................................ 211
10.6 ITRON TCP/IP API と TINET の API について ......................................... 213
10.6.1 TINET(TCP)API............................................................... 213
10.6.2 TINET(UDP)API............................................................... 219

エンベデッドシステム技術者育成のためのμiTRON（SH2）組み込み学習キットix

10.6.3 その他の API ................................................................ 22110.6.4 ソケットプログラミングとの相違点............................................ 222
10.6.5 TCP 接続を切断する際の注意点 ................................................ 223
10.6.6 省メモリ化について.......................................................... 224
10.6.7 トレース機能について........................................................ 225
10.7 学習課題４のサンプルプログラムについて .......................................... 226
10.8 TINET を使用したアプリケーション作成の準備 ...................................... 226
10.9 TINET 添付のサンプルプログラム（エコーサーバ）について........................... 227
10.10 TINET 添付のサンプルプログラム（簡易コンソール）について........................ 232
10.11 TELNET サンプルプログラムについて .............................................. 248
11. 学習課題５ リモートデバッグをやってみよう！........................................280
11.1 ターゲットシステムのデバッグ（gdb スタブについて）............................... 280
11.2 リモートデバッグの準備.......................................................... 282
11.2.1 gdb スタブの書込み .......................................................... 282
11.2.2 サンプルプログラムの動作環境設定変更 ........................................ 282
11.3 Eclipse 上からのデバッグ ........................................................ 285
11.3.1 プロジェクト毎のデバッグ設定................................................ 286
11.3.2 Eclipse デバッガの操作 ...................................................... 290
11.4 gdb のコマンド .................................................................. 294
11.4.1 set remotebaud コマンド ..................................................... 296
11.4.2 target remote コマンド ...................................................... 296
11.4.3 load コマンド ............................................................... 297
11.4.4 symbol コマンド ............................................................. 297
11.4.5 list コマンド ............................................................... 297
11.4.6 break コマンド .............................................................. 298
11.4.7 continue コマンド ........................................................... 299
11.4.8 info コマンド ............................................................... 300
11.4.9 x コマンド .................................................................. 301
11.4.10 print コマンド ............................................................. 302
11.4.11 step コマンド .............................................................. 303
11.4.12 stepi コマンド ............................................................. 303
11.4.13 next コマンド .............................................................. 304
11.4.14 nexti コマンド ............................................................. 304
11.4.15 quit コマンド .............................................................. 304
11.5 リモートデバッグの操作.......................................................... 305
11.6 gdb スタブを使用する際の制限 .................................................... 320
11.6.1 シリアルポート.............................................................. 320
11.6.2 割り込みの予約.............................................................. 320
11.6.3 割り込みマスクの制限........................................................ 320
11.7 ターゲットシステムのデバッグ（H-UDI デバッグについて）........................... 324
12. 付録 ...............................................................................333
12.1 モトローラ S レコード形式........................................................ 333
12.2 ブートローダ.................................................................... 334
12.2.1 ROM への書き込み ............................................................ 335
12.2.2 ユーザプログラムの実行...................................................... 337
12.3 Tera Term Pro の使用方法 ........................................................ 338
12.3.1 インストール................................................................ 338
12.3.2 COM 接続 .................................................................... 341

x

エンベデッドシステム技術者育成のためのμiTRON（SH2）組み込み学習キット

12.3.3 シリアルポートの設定........................................................ 342
12.3.4 ファイルの送信.............................................................. 343
13. 参考資料 ...........................................................................344

エンベデッドシステム技術者育成のためのμiTRON（SH2）組み込み学習キット

xi