mbed-os5でUSBSerial
os2からos5へ変えていきなさいということを言われているらしいので、数週間ずっとチャレンジしていました。
直近でやりたかったことは、Keil Studio Cloudのos2では実現できていたので、これをos5に移行する試みだった。os5はmbed-os-example-blinky5を作って、LEDの点滅動作ができていることを確認してのち、USBSerialを追加するもの。
変数参照が最適化される
os2からos5へ変更する際に、どうもTickerがうまく動かなかった。
Ticker tbase;
DigitalOut led(LED1);
volatile int tb_reach=0;
void tbase_t(void){
tb_reach=0;
}
int main(){
tbase.attach( callback(tbase_t) , 0.5 ) ;
while (true) {
led = !led;
// thread_sleep_for(500);
while( tb_reach );
tb_reach = 1;
}
}
mbed-os5-example-blinkyのthread_sleep_for()をTickerに変えるだけだから、動いて当然、と思ってたのに while( tb_reach ); のところからぬけてくれないみたいな動きになった。
mbed困っております2
前記事では、mbedビルドが違うことでUSBDeviceをインポートしたのちBuildエラーになることを書いたが、mbed.bldにビルドURLを書いてやれば、ビルドコンパイルができるようになる。
mbedビルド
https://os.mbed.com/users/mbed_official/code/mbed/builds
各ビルドをクリックすると、そのURLに飛ぶのだが、buildsの前にスラッシュが余計に入り、error表示が出る
https://os.mbed.com/users/mbed_official/code/mbed//builds/65be27845400/
ダブっているスラッシュを削除してアクセスすれば表示され、そのURLをmbed.bldに貼り付ければ、そのURLでビルドされるようだ。
mbed困っております
mbedオンラインコンパイラがなくなるため、段階的にKeilStudioで作業するように変えていってますが、「ほとんど動かない」。というか、うごくんだけど、いろんなエラーが出て気持ち悪い。何をやってもすっきりしない状態が続いている。
やりたいことは、Nucleo-F411にUSBの配線を施し仮想シリアルを動かしたいのである。テストは下記
OS2からOS5へ変更する
公式はここ
https://developer.arm.com/documentation/102497/1-5/Manage-an-Mbed-proje…
プロジェクトの中のmbed.bldとmbed(ライブラリ)を削除し、mbedライブラリを追加する(場所:https://github.com/ARMmbed/mbed-os)
Tips
いろいろ
とりあえず
シリアル通信
長らく疑問に思っていたことがあるが、今のところ理解できているわけじゃない。
CDCクラスの仮想COMシリアルは、実際の通信自体はUSBだ。しかし、仮想COMということで、ボーレート設定があり、実際ボーレート設定が間違っていると、通信ができず文字化けになったりして、通常のシリアル通信と同じ挙動を示す。
シリアル通信をどんな速度設定にしようと、実際の通信はFull-Speed以上であり、どうやってもそれ以上だ。また仮想COMで使用する通信にはハンドシェークがない。通常のシリアルならハードハンドシェーク(RTS/CTSあるいは、DTR/DSR、あるいはその両方)の設定があって結線が必要になるという事実がある。
実際、ボーレート設定などあるがUSBの最高速度で通信していて、ならパケットロストなど通常起こりえないなら、うまく出来ている(つまり速度は関係ない)のではないかという疑問だ。
mbedオンラインコンパイラなくなるって!
mbedからメールが来てる。いつかはこうなると思っていたが、どうなるんだろう、ぼくは・・・
と思ったが、Keil Cloudにmbedアカウントでログインできた。ハードウェアも同じものが出ているし、OS2,5,6の選択もしやすくなってる、エディタも見やすい。改善されているということなのか?プロジェクトは自分でコピーしないといけないようですが、どうやってコピーすればいいのだろう。同じように動くのかな、、という疑問はある。まだ書き込んではいないのですけど・・・
ググる翻訳を掲載
Keil StudioCloudの紹介とMbedオンラインコンパイラの廃止
ジョー・アルダーソン-2021年12月14日今年の初め、Armは新しいブラウザベースのIDEであるKeil StudioCloudのオープンベータ版を発表しました。 無料で使用でき、強力で最新のエディターが付属しており、その名前が示すように、より幅広いArmCMSISマイクロコントローラーエコシステムとMbedOSをサポートしています。
Replicant Nucleo UNIT2
frdmのUNIT2と同サイズの基板としてみます。ピン配列は同じになりませんがピン位置は同じです。