組み込み開発

組み込み開発とは?

シリーズ:基礎シリーズ(組み込み開発)
この記事のねらい:実験シリーズ「評価ボードでLEDを点滅」に入る前に、最低限の開発フロー(作る→書く→動かす→止めて見る) だけを理解する。
※点滅はループで待つだけのシンプルな想定。

はじめに(最初に伝えたいこと)

評価ボードでLEDを点滅させるとき、つまずきやすいのは「LEDの回路」よりも、

  • どうやってプロジェクトを作るのか
  • どうやってビルドするのか(マイコンが動く形に作り直す)
  • どうやって動かすのか(書き込み含む)
  • どうやってデバッグするのか(不具合の原因を調べる)

という 開発の流れそのもの です。

この記事では「最低限これだけ分かれば、LED点滅実験に入れる」という範囲に絞って説明します。
※インストール手順や画面操作の詳細は、別記事(セットアップ/操作)に分けます。

要点(これだけ覚えればOK)

  • 組み込み開発は 「編集 → ビルド → 書き込み → 実行」 の繰り返し
  • 動かないときは、まず ビルドが通っているか/書き込みできているか を確認する
  • LED点滅を行うなら、最初は FSPの生成コード+APIを使えばOK(レジスタ直叩きは後回し)
  • 待ち時間は、最初は ループで待つ(delay) で十分

1. 組み込み開発って何をしている?

組み込み開発の基本作業は、次の4つです。

  1. ソースコードを書く(C言語)
  2. ビルドする(コンパイル+リンクして「実行させるファイル」を作る)
  3. マイコンに書き込む(マイコンにプログラムを入れる)
  4. 動かして確認する(うまくいかない場合は原因を調べる)
    ※ビルドについては、この後説明します。

LED点滅は、この一連の流れを「小さく」「確実に」体験するのに最適な題材です。

2. この実験で出てくる道具(役割だけ)

※ここでは「役割」だけ押さえます。インストール手順や接続手順は別記事/実験記事で扱います。

  • 統合開発環境(IDE):e² studio
    コード編集、ビルド、動作確認をまとめて行う場所
  • FSP(Flexible Software Package)
    RAシリーズ用の設定・生成コード・ドライバAPIを提供する仕組み
  • 評価ボード/デバッガ(実機側)
    書き込みや実行確認に使う(※実機での書き込み・接続は実験シリーズで扱います)
    ※評価ボードの見方は「マイコン(RA8M2)」カテゴリで扱います
    ※デバッガは、動いているプログラムを 止めて、いまの実行状況を確認するためのツールです。
     統合開発環境(e² studio)に含まれています。

3. 最初に知っておくと迷わない「プロジェクトの中身」

LED点滅の時点では、細部は分からなくてOKです。雰囲気だけ押さえます。

  • main.c:処理を書く場所(LEDを点滅させるプログラムの場所)
  • 生成コード(FSPが作る部分):最初は「土台」として使う
    (ボード設定、クロック、ピン設定、ドライバなど)
    ※生成コードとは、統合開発環境で自動で作成してくれるコードのことです。

※最初の段階で「生成されたファイル全部を理解する」のは不要です。
LED点滅の目的は 開発フローに慣れることです。

4. 作業の流れ(LED点滅に入る直前まで)

ここは実験記事と重なるので、この記事では「何をするか」を整理します。

4-1. 新規プロジェクトを作る(やることの意味)

「プロジェクト」は、ソースコード(Cファイル)や設定(FSP設定など)をまとめて管理する ひとまとまり です。
まずプロジェクトを作る=「このマイコン用に開発を始める土台を作る」イメージです。

  • 対象のマイコン/ボードに合ったプロジェクトの枠を作る
  • FSPの設定ができる状態にする
    目的:ビルドできる「枠」を作る

4-2. ビルドする(最低限のゴール)

ビルド(build)は、簡単に言うと 「書いたC言語のコードを、マイコンで動く形に作り直す作業」 です。

  • IDE(統合開発環境:e² studio)のビルドを実行する
  • エラーが0で終了することを確認する
    目的:まず 「マイコンに書き込める」状態を作る (実行ファイルを作る)
    ※LEDが光る前に、ここで止まることが一番多いです。

