CMakeとVSCodeで学ぶC/C++実務ビルド
guileschool
¥12,558
早割
50%
¥6,279初級 / C, C++, Linux, VSCode, cmake, gdb
New
New
CMakeLists.txtをコピペして使っているものの、なぜ動くのかわからず途方に暮れていませんか?VSCode上で実際に修正・ビルドしながら、ターゲット設計からパッケージング、クロスビルド、リモートデバッグまで身につけます。
初級
C, C++, Linux
RTOSのコードが時々止まってしまい、どこから確認すればいいのか途方に暮れたことはありませんか?STM32ボードで実際に起こる不具合40種類を意図的に再現し、画面上の数値・デバッガー・ログなどの証拠をもとに、原因を突き止めて修正するまで、最後まで一緒に取り組みます。
タスク分割、優先順位、周期待機(vTaskDelayとvTaskDelayUntil)を症状と数値から判断する
ISRの優先順位とFromISR APIの制約を守り、割り込みとRTOSを安全に連携する
キュー、通知、イベントグループ、ミューテックスをデータフローに合わせて選び、デッドロックや優先度逆転を回避する
DMA・UARTの非同期処理におけるバッファの所有権と完了タイミングを正しく扱う
スタック・ヒープ・ログ・ウォッチドッグで故障の証拠を集め、再発を防ぐ
CubeIDEデバッガ(ブレークポイント、コールスタック、Live Expressions)で原因を直接追跡する
時々停止するRTOSコードを勘ではなく証拠に基づいて診断し、修正する力。画面の数値、デバッガー、ログから原因を絞り込み、修正後は同じ条件で再確認する習慣が身につきます。
実習コードはC言語で書かれたFreeRTOSプロジェクトで、STM32ボード(STM32F429I-DISC1)上で動作し、結果はLVGLで描画したLCD画面の数値で確認します。RTOSを初めて学ぶための講座ではなく、動作はするものの、ときどき停止するコードを扱う講座です。
一言でまとめると
STM32ボード上で意図的に再現した実務で起こる故障40種類を、一つずつ証拠を追いながら原因を特定し、修正します。タスク設計、割り込みとDMA、キューと同期、メモリ診断、堅牢性まで。全40章、約14時間30分。
制作方法について
この講座は、AIを活用した制作工程で作られています。ナレーションには講師本人の声を学習させた音声合成を使用し、台本やグラフィックの制作にもAIツールを活用しました。企画と内容の確認は講師自身が行い、すべての実習結果は実際のSTM32ボードとSTM32CubeIDEで実行して確認した画面です。
RTOSの不具合は、たいていこのようにして見つかります。毎回止まるなら、むしろ簡単です。数時間に一度、特定の順序でボタンを押したときだけ発生し、ログを入れると消えてしまう不具合は、コードを何度読み返しても見つかりません。
そのため、多くの開発者は遅延時間を延ばしたり、優先度を変更したり、待機時間を無限にしたりしてみます。症状はいったん消えますが、なぜ直ったのか説明できない修正は、別の場所で再び問題を引き起こします。
この講義の目標は、原因を証拠に基づいて説明できる修正です。
「優先順位逆転とは何ですか?」 「ISR内ではなぜFromISR APIを使う必要があるのですか?」 「スタックオーバーフローをどうやって検出しますか?」 「ウォッチドッグがあるのに、なぜシステムが停止したままになるのですか?」
本で覚えた答えは、追加質問一つで崩れます。この講義では、こうした故障をボード上で実際に起こし、数値で原因を確認してから修正します。面接で「実際に再現してみたところ、このようになりました」と答えられるようになります。
各章では、実務で実際に遭遇する不具合を一つ取り上げます。不具合のあるビルドと修正済みのビルドを同じボードで順番に実行し、結果を数値で比較します。
STEP 1
不具合のあるビルドで症状を画面に表示します。
STEP 2
LCDの数値、デバッガー、ログから原因を絞り込みます。
STEP 3
修正したビルドと並べて確認します。
01プロジェクト構成と起動順序、初期化前の割り込み
02 GUIタスクとワーカータスクの境界
03 優先度、周期的な待機、ソフトウェアタイマー
04キュー、通知、イベントグループによるデータの受け渡し
05 ISRの優先度、FromISR API、DMA・UARTの完了タイミング
06 ミューテックス、優先度逆転、ロック順序とデッドロック
07 スタック・ヒープの計測とログが変える実行時間
08 センサー故障、再試行、無限待機、ウォッチドッグ
09長時間記録におけるカウンターのオーバーフロー
10 PCテストと長時間テストの合格基準
すべての不具合をSTM32F429I-DISC1とLVGLの画面一つで再現します。実行するたびに同じ数値が表示されるため、修正前後をそのまま比較できます。
STM32CubeIDEの実際のソース、ブレークポイント、コールスタック、Live Expressionsを使って、原因を直接追跡します。
2つのビルドを並べて比較します。
レジスタはRM0090・PM0214の原文を参照します。
他の解決策と比較します。
ボード画面の数値で故障前後を比較します
CubeIDEのデバッガーで原因となった行を特定します
第1回授業 · 同じソースなのに同僚のPCでビルドしたものだけ画面が崩れる
5回目の授業 · 不具合のあるビルドと修正済みビルドを同じボードで並べて比較
37回目のレッスン · ウォッチドッグがあっても停止したままリセットされない故障
第30回レッスン · ボードで測定した値をもとに描いたタイミング図
16回目のレッスン · デッドロックの4条件と断ち切る連鎖
16回目の授業 · 実際の製品でデッドロックが現れる様子
29回目のレッスン · スタックの末端を越えると隣接メモリを上書きする
38番の講義 · カウンターがオーバーフローしても引き算は正しい
26番目のレッスン · 負荷の大きい製品でだけ時々発生するタイムアウト
25番のレッスン · 完了通知で送信タスクを起こす構造
2008年からSamsung Electronics、LG Electronics、SK hynix、現代モービスなどの企業や機関で、開発者を指導してきました。この講義は、現場で扱ってきたRTOSの故障パターンを1台のボードで誰でも再現できるように再構成したものです。
タスクとキューは作れるものの、ときどき止まる問題を前に、どこから調べればよいのか途方に暮れたことがある方に向けた講義です。第1編(FreeRTOSプログラミング)でAPIを学んだ方は、第2編でそのAPIが実務でどのように不具合を起こすのかを扱います。
組み込み職を目指しているなら、第1編でAPIを習得し、第2編でそのAPIが実務でどのように壊れるのかを体験してみてください。現場の開発者が何年もかけて一つずつ遭遇する不具合を、全40章、約14時間30分にまとめました。
STM32F429I-DISC1(LCD内蔵)
STM32CubeIDE 2.2.0
STM32CubeMX(2回目のレッスン)、PuTTY(シリアルログのレッスン)
C言語、FreeRTOS、LVGL
各章の実行画面とデバッガー画面が動画に収録されています。
映像を見ながら、原因と修正の過程を追っていけます。
関連技術:FreeRTOS · rtos · stm32 · C · lvgl
Q. 第1編を受講していなくても大丈夫ですか?
FreeRTOSでタスク、キュー、セマフォを一度でも使ったことがあれば、すぐに受講できます。各章の冒頭で、必要な背景知識を短く振り返ります。FreeRTOSが初めてなら、1編を先に受講することをおすすめします。
Q. まだ就職前ですが、受講しても大丈夫ですか?
FreeRTOSでタスクとキューを一度でも使ったことがあれば十分です。むしろ就職前に受講するほうがお得です。面接でよく聞かれる優先度逆転、ISR処理、スタックオーバーフロー、デッドロックをすべてボード上で実際に再現し、修正してみるからです。
Q. ボードは必ず必要ですか?
いいえ。実行結果とデバッガー画面をすべて動画でお見せします。ご自身で再現してみたい場合は、STM32F429I-DISC1ボードをご用意ください。
Q. ナレーションはAI音声ですか?
はい。講師本人の声を学習させた音声合成です。台本と実習内容は講師が自ら企画・確認しており、実習画面は実際のボードで実行した結果です。
受講対象
FreeRTOSを使ってみたものの、ときどき停止する問題の原因を見つけられない開発者
動作はするが、なぜそのように書く必要があるのか説明できないRTOSユーザー
割り込み・DMAとRTOSを併用して行き詰まった開発者
優先度逆転、デッドロック、原子性を根拠を挙げて説明したい方
FreeRTOSプログラミング(第1編)を受講し、実践に進もうとしている受講生
前提知識
C言語のポインタと構造体
FreeRTOSの基本API(タスク、キュー、セマフォ)の使用経験
STM32CubeIDEの基本的な使い方
経歴認証済み
3,594
受講生
263
受講レビュー
281
回答
4.7
講座評価
7
講座
仁荷大学で電子工学を専攻し、組み込みソフトウェア開発者として働いていました。
2008年から18年間、現場で講義を行ってきました。サムスン電子、LG電子、SKハイニックス、現代モービス、LIG D&A、ソウル大学校などの企業や機関で開発者を指導し、その経験を講義教材としてまとめました。
『RTOS』(2008)、『Linuxシェル』(2018)、『FreeRTOS』(2019)、『Cortex-M』(2022)、『ブートローダーベースの組み込みシステム』(2023)
YouTube ガイルスクール(https://www.youtube.com/@guileschool):組み込みと開発の講義
Macの自動化も15年間研究しています。Keyboard MaestroとAppleScriptで反復作業を減らす方法を教え、Final Cut Pro自動化プラグイン「Greenlight」を自ら開発して販売しています。自作のツールはGitHub(https://github.com/guileschool)で公開しています。
YouTube キャプテンマックボット(https://www.youtube.com/@captainmacbot):MacでAIと自動化を使う方法
講義のリクエストおよびその他のお問い合わせはguileschool@gmail.comまでお送りください。
全体
43件 ∙ (14時間 42分)
講座資料:
知識共有者の他の講座はこちら
同じ分野の他の講座を見てみましょう!
期間限定セール
¥165,000
50%
¥41,442