1 / 43

SH-4 上で動作する 組込みプログラムの クロス開発環境構築と その試作

SH-4 上で動作する 組込みプログラムの クロス開発環境構築と その試作. 5497041 金子恵. 目次 . 1 組込みシステム     2 動機            3 目標            4 ターゲットマシン     5 クロス開発環境の構築 6 プログラムの概要. 1. 組込みシステム (embedded system). ●  各種の機械や機器に組み込まれて、    その制御を行うコンピュータシステム. ●  ある目的に専門化されたコンピュータシステム. 例      自動車        家電製品 AV 機器

palmer-hale
Download Presentation

SH-4 上で動作する 組込みプログラムの クロス開発環境構築と その試作

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SH-4上で動作する組込みプログラムのクロス開発環境構築とその試作SH-4上で動作する組込みプログラムのクロス開発環境構築とその試作 5497041 金子恵

  2. 目次  1 組込みシステム     2 動機            3 目標            4 ターゲットマシン     5 クロス開発環境の構築 6 プログラムの概要

  3. 1.組込みシステム(embedded system) ● 各種の機械や機器に組み込まれて、    その制御を行うコンピュータシステム ● ある目的に専門化されたコンピュータシステム 例      自動車        家電製品 AV機器        携帯電話など        

  4. 自動車内の組込みシステム パワートレイン系(駆動系)  エンジン制御  トランスミッション制御 シャシー系(走行系)      ブレーキ制御  姿勢制御      サスペンション制御 ボディー系 ドアロック・ウィンドウ制御      照明・シート制御 情報・エンターテイメント系 カーオーディオ・カーナビゲーション 情報ー制御複合システム 情報系のシステムから得た情報を制御に活用

  5. 汎用コンピューターシステム 特別な用途のために設計されたのではない 多くの組込みシステムを含んでいる       (モデム・キーボード・マウスなど) プラント制御システム    パソコンベースのハードウェアが用いられる場合も多い  携帯電話機 JAVAをサポートしている物も販売されている

  6.   多種多様な組込みシステム システム規模の面においても、 要求事項の面においても、 多種多様な組込みシステムが存在する。 全ての組込みシステムに適用できる技術は多くない。 例   機器の製造個数が多い場合 システム1つの製造コストがトータルコストに大きい影響をもつ   機器の製造個数が少ない場合 開発コストを小さくする必要がある

  7. 組込みシステムの特性 ① 専用化されたシステム      ・組込みソフトウェアは機器に固定されている                 →ソフトウェアが入れ替えられることは希である。        ・ハードウェアや OSはアプリケーションが用いる必要最低限の         機能のみを備えていればよい                 →最適化設計が出来る ② 厳しいリソース制約        ・コストダウン要請        ・動作条件の制約        ・低消費電力        ・小型化・軽量化 ←製造個数が多い物 ←自動車など(温度条件・ノイズ条件) ←人工衛星・非接触ICカード ←携帯機器 ③ リアルタイム性 ④ 高い信頼性

  8. 組込みソフトウェアの特性 ① ハードウェアに密着したプログラミング ② 開発環境とターゲットマシンの分離 ③ 多様なハードウェアと多様なOS PowerPC系  i86系  SHシリーズ  V800シリーズ など OS9μITRONWindowsCE  など

  9. メモリ 出力 入力 プロセッサ 組込みシステムのまとめ ① 最低でも1つのプロセッサとソフトウェアを含んでいる。 ② ソフトウェアをもつために、        ・実行コードを保存する領域 (ROM)        ・実行時のデータ処理のため一時的な保存領域 (RAM) ③ 入力・出力をもっている

  10.  2 動機    家電製品やAV機器などのコンシューマ機器の分野では、 世界的な有力メーカーの多くが日本企業である。 この意味で、組込みシステムは、日本が世界に先駆けて 研究に取り組むべき分野であり、日本が先進性・独自性 を発揮できる分野でもあるので、その基礎を学ぶことは将来 仕事をする上でとても大切なことであると思った。

  11. 3 目標   組込みシステムのソフトウェアを開発するための クロス開発環境を構築し、 その上で作成したプログラムをターゲットマシン上で 動かす。

  12. デバッガ ROMライター SH7750 exeGCC評価版 日立純正C/C++ コンパイラ評価版 メモリ PARTNER-J CPUボード 4 ターゲットマシン   CQ RISC評価キット/SH4

  13. CPUボードとPARTNER-J

  14. マイクロプロセッサ(プロセッサコア) ←高速化に重点 汎用システム 組込みシステム ←高速化に加え、低消費電力や   コード効率も重視

  15. SH7750(日立SuperH RISC engine SH7750) ● 日立製作所のSuperHシリーズのマイクロプロセッサ           (32ビットRISCプロセッサ) SH-1SH-2SH-3SH-4 ● コード効率を高めるために、16ビット固定長命令を採用 RISC系のプロセッサは一般的に32ビット固定長 ●  デジタルスチルカメラ・カーナビゲーション・PDAなどの    マルチメディア分野をはじめとして多く採用されている

  16. SH-1SH-2SH-3SH-4 ・キャッシュ・メモリ管理機構  を追加 ・コンピュータとしての機能  アップを実現 ・組込み用途としての  ラインアップを充実 ・処理能力があり、  低消費電力で様々な  機能をオンチップ化  チップが小さい        →低価格 ・SH-3 モバイルコンピュータ 「パワーザウルス」 「カシオペア」 ・SH-2E 自動車

  17. 命令セット SH-4 91命令 グラフィック演算命令 (ベクトル・内積) セガのドリームキャスト に採用された。 メモリ以外の 周辺モジュールの オンチップ化 SH-3 68命令 SH-2 62命令 SH-1 56命令

  18. SH7750(LSI)について 割り込みの制御 カウント 通信制御 クロックの発生 CPU MMU CPG INTC SCI RTC TMU 仮想記憶 BSC メモリ DMAC メモリやモジュールのデータなどの受け渡し

  19. 物理アドレス エリア n 接続デバイス データバス幅 0x0000_0000 0 フラッシュROM 16ビット 0x0400_0000 1 0x0800_0000 2 SDRAM 32ビット 0x0C00_0000 3 0x1000_0000 4 SRAM 8ビット 0x1400_0000 5 8ビット LED 0x1800_0000 6 0x1C00_0000 7 予約 メモリマップ

  20. コピー Windows UNIX 5 クロス開発環境の構築 クロス開発環境とは…? C言語 実行コード コンパイルする Windowsの 実行コード 実行できない! なぜか??   そのマシン特有の機械語を生成している     他のマシンでは実行できない!!

  21. パソコン SH-4 今回のターゲットマシンで考えると C言語 SH-4の 実行コード SH-4の 実行コード 実行できる! コンパイル パソコン上でそのパソコン特有の機械語とは異なる、 ターゲットマシンの機械語を生成するようなコンパイル環境

  22. 環境構築のために用意したもの アセンブラ・リンカ・ ユーティリティー ・binutils ・GCC Cコンパイラー FSF(Free Software Foundation)という団体のGNUプロジェクトが 開発しているフリーソフトウェアのコンパイラ              ・GDB デバッガ 組込み用途に使える 標準ライブラリ ・newlib これらは、UNIX系のOS上で動作する

  23. LAN プリンターケーブル  PARTNER-J CPUボード RS232-C 今回の環境   FreeBSD newlib Windows configure --target=sh-coff GDB GCC binutils ROM化に使う リモートデバッグ時に使う

  24. リモートデバッグ ROM化するまでの流れ LAN FreeBSD Windows Sレコード・ バイナリ レコード C言語 オブジェクト GDB オブジェクト コンパイル ROM化 GBDと通信して リモートデバッグ PARTNER-J GDBのstub プログラム ROM RAM オブジェクト CPUボード

  25. 6 プログラムの概要 • 発光ダイオードを点滅させる • 初期化の流れ • メインプログラムの概要

  26. 初期化の流れ パワーオンリセット CPUによる初期化処理 プログラムによる初期化処理 メインプログラム

  27. 例外発生 割り込み発生 リセット 特権モード ユーザーモード 復帰命令(RTE命令) 処理モード

  28. 25 R0 R1 ・ ・ R15 15 メモリ CPU内の重要なレジスタ(32ビット) ①汎用レジスタ    10    15 R0+R1 R0の値+メモリの値 ②ベクタベースレジスタ(VBR)

  29. VBR+0X000 VBR+0X100 VBR+0X600 VBR+400 リセット 一般例外 割り込み TLBミス例外 タイマー パワーオンリセット マニュアルリセット リフレッシュ 0x000 ベクタアドレステーブル 0x020 例外コードを設定 例外事象レジスタ ② 0を設定 ベクタベースレジスタ 割り込み事象レジスタ CPUによるリセット時の初期化処理 0x000 ① 0

  30. 特権モード 割込み禁止 ③ リセット ベクタアドレステーブル

  31. 例外コード 解釈する 例外事象レジスタ ② バスステートコントローラ・キャッシュの初期化 ソフトウェアによる初期化処理 ① 例外コードの解釈 パワーオンリセット(0x000)なら 以下を実行する

  32. 外部メモリ 0x0000_0000 リセット時はエリア0のみ 使用可能 フラッシュROM 0x0800_0000 SDRAM 初期化する 0x1000_0000 SRAM 0x1400_0000 LED 予約領域 BSC・キャッシュの初期化 ワークエリア メモリの種類 バス幅      など 

  33. 実効アドレス空間 実効アドレス空間 P0 0x0000_0000 U0 0x0000_0000 キャッシング可能 0x7C00_0000 0x8000_0000 P1 32ビット 4G空間 キャッシング可能 ユーザーモード 0xA000_0000 P2 0xC000_0000 P3 キャッシング可能 0xE000_0000 P4 29ビット 0xFFFF_FFFF キャッシュを有効にする 特権モード 外部メモリ 0x0000_0000 フラッシュROM 0x0800_0000 SDRAM キャッシング可能 0x1000_0000 SRAM 0x1400_0000 LED 予約領域 キャッシュの初期化

  34. プログラム領域 ROM 定数領域 初期化データ領域 コピー RAM 未初期化データ領域 0で初期化 セクションの初期化 初期化データ領域

  35. 割り込みを許可する メインプログラム

  36. 例外事象レジスタ 例外コード 0x000 例外コード解釈 ベクタベースレジスタ 0 リセットベクタテーブル 0x000 特権モード例外ブロック 0+0xA000_000 リセットベクタテーブル メインプログラムへ 初期化のまとめ CPU プログラム BSC・キャッシュの初期化 セクションの初期化 ベクタテーブルの設定 例外ブロックなどの解除

  37. プログラム概要(sample.c) 1秒間隔で点滅を繰り返す 消灯→点灯→消灯→点灯・・   点灯:0~9までをカウントアップ メイン関数 Timer関数 TMU (タイマユニット)      INTC (割り込みコントローラ)

  38. CPU:バスクロック:周辺モジュール= 1 : 1/3 : 1/6 クロック数を決める CPUクロック、バスクロック、周辺モジュールクロックを決定する。 CPUクロック:200MHz CPU=200MHz バス=66.6MHz 周辺モジュール=33.3MHz

  39. 1クロックは約480ナノ秒 TMU(タイマユニット) 決められた時間をカウントダウンする カウントクロックを設定する Pφ=33.3MHz(周辺クロック数)として Pφ/16 今回 TMUは1ミリ秒をカウントするので Y:カウント数 480×Y=1,000,000ns 1msのカウント数=2,083

  40. タイマースタート TMU ベクタテーブル 1msカウント 割り込み 割り込みサブルーチン 0x400 割り込みルーチン 割り込みサブルーチン スタック 割り込みの動作 CPU RTE 例外コードをセット Timer関数 汎用レジスタ

  41. Timer関数 メイン関数 Sample.cの流れ (Timer関数を呼び出してから) 1秒間をカウントする Flag=TRUEのとき 消灯 点灯(1~9) 1msを1000回カウント 1秒間カウントしたら→TRUE それ以外 →FALSE Flag=TRUE

  42. D3 D2 D1 D0 ・ ・ 0x1400_0000 数値 D3 D2 D1 D0 ・ ・ A ~ F 1 0 0 ~ 9 点灯 消灯 消灯 点灯 7セグメントLED DOT

More Related