4-3. 書き込む(ここでは“意味”だけ)

  • ビルドで作った成果物をマイコンに転送して、フラッシュメモリに入れる
    目的:マイコン側で実行できる状態にする
    ※具体手順(接続・書き込み操作)は実験シリーズで扱います。

4-4. 実行する(最低限のゴール)

  • 実行して動作確認する
  • うまくいかない場合は、次章の「デバッグの最小」を使う

5. デバッグの最小(LED点滅に必要な分だけ)

デバッグとは、

  • 狭い意味のデバッグ:不具合の原因を調べて直す(いわゆる“バグ取り”)
  • 広い意味のデバッグ:プログラムを止めたり中身を見たりしながら、動作を確認する作業全般
    です。

LED点滅で必要なデバッグは、これだけで十分です。

5-1. ブレークポイント(プログラムを止める位置)

ブレークポイントは、プログラムを止めたい行に置く「目印」です。

  • main() の先頭や、ループの中にブレークポイントを置く
  • 実行して、そこで止まることを確認する

これができると分かること:

  • 書き込みできている(少なくとも実行対象が動いている)
  • CPUが動いている
  • どこまで実行できているか追える

5-2. ステップ実行(1行ずつ進める)

  • Step Over / Step Into を使ってプログラムを1行ずつ動かす
  • LED制御の処理が実行されているか確認する

5-3. 変数の値を見る(必要なら)

LED点滅では必須ではありませんが、

  • カウンタ変数が増えているか
  • 条件分岐が期待通りか
    など、確認に使えます。

6. 今回はタイマーを使わない:待ち時間は「ループで待つ」でOK

LED点滅には「待ち」が必要です。タイマーを使うと説明が増えるので、最初はループで十分です。

6-1. ループ待ちの考え方

CPUが何回も同じ処理を繰り返す → それが待ち時間になります。

6-2. 注意点(初心者がハマるところ)

  • ループ待ちは消えることがある
    ループで待ち時間を作るとき、何も起きない処理(ただ回しているだけ)は、ビルド時に
    「この処理は結果に影響しない=なくしても同じ」 と判断して、処理をまとめたり消したりすることがあります。
    その結果、思ったより点滅が速くなったり、待ち時間がほとんど無くなったりします。 対策:volatile 変数を使って「この処理は意味がある」ことを明示する。
       またはFSPのdelay APIを使う。
  • 正確な時間にはならない
    目で見て点滅すればOK。時間精度は後回し。

7. よくあるつまずき(最低限)

7-1. ビルドエラーで止まる

ビルドが通らない原因は、コードの間違いよりも 「開発環境の設定が合っていない」 ことがよくあります。
たとえば「必要な部品(ライブラリ)を見つけられない」「コンパイラの設定が違う」などです。

7-2. 書き込みできない(実機側)

  • USBケーブル(充電専用)問題
  • デバッガ選択ミス
  • ボードの電源/設定

※具体手順は実験シリーズ側の「書き込み」パートに寄せます。

7-3. 実行しても止まらない/動かない

  • main() にブレークポイントで止まるか確認
    • とまらない → マイコンにプラグラムを書き込みできていない・実行が始まっていない可能性
    • とまる → LED制御部分(GPIO設定や点灯条件)を疑う

8. 実験シリーズを行う準備チェック(これだけ)

  • e² studioが起動できる
  • プロジェクトが開ける/作れる
  • ビルドがエラー0で通る
  • 実験シリーズの記事の「書き込み」手順に進める状態になっている

まとめ

  • 組み込み開発は 編集→ビルド→書き込み→実行 の繰り返し
  • LED点滅の前に、まず ビルドが通る状態を作る
  • うまくいかないときは 「ビルド」「書き込み」「mainで止まるか」 を順に確認する
  • 点滅の待ち時間は最初は ループで待つで十分(正確さは後回し)

次に読む(おすすめの順)

  • 次回:LED点滅に必要なC言語だけ(main / while / 関数 / delay)
  • 実験シリーズ:RA8M2評価ボードでLEDを点滅(手順・コード・結果・つまずき)

-組み込み開発