組込みサロン_組込み技術紹介

-- Views

April 22, 26

スライド概要

組込み技術の紹介と箱庭ドローンシミュレータ活動についての資料です。
組込みの歴史とこれからの組込み技術を独断と偏見で語ってみた資料です。

profile-image

組込みエンジニアを30年以上やってます。 最近は、ドローンシミュレータの開発を行っており、箱庭ドローンシミュレータの開発をしています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

組込みエンジニアの仕事は… 今後の組込み技術編 昔~今までの技術(独断と偏見…)と組込み開発の将来 2026/04/21 技研ベースにて… 組込み技術 WG

2.

本日、お話すること 1. 自己紹介(現業務含む) 2. 組込み開発の歴史(自分史なので独断と偏見…) 1. アセンブラ~スクリプト言語に至るまで 3. 開発スタイルの変化(AI、IoT) 1. IoTの考えが出てきた~コネクティッドという世界 2. AI技術が出てきた~現場開発に生成AI、AI活用 4. これからの組込み開発 1. 変わっていくところ、変わらないところ 2

3.

自己紹介(現業務まで) 3

4.

自己紹介(現業務まで) • 今の仕事は… • 基本は「組込み技術屋」さん。ただ、IoT時代の流れ上、IT系技術もやる。 • 立場上、コンサルやったり、社内教育やったり、営業やったりとマルチに何でもやる 社内外だと 一番楽しいのは ボードデバッグ と ビルド作業 若手の技術者育成 ビジネス検討相談 悩み相談 社外だと お客さんのお悩み相談 お客さんへのコンサルティング 営業活動 社内だと プログラム開発 デバッグ作業サポート プレゼン資料作成 調査・分析して、レポート作成 とか、何でもやる 4

5.

自己紹介(趣味) セキュリティ技術(組込み) シミュレーション技術(箱庭ドローンシミュレータ) 応用 XRゴーグル でもできる 組込み技術を活かして… 組込みデバイス の調査 • ハードウェア:デバイス動作の方法など応用 • プロポ接続したり、XRゴーグルデバイスを分析したり • Windows技術:アプリ作ったり、ドライバ作ったり 分析(解析)・調査・応用が得意。 技術文章作るのも楽しい → 応用して、将来は技術コンテンツ開発して 教育事業目指すのが目標 5

6.

組込み開発の歴史 (自分史なので独断と偏見…) アセンブラ~スクリプト言語まで 6

7.

アセンブラ~スクリプト言語まで • 1990年代序盤:アセンブラ言語最盛期、C言語が産声… • 社会人になり、ISDN交換機をはじめとした交換機開発していた。 • 組込み(Firmware)という概念はなく、ハードウェアの一部として動くものであった。 CPU OS ・8bit ・16bit 独自OSが主流 CPUアーキテクチャ x86 共通アーキテクチャ はなかった… 学べたこと OSI階層、プロトコルという概念 LAPD(HDLC)という通信概念 アセンブラ(x86)…CPUの動きが分かりやすい この当時の思い出… PCは共有(1人1台なんて…) ノートPCというよりは、ラップトップPC(欧米か!) デバッガが大きくて重い…持ち運びが不便 7

8.

アセンブラ~スクリプト言語まで • アセンブラ言語の良いところ • CPU動作が直感できる。 • ただ、1行、1命令間違えるとバグのもとになる。相当熟知が必要。 8

9.

アセンブラ~スクリプト言語まで • 保守フェーズばっか…社会人になって人のプログラムを読むこととバグを直すこ とをやり続けて…10年間 • 途中…バブル崩壊 諸先輩方が居なくなり…なぜか顧客先に謝る仕事 • 会社の人は教えてくれない…他社の人には、大変お世話になりました。 このとき… やっぱりちゃんと技術は知ってないと打ち合わせ すらチンプンカンプン… ちゃんと勉強し直して、打ち合わせで発言でき るようになりました。 ただ、一人だけ社内で助けてくれるスーパーマン の先輩だけは味方でした… 9

10.

アセンブラ~スクリプト言語まで • 1990年代中盤:やっとC言語が使われ始める。ただ、コンパイラが… • やっと組込み(Firmware)が認知されはじめる。ただ、ハード屋さんからの無理難題。 • 組込み屋さんにしわ寄せが多くなってきた…ハードバグを何とかする立ち回り CPU ・32bit OS 学べたこと 伝送系の通信概念(光など) C言語…でもアセンブラに近い使い方 コンパイラの使い方 TRONアーキテクチャ この当時の思い出… CPUアーキテクチャ MIPS?RISC?忘れました。 最初はCTRONを触る PCは共有(1人1台に…でも高額(50万以上)) デバッガがちょっと小さくなった…でも持ち運び不便 10

