【mbed】Keil Studioの使い方入門
mbed LPC1768で動作確認
興味の赴くままに、昔学習していたmbed LPC1768を見つけたので、これってどうやって動かせれば良かったのかな?と思ったので、使ってみることに。ところが、
mbedの公式サイト を見ると、以下の重要なお知らせがありました。
The Mbed platform and OS will reach end of life in July 2026, when the Mbed website will be archived and it will no longer be possible to build projects in our online tools
Mbed プラットフォームと OSは2026年7月にサポート終了となり、その時点で Mbed Web サイトはアーカイブされ、オンライン ツールでプロジェクトを構築することはできなくなります。
色々調べた結果、mbed studio の後継として、Keil Studio Cloudが利用できることが分かりました。ただそれも2026年7月までのようです。
気づくのに遅いですが、そんなことになっているとは知りませんでした。そこで別れを惜しんで、Mbed アカウントで Keil Studio にログインし使ってみることにしました。
目次
Windows 10
Keil Studioの使い方
先ずはログインします。mbed Studioで使っていたEmailを入力します。
Login画面
初回は再度EmailとPasswordが確認されますので、もう一度入力します。
すると無事開発画面が表示され、使えそうな感じです。
開発画面
開発画面の①はプロジェクト名が表示されます。②はクリックすると、各種ターゲットマイコンがリスト表示されますので、ご自分のターゲットマイコンを選択してください。
金槌のようなアイコンをクリックするとコンパイルが始まります。
新規にプロジェクトを作成する場合は、画面中央の「+ New project」をクリックしてください。
新規プロジェクト作成
Selectをクリックすると、プルダウンリストが表示されますので、そこから選びます。プロジェクトの名前も任意に変更できます。sampleコードをもとに追加・修正していきます。
便利な機能
開発画面の③の「Connected device」はマイコンをUSB接続した状態で、クリックして指示に従っていくと、デバイスと接続できます。これでデバッグ機能も有効になります。
④はコンパイル、⑤はシリアルモニタをOpenします。Windowsではドライバーが必要ですが、Liniuxでは何もしなくても使えるようになり、デバッグに便利です。
但しファームウェアが古いままだと、コンパイルもうまくいきませんでした。(※私所有のmbed LPC1768は古いままでしたので、コンパイルかけると無限ループに入って終了しませんでした。)
古いままな方は、更新サイトでファームウェアの更新を済ませましょう。
LPC1768のファームウェアの更新
以下のサイトにアクセスしてダウンロードして、LPC1768にコピーします。
LPC1768のファームウェア
プログラムして動作確認
mbed-OS 5(ver 5.14.2)のサンプルコードを活用して、タイマー割り込みによるLEDの点滅(Lチカ)プログラムを作成し動作の確認を行います。
プロジェクトが複数ある場合、コンパイルする前に必ず該当するプロジェクトを有効にしておきます。
有効にする方法
プロジェクトを右クリックするとメニューが表れ、そこから「Set Active Project」を選択します。
後は、main.cppを開いてコードを記述してコンパイルし、binファイルをmbed LPC1768にコピーするだけです。
main.cpp
/* mbed Microcontroller Library
* Copyright (c) 2019 ARM Limited
* SPDX-License-Identifier: Apache-2.0
*/
#include "mbed.h"
#include "Ticker.h" // 一定周期の割り込み
#define BLINKING_RATE_MS 100
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
void led2_thread(void);
void led3_thread(void);
//割り込み
Ticker Switch2;
Ticker Switch3;
int main()
{
led2=0;
Switch2.attach(&led2_thread, 1); // 1秒ごとの割り込み
Switch3.attach(&led3_thread, 2); // 2秒ごとの割り込み
led1=0;
while (true) {
led1 = !led1;
thread_sleep_for(BLINKING_RATE_MS);
}
}
// タイマースレッド
void led2_thread() {
led2 = !led2;
}
void led3_thread() {
led3 = !led3;
}
タイマーを使ったLチカ動作
Ubuntu 20.04
書き込みできないエラーが発生
Cloud環境なのでWindows10と同じだろうと思い、Ubuntu20.04のパソコンのUSBに差し込んで使ってみたら、コンパイルは無事終了しましたが、LPC1768ボードに書き込みができません。このマイコンボードは読み込み専用で書き込み権限がないとのメッセージが出ます。
対応策
そこで、そもそもUSBメモリとして認識されているかという箇所から確認開始。
コマンドで確認
$ lsusb
(中略)
Bus 003 Device 014: ID 0d28:0204 NXP ARM mbed
$ df
(中略)
/dev/sdb 2016 430 1587 22% /media/username/MBED
usernameは各人の環境によって異なります。が一応認識してそうです。
結論として、マウントやり直せば正常に動作しました。
書き込み権限が付くようにremountするコマンド
$ sudo mount -o rw,remount /media/username/MBED
普段Ubuntuを使われている方は、『使えないのかなぁ!?』とヒヤッとするかと思いますが、Ubuntuでも使えます。
以上です。😁