ブログ

フェラーリのカーナビから考える、組込みソフトウェアの設計

フェラーリのカーナビから考える、組込みソフトウェアの設計

製品の仕組みを入口に、C言語とシステム設計を学ぶ

身近な製品の中で、プログラムはどのように動いているのでしょうか。

グローバル教材開発株式会社では、大学・企業向けに、C言語や組込みシステムの講義・研修を行っています。大切にしているのは、プログラミングの知識を、実際の製品の動作と結びつけて理解することです。

今回は、その一例として、フェラーリ・ポルトフィーノのカーナビゲーションシステムを題材に、組込みソフトウェアの設計を考えます。

複数の機能を、同時に動かすには

カーナビは、目的地までの経路を案内するだけの装置ではありません。画面への操作、地図の表示、音楽の再生、スマートフォンとの接続など、さまざまな処理を扱います。

ここで、設計上の問いが生まれます。

「経路を計算している間も、画面の操作を受け付け、音楽を再生し続けるには、どうすればよいでしょうか」

一つの処理が終わるまで、ほかの処理を待たせる構成では、操作への反応が遅れたり、音声が途切れたりする可能性があります。

そこで、処理をどのような単位に分けるか、何を優先するか、処理の間でどう情報を受け渡すかを考えます。

製品の動作から考えることで、タスク分割やイベント処理といった設計の考え方が、具体的な課題として見えてきます。

C言語の基礎を、製品の動作につなげる

変数、配列、構造体、ポインタ、関数。C言語で学ぶこれらの要素も、用途と結びつけることで理解しやすくなります。

例えば、カーナビを想定した教材では、次のような課題を考えられます。

  • 構造体: 現在位置と取得時刻を、一組のデータとして扱う。
  • 配列・メモリ管理: 音声データを一時的に保存し、順次処理する。
  • 条件分岐・状態遷移: 「未接続」「接続中」「接続済み」で動作を切り替える。
  • 関数分割: 入力、計算、表示の役割を分け、変更しやすい構成にする。

さらに、「通信が途中で切れたらどうするか」「位置情報が更新されなくなったらどうするか」と問いを広げれば、異常時の処理や信頼性の検討にもつながります。

文法を理解し、意図した動作を組み立て、想定外の状況にも備える。そのつながりを伝えることを重視しています。

開発経験を、技術教育へ

講師は、パナソニックでDVD関連の研究・設計や海外開発支援などに携わり、現在は大学・企業で技術教育を行っています。

開発現場での経験をもとに、「どう書くか」に加えて、「なぜその構成にするのか」「どこで問題が起きるのか」を具体例とともに解説します。

※本稿の設計例は、公開情報を手がかりにした教育上の考察です。実機を分解・解析したものではなく、搭載CPU・OS・実装言語や内部構成を特定するものではありません。

C言語・組込みシステム研修のご相談

C言語の基礎学習から、組込みソフトウェアの設計を考える講義まで、受講者の経験や学習目的に応じた研修をご相談いただけます。

企業研修、大学での講義、研修会社様からの講師登壇のご依頼など、対象者・学習目標・実施時期を添えて、お問い合わせください。

グローバル教材開発株式会社
[研修・講師登壇について問い合わせる]