STM32で学ぶ組込みソフトウェア開発入門

#新入社員研修

STM32で学ぶ組込みソフトウェア開発入門 C言語・アセンブリ・センサー制御・FreeRTOSまで、実機で一気通貫

回路図もRTOSも、STM32の実機で手を動かしながら学ぶ。

Overview

研修概要

本研修は、組込みソフトウェア開発の実務で必要な「C言語・アセンブリ言語・センサー制御・リアルタイムOS」を体系的に習得させる、新入社員・若手エンジニア向けの実践型研修です。STM32マイコンボードを使い、知識と実装を同時に身につけます。

C言語の基礎から始まり、ARM Cortex-Mアセンブリ、GPIO/ADC等のハードウェア制御、FreeRTOSによる並行処理まで、一気通貫で提供することで、実際の組込み開発現場で即戦力として機能できる体制を構築させます。

Issues

こんな課題を持つ企業におすすめ

開発現場

  • 組込みC言語の基礎から実装まで体系的に教える社内リソースがなく、OJT頼みになっている。
  • 新入社員がマイコンやハードウェア制御の概念を理解するまでに時間がかかり、現場への配属が遅れている。
  • RTOSを使ったタスク設計や割り込み・同期処理の知識が乏しく、複雑な組込みシステムへの対応が難しい。
  • アセンブリ言語やデータシートの読み方など、ハードウェア寄りの基礎知識が現場エンジニアに不足している。
Goals

本研修の到達目標

For Engineers

開発現場

  • 1 STM32CubeIDEを用いた組込み開発環境を構築・操作できるようになります プロジェクト作成・ビルド・デバッガ操作・ブレークポイント設定・レジスタ確認まで、開発ツールの基本フローを習得できます。
  • 2 C言語・アセンブリ言語でマイコンを制御するプログラムを実装できるようになります GPIO制御・ADC取得・PWM出力・UART通信を実装し、ARM Cortex-Mのレジスタ操作やメモリ配置の仕組みを理解できます。
  • 3 FreeRTOS APIを使ったマルチタスク設計を実装できるようになります タスク生成・メッセージキュー・セマフォ・ミューテックス・イベントグループを実際のLED・センサー制御に組み込み、並行処理の設計手法を習得できます。
Features

本研修の特長

Feature 01

C言語からRTOSまで、段階的に積み上げる体系設計

組込みC言語・アセンブリ言語・センサー制御・リアルタイムOSの4領域を、フルネスオリジナルテキストで段階的に習得させます。前の知識を踏まえて次へ進む設計で、知識の抜けや飛び級が起きにくい構成です。

Feature 02

STM32実機とArduino Sensor Kitで、動く喜びを体感させる

STM32F405RGT6マイコンボード・LCD Keypad Shield・各種センサーキットを使い、LEDの点滅・キー入力・ブザー演奏・LCD表示・温湿度センサーなど多様な実習課題に取り組みます。理論と実装が同時に定着します。

Feature 03

総合制作と成果発表で、実務レベルの達成感を得られる

カリキュラムの最終フェーズでは、習得した全技術を組み合わせた総合制作(4日間)と成果発表会を実施します。設計から実装・発表まで一気通貫で経験させることで、現場配属後の自走力を育てます。

Curriculum

研修カリキュラム

期間:20日間 / 使用言語:C言語・ARMアセンブリ / 使用ボード:STM32F405RGT6

日程 章・学習テーマ 学習内容・習得スキル
1〜5日目 C言語基礎①:環境構築・シフト命令

STM32CubeIDEのインストール・プロジェクト作成・デバッガ接続(ST-LINK/V2)を行います。GCC/GNU環境でのシフト演算・ローテート命令・リスト確認を実施します。

C言語基礎②:セクション・メモリ構造

データセクション(.text / .data / .bss)の構造をmapファイル・listファイルで確認します。変数のメモリ配置を実証的に理解します。

C言語基礎③:ビット操作

AND(&)・OR(|)演算子によるビットのセット・リセットを実装します。レジスタ操作の基礎となるビット演算を習得します。

C言語基礎④:スタック・関数ポインタ

push / pop によるスタック動作をメモリ画面で確認します。関数ポインタ(四則演算テーブル)を実装し、動的な関数呼び出しの仕組みを理解します。

C言語基礎⑤:まとめ・演習

1〜4日目の内容を組み合わせた総合演習を行います。ブレークポイント・ステップ実行・Variablesウィンドウを活用したデバッグ手法を定着させます。