11.

アセンブラ~スクリプト言語まで • C言語が出てきたが…苦労が絶えない… コンパイルしても動かない… 結局、中間形式のアセンブラを見直す… そして、コンパイル開発している部署とのデバッグ この当時は、CPUが今のようにARMみたいな共通化ではなく、 CPU作っているメーカ独自。 なので、コンパイラも独自…字句解析、構文解析、意味解析など 知らなくても良いことが知れた時代…いろいろありましたが… 11

12.

アセンブラ~スクリプト言語まで • コンパイラによって…消えるコード • 最適化の良し悪し… ROMに入らないからコンパイラで最適化オプション! あれ?ハード監視しないぞ… アセンブラで見直し…意図しない展開になっている。 volatile宣言という概念が必要… その他、組込み機器の場合、データ、変数などを 置く場所を指定するのもpragma宣言も必要 12

13.

アセンブラ~スクリプト言語まで • リアルタイム性(適切な時間)、ROM容量 • リアルタイム性が重要な処理には細心の注意をはらって開発 • ROM容量…入りきらない…コードを減らす工夫 リアルタイム性を重視する処理が多い組込み機器 → C言語で書いても最短、最速な処理で → ポインタ、配列の使い方も重要だった… → 関数コールの多様…なしだな。 → 関数テーブルによるJUMP多様。 単純に書くとROM容量(当時は数十Kbyte)と 小さいんじゃ! → ROMに入るようにC言語を工夫して小さくする → 小さいことからコツコツと… 13

14.

アセンブラ~スクリプト言語まで • 保守フェーズからの脱出 • ある先輩がやってきて…組込みにも「ソフトウェア工学」だ! • ソフトウェア工学って?一からソフトウェア開発の基礎を学びました。 当時、組込み開発は、俗に言う「職人」開発 ただ、これでは生産性、保守性が悪い…と 言われ、一からソフトウェア工学を学ぶことに… 今でいう開発プロセスの標準化です。 とても勉強になったし、今での基礎です。 14

15.

アセンブラ~スクリプト言語まで • 1990年代終盤:世の中は32bit CPUが…でも組込みは16bit。 • 組込みでも32bit CPUが使われ始めて、ARMアーキテクチャが出てきた。 • でも、16bitに逆戻り…まだまだ使い続ける組込み開発が多かった。 CPU ・16bit OS TRONアーキテクチャ 学べたこと OS技術(TRONという概念) 伝送系の通信概念(ADSLなど) メモリマップの配置 startupプログラムの重要性 この当時の思い出… CPUアーキテクチャ x86 やっと ITRONを触る PCは共有(1人1台に…でも高額(30万以上)) デバッガがちょっと小さくなった…でも持ち運び不便 Linuxがはやり始めた…VMwareで動かしてた PC自作に嵌ってたな… 15

16.

アセンブラ~スクリプト言語まで • メモリマップの重要性 • 当時、Windows NTが出始めてきた時代。Windowsプログラムを学びながら、組込 み開発…ふと、Windowsのダイナミックリンクに目覚める。 • どうやってるのか?当時のPJでは、上位指示でプログラムを動的に変える必要があった… • この時、メモリマップの配置、Startupの使い方でできることに気がつき16bitでダイナミックリンク相当 全体メモリマップ 上位指示が来たら、メモリマップ上のStartup() を呼び出すことで、プログラム領域をダイナミックに 変えられる。 プログラム領域A そう…プログラムはmain()から開始ではなかった… Startup A Startup B プログラム領域B 16

17.

アセンブラ~スクリプト言語まで • オブジェクト指向との出会い • 構造化プログラミングを飛び越して、「オブジェクト指向」に出会ったのは衝撃的でした。 • C++言語は、PC上だけのものだと思っていましたが…その後、組込みにも… 当時、読んでいた本(まだ持ってます!) 当時は、C++を組込みで使えない時代でした。 ただ、オブジェクト指向の考え方を応用して、C言語、アセンブラで 実装したり、実験をしてました…良い時代でした。 17

18.

