MbedStudioでLチカまでやってみた byねころこ
どうも皆さんこんにちは,ねころこです.
先日Mbedの公式からオフラインで動作するIDEがリリースされましたね.
私はずっとLinuxでMbedのオフラインコンパイラを使っていたので,正直恩恵は微妙なんですが,デバッグができるという事,Gitが標準サポートであることなので,使ってみることにしました.
今回Lチカまでの道のりを書いていきます.
ちなみにエラーはたくさん起こりましたが,今回は割愛します.
結局皆さんが知りたいのは「こうしたらエラーが出た.」ではなく,「こうしたらできた」なのだと思っているので.
それでは始めます.
MbedStudioインストール
まずはとにもかくにもインストールです.
下記リンクより,MbedStudioをダウンロードしてインストールしてください.そこそこ時間がかかります.
os.mbed.com
MbedStudio LEDチカチカ(Lチカ)
インストールが終わればLチカです.
今回使用したボードは,LPC1768です.
まずは一番最初にこの画面になります.
初期状態は真っ暗だと思います.
私はLightテーマにしています.ダークは苦手なので(知らんがな)
次に,[Create Program]->[New Program...]をクリックします.
これが出てくるので,次に[Select]->[empty Mbed OS program]
を指定して,名前をsample(何でもよい)にします.
[Add Program]を選択すると,左側にsampleが追加されると思います.
なぜ,empty Mbed OS programにしたかというと,ほかのやつだと,MbedOSが入っていないからです.MbedOSが入っていないと,自分で必要なバージョンのものを引っ張って来る必要があります.なので,Mbed OSが入っているものを選びます.
また,MbedOSが入っていないと,そもそも接続したボードを認識しないなどがあります.MbedOS絶対必須.
そもそも初期状態で入ってないものがあるっていうのも,おいおいって感じがしますが,MbedOSが最初から入ったものがあるので,まあいいでしょう.
次はボードを繋ぎます.
ボードを繋ぐと,このようになります.
ちなみに,以下のようになる場合は,MbedOSが入っていない状態なので,OSを入れてください.
[Mbed OSが入っていない状態]
ここでマークの意味を説明すると,
トンカチマーク:プロジェクトをビルド(基本1回)
再生マーク:プログラムの実行
虫マーク:デバッグ
プログラムは以下のものをmain.cppに書きます.
#include "mbed.h" DigitalOut led1(LED1); Serial pc(USBTX, USBRX, 115200); Timer t; // main() runs in its own thread in the OS int main() { t.start(); int count = 0; float tim = 0; while (true) { // Blink LED and wait 0.5 seconds led1 = !led1; pc.printf("%f\r\n", t.read_ms() - tim); ++count; tim = t.read_ms(); wait_ms(20); } }
え?wait_ms(2)は速すぎるですって?
実は,私の環境だと,中の数字をnとすると,10*n[ms]waitしちゃうんですよね.
なので,2です.
ほかの人は速すぎたら20にしてください.
そしたらビルドしてください.
終われば,[Outout]に[IMAGE:BUILD/LPC1768/ARMC6/sample.bin]が表示されるので,それをMbedにコピーします.
MbedStudioでは,自動的に書き込むって言う風に書いてあったのですが,書き込んでくれないので自分で書き込みます.
再起動すれば一回だけ自動で書き込んでくれました.が,それ以降はだめでした.
sample.binを右クリックして,[Open Terminal]を押します.
私の環境だと,MbedはEドライブとして扱われているので,ターミナルで
cp sample.bin E:/
を実行すれば一発でコピーできます.
そしたら,Lチカができます.
シリアル通信を見てみると,200って表示されます.200msでループしてる….
PCを再起動したら,20msでループしたのですが,なぜか書き込んだ直後は200msでループします.
デバッグについてはまだ何もわかっていないです.
ブレーキングポイントを設置してコンティニューボタンを押せばできるよって書いてあったのですが,コンティニューボタン…?
そもそもデバッグに必要な機器って何?っていう状態です...
おそらくドキュメント読んでる限り,
LPC1768は単体でデバッグができそうであること.
デバッグにはデバッグボタンを押して,ブレイクポイントを設置すれば動作するはずであること.がわかりました.
まあ,バグもいくつか見つかっているようなので,今後に期待です.
以下,known issueです.
Known issues - Arm Mbed Studio | Mbed Studio Documentation
When you start a debug session, breakpoints are ignored until they are disabled and then re-enabled.
wwww