島根県産業技術センター の東です。
本レポートでは、STマイクロエレクトロニクス社製の32bitマイコン「STM32」シリーズに、mruby/c をポーティングする手順を説明します。
約2年前に同様の記事を執筆しましたが、このたび、
- mruby/c 4.0.0 をリリースした
- STMicroelectronics社提供の開発環境が、大きく変わった
ことから、別記事として書き直すことにしました。1
今回はその第1回、事前準備としての環境構築を行います。
なお、記載するキャプチャ画面および手順は、Windows 版をもとにしています。
記事は、複数回に分けて以下の順で進めていきます。
Chapter1: 開発環境構築(今回)
Chapter2: mruby/cでElChika(えるちか)
Chapter3: ハードウェアタイマーの使用
Chapter4: halの仕上げ
Chapter5: GPIOの拡張と、複数プログラムの動作
全体方針
- ST社製の無償開発環境(STM32CubeIDE) および、初期化コード生成ツール(STM32CubeMX)を使う
- コンパイラは、上記付属のgccを使う
- ペリフェラルのコントロールに、ST社純正HALライブラリを使う
今回の目標:手順
- STM32CubeIDE および、STM32CubeMX の環境構築を終わらせる
- ST社製マイコン評価ボード 「Nucleo-F401RE」 の、オンボードLEDを使って、C言語レベルでLED点滅をさせる。
準備するもの
- Nucleo-F401RE: STM32マイコン評価ボード
(https://www.st.com/ja/evaluation-tools/nucleo-f401re.html) - STM32CubeIDE: 統合開発環境
(https://www.st.com/ja/development-tools/stm32cubeide.html) - STM32CubeMX: 初期化コード生成ツール
https://www.st.com/ja/development-tools/stm32cubemx.html
CubeIDEは、現時点(2026/07)での最新版 v2.2.0 で、CubeMXは v6.18.0 で説明します。
作業手順
インストール
開発環境 CubeIDE をダウンロードし、インストーラのデフォルト値通りでインストールします。
初期化コード生成ツール CubeMX をダウンロードし、インストーラのデフォルト値通りでインストールします。
CubeIDE 初期設定
CubeIDE を起動します。
最初の起動時には、ワークスペースの保存ディレクトリの確認ダイアログが表示されますので、任意のわかりやすいディレクトリを指定します。

一旦、CubeIDEは終了させます。
CubeMX を使ってプロジェクトを生成
CubeMXを起動し、画面中央 New Project 欄の、ACCESS TO BOARD SELECTOR をクリックします。

New Project from a Board ウインドウが表示されます。

- 左上の Commercial Part Number 欄に、
F401REと入力します - 右下に NUCLEO-F401RE ボードが表示されるので、一度クリックして選択状態にします
- 右上の、
Start Projectボタンをクリックします - 「Initialize all peripherals with their default Mode ?」 とダイアログが表示されるので、
Yesをクリックします
これで、MPU選択と初期ピンアサインが終わった状態で元の画面に戻ります。

この画面で、LEDが接続されているピンを確認します。
- LD2[GreenLED] と表示されているピンを見ると、PA5 であることが分かります
- 青色のプッシュスイッチは、B1[Blue PushButton] と表示されているピンを確認し、PC13であることが分かります
プロジェクトマネージャ欄の入力
画面上部の「Project Manager」をクリックします。
Project Setting 欄に、以下の通り入力します。
- Project Name: 任意のプロジェクト名、ここでは、
mrubyc_v4と入力しました - Project Location: 先ほど CubeMX での設定と同じ場所を指定します
- Toolchain / IDE: STM32CubeIDE を選択します
自動的に利用するライブラリのダウンロードを行いますので、ネットへの接続が必要です。
2026/07/31現在、STサーバへの接続確認ができないというエラーが発生します。検索してみると、同様の悲鳴は、結構ヒットします。
私の環境でも27日にはライブラリが自動ダウンロードできましたが、昨日より記事執筆のために環境を作り直して再度試すと、接続できなくなりました。
代替手段として、www.st.com から、ライブラリ STM32CubeF4 を検索し、CubeMXへ手動インポートして続きを書いています。
しばらくすると、以下の完了ダイアログが表示されます。
Open Project ボタンをクリックすると、自動的に CubeIDE が起動し、プロジェクトがインポートされます。

ここまでの作業が正しいか、ビルドして確認
作業が正しくできているか、ここで一旦ビルドして確認します。
左ペイン Project Explorer の画面から、Core > Src とたどり、main.c をダブルクリックして開きます。

右ペインに表示された C言語ソースコードから、/* USER CODE BEGIN 2 */ の箇所を探し、その下に以下のコードを追記します。
/* USER CODE BEGIN 2 */
while( 1 ) {
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
HAL_Delay(500);
}
ST製 HAL ライブラリを使って、GPIOの制御と時間待ちを行っています。
HALの説明は、ST製ユーザーマニュアル UM1725 を参照してください。
ビルド
メニューから、Project > Build Project を選びます。
下部コンソールペインに、Build Finished. 0 errors, 0 warnings. と表示されるのを確認します。

書き込み
デバイスをUSBポートへ接続します。
この時、デバイスに付属する書き込みツールのファームウェアアップグレードを要求される場合があります。指示に従ってアップグレードしてください。
メニューから、Run > Run を選びます。もしくは、Run > Run As > 1 STM32 C/C++ Application を選びます。
Edit Configuration ダイアログが表示される場合がありますが、そのまま [OK] をクリックします。

デバイス上のオンボードLED LD2 が点滅するのを確認します。

おわりに
以上で、STM32CubeIDE / CubeMX を用いた開発環境の構築と、C言語での基本的な動作確認(えるちか)は完了です。
第2回では、今回作成したプロジェクトに mruby/c のソースコードを追加し、実機でRubyスクリプトを実行させる手順を解説します。
-
もとの記事を訂正する事も考えましたが、以前のバージョンの使い方をアーカイブ的に残しておく方が良いと思い、新しい記事にしました。 ↩