アセンブラ~スクリプト言語まで • ~2016年くらい:携帯開発、スマホ開発、IVI開発と高級なCPUを利用 • メモリもじゃぶじゃぶ…Mbyte , Gbyte当たり前…PC並みの性能で組込み開発をする ことになってきた時代 • 段々…ソフトウェアからハードウェアが遠くなって来た時代…レジスタが触れない… CPU ・32bit ・64bit CPUアーキテクチャ ARM OS Linux Android やっと 組込みでもLinux が使えるように… 学べたこと OS技術(Linux、AndroidなどOSS OS) 無線系の通信概念(3G、4G) 車載特有の概念(ブート時間、CANなど) デバッグ技術(メモリダンプからの解析) この当時の思い出… PCは共有(1人1台に…20万前後) デバッガがほぼ要らなくなった…printf()で行ける 携帯開発は不夜城…いつも寝不足だった… 18

19.

アセンブラ~スクリプト言語まで • 2013年ごろ:IVIでLinux採用の流れ… • Windows→Linuxへの大移行時代…開発会社は大混乱 • みんな苦労した時代でした… OSSの活用方法やLinux特有な アーキテクチャなどの理解が必要 スマホ開発でのAndroid開発、 過去のLinuxディストリビューション 開発などの経験から、ガイドライン を作って…外回りの日々… 19

20.

アセンブラ~スクリプト言語まで • 2016年以降:CPUも64bit当たり前。メモリもGbyteとリッチな環境に • ほぼ、PCベースと変わらないスペックになってきた時代。 • Raspberry Piも出てきて、手軽に組込み開発を体験できるようになってきた。 • 組込み開発では、C、C++は主流。Raspberry Piなどを使ってPythonなどのスクリプト言語も動か せるようになり、組込み開発の敷居が低くなった。 • ハードウェアもGHz時代…段々独自開発が難しい時代に… • リファレンス回路からカスタム回路を作るのが難しい…なるべく変えない • DDRが動かない事件が多発する… 20

21.

アセンブラ~スクリプト言語まで • この頃から、段々IoT、センサを使った機械学習(ML:Machine Learning) の仕事が増え始めてきた… • 周りの技術者は、Python、Rなど聞いたことない言語を使い始めてきた… • Python知らんないんすか?とか、段々と組込み開発がアプリケーション寄りになってきた… • IoT時代に突入… 今後は、 僕たちが主流 組込み開発一体 どこへ… 21

22.

開発スタイルの変化(AI、IoT時代) IoTの考えが出てきた~コネクティッドという世界 22

23.

IoTの考えが出てきた~コネクティッドという世界 • IoTの考え方は、マイケル・ポーター教授が有名 23

24.

IoTの考えが出てきた~コネクティッドという世界 • PhysicalとITの融合…第3次 IT革命とか言われている。 24

25.

IoTの考えが出てきた~コネクティッドという世界 • そもそもIoT(Internet of Things)って何だ? 25

26.

IoTの考えが出てきた~コネクティッドという世界 • 様々なモノとモノがデータで連携 Cloud層 Edge層 Physical層 26

27.

IoTの考えが出てきた~コネクティッドという世界 • IoTという考え方がでてきて、組込み開発は変化 • 車載開発を例にすると、CASEって考えが出てきて、対応領域が増えてきた。 車載開発では、非機能要件だった「機能安全」に加えて 「セキュリティ」を開発プロセス上で対応が必要になる… 27

28.

IoTの考えが出てきた~コネクティッドという世界 • テニスラケットをIoT化…加速度、ジャイロセンサなどプレー状態をBluetooth で収集できるラケット おー凄い…となるところですが 残念ながら可視化する方法を 提供できてなかった… 参考URL: https://www.sbbit.jp/article/cont1/32979 28

29.

IoTの考えが出てきた~コネクティッドという世界 • 人中心の考え方…IoT化はできるけど、本当の価値は人が判断する 29

30.

開発スタイルの変化(AI、IoT時代) AI技術が出てきた~現場開発に生成AI、AI活用 30

31.

AI技術が出てきた~現場開発に生成AI、AI活用 • 2022年…黒船到来 • Open AIがChat GPTを発表。衝撃を受けるが…まだ当時は万能ではなかった。 • 2023~2025年になり、様々なベンダーがLLMの生成AIを発表 • Google:Gemini • Anthropic:Claude • OpenAI:Chat GPT(Version Up) • などなど…だんだんと、開発現場に使えるようになってきた。 31

32.

AI技術が出てきた~現場開発に生成AI、AI活用 • 2025年くらいから、生成AIの精度も良くなった… 2022年 まだ、人の方が早かった 2024年 段々追いつけなくなる… 2025年年末… もうお願いした方が早い… • これからは、如何に「プロンプト」を正確に書けるか?がカギになりつつある。 • ただ、開発現場の話で…組込み製品に持ち込むには、「安全性」が必要。 32

33.

