ノート
スライド ショー
アウトライン
1
わんくま名古屋勉強会
  • 自己紹介
    • 名前
      • あんどちん(安藤敏彦)
    • 所在地
      • 千葉県
    • 職業
      • プログラマ(主に組込系)
    • 覚えたい言語
      • 英語


2
組み込みプログラムとは
  • 機器の制御を行うためのプログラム
    • ターゲットの種類は様々
      • CPUは4bit〜64bit等様々
      • メモリのサイズも数KB〜100MB超まで様々
    • 主に使われるOS
      • 無し
      • ITRON (T-Kernel)
      • Linux
      • Windows CE
    • 開発言語は主にC/アセンブラ(C++/Javaも)




3
組込みの魅力
  • 光る・回る・音がする
    • モータなど実際に目の前で物が動く
    • LEDなどが実際に目の前で光る
    • PCM再生など実際に音が出る

4
組込みが難しいと思われる要素
  • 制約が大きい
    • 未だにRAM/ROMが数KBなどという開発もある。
      • 場合によってはアセンブラが必須となる
    • タイミングがシビア
      • μ秒単位の制御を行う必要がある場合もある



5
開発方法
6
開発環境
  • 開発対象により開発環境は色々
    • エディタ+コンパイラ+デバッガ
    • Eclipse
    • Visual Studio (eMbedded VC)
    • Hew (Renesas)
    • MULTI (ADAC)
    • eBinder (eSOL)

7
今回のセッションで使用する環境
  • AKI H8-3052 + AKI-USB
    • 秋月電子通商から販売されているH8/3052CPUを実装した基板とUSBボード
      • CPU
        • H8/3052 (25MHz)
      • RAM
        • 8KB (+128K)
      • ROM
        • 512KB
8
H8/3052のCPUコア・H8/300Hの概要
  • 概要
    • 16bit×16本のレジスタセット
      • 8bit×16/32bit×8としても使用可
    • 62種類の命令セット
    • 8種類のアドレッシングモード
9
H8/3052のCPUコア・H8/300Hの概要
  • レジスタ構成
10
命令セット
11
アドレッシングモード
12
H8/3052のメモリマップ
13
開発環境の構築
  • 開発環境(gcc)の作成
    • binutils/gccをダウンロード/展開
      (http://www.gnu.org/software/binutils/ http://gcc.gnu.org/)
    • binutilsの作成(binutils2.16迄)
      • configure --target=h8300-hms --prefix=[installed directory]
    • gccの作成(gcc3.x迄)
      • configure --target=h8300-hms --prefix=[installed directory] --wigh-gnu-as --with-gnu-ld --enable-languages=c
14
ポート設定
15
入力ポート
  • スイッチはPA0〜PA3に接続されている
16
出力ポート
  • LEDがPB0〜PB3に接続されている
17
ポートの初期化
18
スタートアップの作成
  • リセットベクタを設定する
  • .data/.bssを初期化
  • mainを呼び出す
19
Main以降の処理
  • ポートA0〜A3を入力にする
  • ポートB0〜B3を出力にする
  • ポートAから入力
  • ポートBへ出力
20
ハードのみで実現すると
  • ソフトで制御するより圧倒的に簡単で低コスト
21
おまけ
  • 組み込みやってて良かったこと
    • ハードのことが分かるようになる
      • 躊躇なくPCの改造ができる
22
その結果
  • 何かと入れ替えをすることに躊躇しなくなる
    • ZaurusのMD->CF
    • EeePCのSSD->CF/大容量SSD
23
補足・エンディアンの違い
  • エンディアン
    • リトルエンディアン
      • 最下位バイトから最小のアドレスに格納される
    • リトルエンディアン
      • 最上位バイトから最小のアドレスに格納される
24
補足2・バスタイミング
25