
ARM Cortex-M プロセッサのプログラミング
guileschool
¥19,280
25%
¥14,460初級 / ARM Architecture, Cortex, Embedded
4.9
(45)
600+
CORTEX-M プロセッサを体系的に学習したいですか? エンベデッド システムで最も重要な 2 つのトピックであるアセンブリアと割り込みを確実に整理します。
初級
ARM Architecture, Cortex, Embedded
CMakeLists.txtをコピペして使っていても、なぜ動くのかわからず困っていませんか?VSCodeで直接編集・ビルドしながら、ターゲット設計からパッケージング、クロスビルドやリモートデバッグまで、自分のものにしていきます。
Configure・Generate・Buildを区別して読み解くCMakeのビルドフローと、バージョン・ポリシーの問題解決
VSCode(CMake Tools、clangd)で設定・ビルド・テスト・デバッグが連動する開発ループ
PUBLIC / PRIVATE / INTERFACEを区別したターゲット中心設計とマルチモジュール構成
option、キャッシュ、configure_file、ジェネレータ式、プリセットによるビルド構成の制御
find_package、FetchContent、CTest、CPackへと続く依存関係・テスト・パッケージ配布
ツールチェーンファイルとsysrootを使ったクロスビルドとVSCodeリモートデバッグ
VSCodeで設定、ビルド、テスト、デバッグが一連の流れでつながるC/C++開発ループ。ボタンの位置を覚えるのではなく、設定ファイルと実際のログを読み、自分で修正できるようになります。
一言でまとめると
PC1台で設定・ビルド・テスト・デバッグのループを構築し、ターゲット中心の設計とテスト・パッケージ配布を経て、クロスビルドとリモートデバッグまで進みます。本編25章、約5時間。各章に練習問題があります。
制作方法のご案内
この講義はAIを活用した制作工程で制作しました。ナレーションは講師本人の声を学習した音声合成で、台本やグラフィックの制作にもAIツールを活用しています。企画と内容のチェックは、約20年にわたり組み込み分野の現場や企業研修に携わってきた講師が直接行いました。また、すべての演習結果は、実際のVSCode環境(PCおよびラズベリーパイの実機ボード)で実行して確認した画面です。
STEP 1
設定からデバッグまで一つの流れで
01~04章
STEP 2
ライブラリ、ビルド制御、テスト、パッケージ
05~19章・24~25章
STEP 3
ツールチェーンファイル、qemu、gdbserver
20~23章・ボードは選択式
コピーしてきたCMakeLists.txtは、ライブラリが1つ増えた瞬間、ビルドオプションが分岐した瞬間、クロスコンパイルを始めた瞬間に破綻します。ビルドはできても、なぜできるのかわからず、できないときはどこを直せばいいのかわかりません。
この講義の目標は、原理を理解して設計された、堅牢なビルドです。
問題はMakeではなく、散在するビルドルールです。プロジェクトが大きくなると、コンパイラオプションはあちこちにコピーされ、ディレクトリごとに作られたMakefile同士が呼び出し合って複雑に絡み合います。
CMakeでは、何をビルドするかを宣言し、ビルドツールやツールチェーンに適したビルドファイルはCMakeが生成します。LLVM、Qt、OpenCVのような大規模なC/C++オープンソースプロジェクトや、VSCode、CLionのようなIDEは、すべてこの方式でプロジェクトを理解します。
01 Configure / Generate / Build、キャッシュ、Ninja、CMake 4.x互換性
02 VSCode開発ループ:CMake Tools、clangd、ブレークポイント・Watch
03 静的・共有ライブラリとPUBLIC / PRIVATE / INTERFACE
04 add_subdirectoryによるマルチモジュール化とシンボル可視性
05 option、設定ヘッダー、Generator Expression、function、プリセット
06 Custom Commandsでビルド中にコード・ヘッダーを生成する
07 install、find_package、FetchContent
08 CTest・GoogleTestによるテストとCPack .debパッケージ
09 ツールチェーンファイル・sysrootを使ったクロスビルドとqemuの実行
10 Remote SSHによるリモート開発、gdbserverデバッグ、リリースまでの総合演習
設定ファイルと実際のConfigure / Buildログを一緒に読み解き、ツールのバージョンが変わっても同じ流れを見つけられるようにします。
ツールチェーンファイル、sysroot、qemu、gdbserverを使ったリモートデバッグまで扱います。ボードがなくても、PC上のqemuで最後まで追えます。
設定を除いて、エラーの原因を探します。
生成ファイルやバイナリ、シンボルまで確認します。
自分で解いて、解説で確認します
VSCodeの出力ウィンドウでCMakeのビルド過程をそのまま確認します
clangdが読み込むcompile_commands.jsonまで確認します
機材を最初から用意する必要はありません。すべての演習はUbuntu PC 1台で行います。クロス・リモート関連の章は、PC上のqemuで最後まで学習できます(20〜22章)。23章では、同じプロジェクトを実際のRaspberry Pi 3B+ボードに載せて、リモートデバッグまで試します。ボードがなくても、23章は画面を見ながら一緒に進められます。
2008年からサムスン電子、LG電子、SKハイニックス、現代モービスなどの企業や機関で、開発者を指導してきました。現場で受講生が最もつまずくのは、意外にもコードではなくビルドでした。この講義は、そのつまずきを順を追って解消できるよう構成しています。
CMakeLists.txtは読めるけれど、自分で設計するのは難しい方、毎回ビルドの問題に時間を取られている方のための講座です。
設定ファイルとログを読み、直接修正できるように
サーバー、デスクトップ、ライブラリ、機器向けソフトウェアにそのまま適用できます。
Ubuntu 22.04 LTS
CMake 3.22、Ninja(CMake 4.xとの互換性に関するケースを含む)
gcc 11(build-essential)、gdb
VSCode + CMake Tools、clangd
aarch64-linux-gnu-gcc、qemu-user
gdbserver、gdb-multiarch、Remote - SSH
Raspberry Pi 3B+以上は任意(なければqemu)
この講義で扱わないこと
Windows・MSVC・Visual Studioジェネレーター、macOS Xcode:実習はLinux基準です。原理は同じです。
Conan・vcpkgのようなパッケージマネージャー:FetchContent・find_packageで原理を扱います
CI(GitHub Actionsなど)、CDash、カバレッジレポート:テストはCTest・GoogleTestまで扱います。
Yocto・Buildroot、MCUファームウェアの書き込み・デバッグ:専門的なテーマのため、扱いません。
C++20モジュール、CMake 4.xの新機能:実習ではCMake 3.22を使用します。4.xとの互換性の問題のみ03章で扱います。
Q. Raspberry Piがなくても受講できますか?
いいえ。すべての実習はPC1台で行えます。クロスコンパイルとリモート開発(20〜22章)は、PC上のqemuで実行します。23章ではRaspberry Pi 3B+の実機を使って同じ手順を紹介します。ボードをお持ちであれば、そのまま同じように進められます。
Q. MacやWindowsでも同じようにできますか?
CMakeの構文とビルドの流れは、OSに依存しません。演習はUbuntu 22.04を基準としているため、VMまたはWSL2を推奨します。Visual Studio・Xcodeのジェネレーターは扱いません。
Q. C++プロジェクトやサーバー・デスクトップ開発にも適していますか?
はい。特定分野専用ではなく、汎用的なCMake実務講座です。例は主にCで進めますが、C/C++混在の章も含まれており、ターゲット設計、テスト、インストールとパッケージング、プリセットはC++プロジェクトにもそのまま適用できます。
学習対象は
誰でしょう?
MakefileベースのC/C++プロジェクトをCMakeに移行しようとしている開発者
CMakeLists.txtをコピーして使うものの、原理を知らないCMake初心者
VSCodeをビルド・デバッグまで一貫して行えるC/C++開発環境として使いたい開発者
ライブラリの構成からテスト、パッケージの配布まで、一連の流れを学びたい開発者
クロスコンパイル、ABI管理、リモートデバッグまで習得したいCMake中級ユーザー
前提知識、
必要でしょうか?
CまたはC++の基本文法
Linuxターミナルの基本コマンド
キャリア認証
3,581
受講生
262
受講レビュー
281
回答
4.7
講座評価
6
講座
仁荷大学で電子工学を専攻し、組み込みソフトウェア開発者として働いていました。
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までお送りください。
全体
29件 ∙ (5時間 16分)
講座資料:
1. 講座紹介
03:56
3. なぜCMakeなのか
12:06
4. ビルドの流れを完全に理解する
12:18
5. VSCode開発ループ
11:13
6. 静的ライブラリとターゲット
14:51
7. マルチモジュールプロジェクト
12:08
8. 共有ライブラリとシンボルの可視性
11:22
9. option・キャッシュ・-D
12:15
10. 設定ヘッダーとシステム検査
12:02
知識共有者の他の講座はこちら
同じ分野の他の講座を見てみましょう!
期間限定セール
¥49,500
50%
¥12,496