6日目 組込みC言語(HALライブラリ)

HAL_GPIO_WritePin / ReadPin・HAL_Delay を用いたデジタル入出力制御を習得します。LEDの点滅・スイッチ読み取りを実装し、HALライブラリの使い方を理解します。

7〜8日目 アセンブリ言語①:レジスタ・データ転送・算術命令

mov・ldr・str・add・sub・mul・sdiv 命令を学びます。レジスタ設定・メモリ転送・鶴亀算などの算術演習をデバッガで動作確認します。

アセンブリ言語②:条件分岐・演習

xpsr(ゼロ・フラグ)・bne / beq / cmp 命令によるループ処理を実装します。英字大文字→小文字変換など、メモリ操作を含む総合演習を行います。

9日目 データシートの読み方

STM32のリファレンスマニュアル・LCD 1602Aのアプリケーションマニュアルを題材に、ピン配置・タイミング特性・初期化手順を読み解く方法を習得します。

10〜14日目 組込み実習①:LED・ボタン制御

HAL_GPIO_WritePin / ReadPin を使ったLED制御・スイッチ入力を多様な条件(交互点滅・点滅速度切り替え・ON/OFFトグル)で実装します。

組込み実習②:ブザー・ADC制御

ブザーによる音程生成・楽曲演奏・PWM制御を実装します。ADCでボリューム・光センサー値を取得し、LED点滅速度やブザー音程への反映を行います。

組込み実習③:UART通信・センサー出力

ボリューム・光センサーの読み取り値をUART経由でターミナルに表示します。UART通信の基礎とADC出力のフォーマット処理を習得します。

組込み実習④:LCDドライバ実装(初期化・表示)

LCD Keypad Shieldを装着し、lcd.c / lcd.h を新規作成します。lcdInit・lcdPrint・lcdLocate・lcdClear など基本関数を実装します。

組込み実習⑤:LCDドライバ応用・総合演習

キャラクタジェネレーター(7×5ドット8種)・アナログメーター表示・キー入力連携・気圧・温度表示など応用課題を実装します。

15〜16日目 リアルタイムOS①:FreeRTOS 基礎・タスク・キュー・セマフォ

FreeRTOS の環境構築・タスク生成(xTaskCreate)・メッセージキュー・バイナリセマフォ・カウンティングセマフォ・イベントグループの各APIを実装・確認します。

リアルタイムOS②:ミューテックス・キュー応用・ドライバ実装

ミューテックス・再帰的ミューテックス・キュー(構造体渡し)を実装します。キードライバ・LCDドライバをRTOSタスクとして組み込み、マルチタスク制御を完成させます。

17〜20日目 総合制作(4日間)

C言語・アセンブリ・センサー制御・FreeRTOSを組み合わせた自由制作課題に取り組みます。要件定義・設計・実装・デバッグまで一気通貫で経験します。

成果発表会

制作した作品を受講者全員でデモ発表します。実装内容・工夫点・課題を説明し、現場配属後の自走力・発信力を育てます。

研修内容のカスタマイズについて 本研修で使用するマイコンボード・センサーキット・開発環境については、御社の実際の開発環境や使用デバイスに合わせてカスタマイズした内容での実施も可能です。また、期間・カリキュラムの範囲についてもご要望に応じて調整いたします。ぜひお気軽にご相談ください。
Environment

必要な受講環境と前提知識

受講環境

本研修は実機ハードウェアを使用します。以下の機材・環境をご用意いただくか、フルネスよりご提供も可能です。

OSWindows 11(64bit)
開発環境STM32CubeIDE(無償・フルネスにてインストール手順を提供)
マイコンボードSTM32F405RGT6搭載ボード(定番STM32)
デバッガST-LINK/V2
拡張シールドLCD Keypad Shield(16×2 LCD / 各種ボタン付き)
センサーキットArduino Sensor Kit(LED・ブザー・ボリューム・光センサー等)
参考書籍定番STM32で始めるIoT実験教室(樋口講師持参)

前提知識

  • PC操作:ファイル操作・ブラウザ操作などの基本的なPC操作ができること。
  • プログラミング経験:不問(C言語未経験者も受講可能です。大学でC言語を学んだ方はより深く理解できます)。
Contact

お問い合わせ

本研修に関するご質問・お申し込みは、以下のフォームよりお問い合わせください。
担当者より2営業日以内にご連絡いたします。