AI技術が出てきた~現場開発に生成AI、AI活用 • 箱庭ドローンシミュレータの開発例 • OSS活動でドローンを飛行させることができるシミュレータ開発をしている。(組込みとは 関係ないけど…) これの開発は、メインが1人 サブ2人で開発… ただ、生成AI活用することで、スピードは速いし 精度も良いコードが生成できる。 便利な道具は、使う人次第…と理解して知識 がないと開発ができないのも現実。 そして、できたコードは、確実にテストが必要 33

34.

これからの組込み開発 変わっていくとこ、変わらないところ 34

35.

変わっていくとこ、変わらないところ • 変わっていくとこ… • 組込み開発というより、IT技術の応用したシステム開発が主流になりつつある。 最適化 35

36.

変わっていくとこ、変わらないところ • SDxに向けて…システムの構成は大幅に変わっていく? • 段々とIT技術が入ってきてるのは現状 ■SDxのための機能拡張 ■SDxのための安全の対策 36

37.

変わっていくとこ、変わらないところ • AIが出てきて開発プロセスも変わっていく… • Anthropicが言ったように開発スタイルは変わっていくはず… 大丈夫か… 組込み開発 大半の作業は、生成AI などが肩代わりしてくれる ようにはなる。 ただ、全てがAIに取って代わる わけではない。 確認は人の手が必要になるはず… AI ツールとして、人の代わりとしての 協調作業にはなっていくかもしれない… 37

38.

変わっていくとこ、変わらないところ • 変わらないところ… • SoC…どんなにリッチなものになっても、組込みの仕組みは変わらない • アーキテクチャなどはリッチになっても分解すれば、結局は一緒 CPU中心のアーキならば、 どんなにリッチでも考え方 は変わらない… ソフトからハード が遠いな~ 動かないとなったら、デバッグ、確認の作業は必要(今は…) 人の手での確認は必要。 ハードウェア開発部分は、 やっぱり変わらない(今は…) 38

39.

変わっていくとこ、変わらないところ • AIが出てきても変わらないところ…末端の製品を作っているからこその知識 • AIが自律学習する場合でも、システムに求められる「安全性」を担保しないといけないの は、人が考えることになる。 • 生成AI活用においても、「生成」させるプロンプトは、人が考えるもの。出力されたものが 正しいとは限らない。 「安全性」「セキュリティ」はIoT、AIが 出てきことにより、より重要な設計要素 ただ、製品の仕様、デバイスの仕様など を熟知していないと対応ができない… 組込み開発者ならではの知識が活かせ る部分でもある。 39

40.

変わっていくとこ、変わらないところ • 開発プロセス、製品ライフサイクルにおいて、AIでは担保しきれない部分は多 くある。ただ、より多くの知識(スキル)は必要 例えば、PSIRT活動においても、 正しい製品知識が求められる。 品質、安全性など 組込み特有な部分は まだ、AIでは担保難しい AI 品質、安全性の検証 も、まだ、AIでは担保は 難しい 40

41.

変わっていくとこ、変わらないところ • 箱庭ドローンシミュレータでの出来事 • 環境が違えど、組込み屋さんなら、仕組みが解れば、いろんなデバイスを扱える。 Quest3を用いたドローン操縦用のアプリ開発 Quest3 Bluetooth ゲームパッド Quest3にゲームパッドを接続して、アプリで操作させるとき… Quest3がどうやって動いているのか? ゲームパッドの入力はどうやってアプリで受け取れるのか? → adbでデバッグして、動作を確認しながら… → デバイスの仕様を把握できればアプリから操作可能 PCでの視線操縦も仕組みが 分かれば対応可能 41

42.

まとめ • 組込み技術は、応用ができる技術 • ただ、根幹、基礎…「組込み技術って何?」を把握できていることは重要 • AIを使っていく上でも、根幹の基礎をスキルとして身につけておかないと使いこなしは無理。 • 近年は、Raspberry Pi、Arduinoなど手軽に扱えるボードがあるので実践がし易い。 • 手軽に利用できるので、LED点滅からはじめて行くのもできる。 • Linux環境も手軽に利用できるので、中規模な開発経験も可能。 • エミュレータ、シミュレータも利用できるのでハードウェアがなくても可能。 スキルを身につけて武器にしよう いろんな分野に応用しよう 根幹を理解しよう。 基礎を勉強しよう。 「AIが…ちょっと何言ってんだか わからないですよ…」 ではなく、AI使うスキルを身につ けよう!(根幹 基礎が大事) AI 42

43.

箱庭ドローンシミュレータを使ったセンサ評価例 43