モダンOSのお砂場(54) MbedOS6でATM0130カラーLCDを使う

ATM0130_NucleoF401RE_MbedOS6
Joseph Halfmoon

今回はATM0130B3というカラーLCDパネルをSTM32マイコン搭載Nucleo-F401REボードに取り付けてみます。Arm MbedOS6環境。開発ツールにはKeil Studio Cloudを使用です。もともとはArduino Uno用のデモプログラムだったものをMbedOS6用に書き換えてます。

“モダンOSのお砂場(54) MbedOS6でATM0130カラーLCDを使う” の続きを読む

モダンOSのお砂場(53) Mbed OS2用のソースをOS6でビルドできるように改変

Stdio
Joseph Halfmoon

別シリーズでMbedOS2用のソースをビルド。Keil Studio Cloudのエディタ画面上では問題の赤×印多数でしたが、OS2のライブラリを参照するように設定しておけば問題なくビルド完了。しかしOS6ではビルド不可です。今回、不可だった部分を修正、OS6のオブジェクトを作って動作を確認。小手先対応なんだけれども。

“モダンOSのお砂場(53) Mbed OS2用のソースをOS6でビルドできるように改変” の続きを読む

モダンOSのお砂場(52) Mbed OS6、AHT21B 温湿度センサ、I2C接続

AHT21B_DUT
Joseph Halfmoon

前回はDACをSPI接続。今回はI2C接続に戻ります。前々回はI2Cでデータをたれ流し、読み取りが入ってなかったためです。接続するデバイスはAHT21B温湿度センサです。すでに何度か使ってみてはいるものの、MbedOS環境でSTM32マイコンには接続してなかったです。まあ「淡々と」移植作業をすれば動くものは動く、と。

“モダンOSのお砂場(52) Mbed OS6、AHT21B 温湿度センサ、I2C接続” の続きを読む

モダンOSのお砂場(51) Mbed OS6, AD5626 12bit DAC SPI接続

DAresults
Joseph Halfmoon

別シリーズ「お手軽ツールで今更学ぶアナログ」にてSPI接続のDACを使ってみました。「マイコンで制御する方がお楽」と思ったので、さっそくやってみます。第48回でSPI接続のADCでアナログデータの読み込みをやりましたが、そのちょうど逆となります。前回使用のプログラムを流用いたしましたが、微妙に違うところは違うと。

“モダンOSのお砂場(51) Mbed OS6, AD5626 12bit DAC SPI接続” の続きを読む

モダンOSのお砂場(50) Mbed OS2->OS6お引越し、I2CでAQM1602編

NucleoF446RE_AQM1602
Joseph Halfmoon

開発環境を Mbed Online Compilerから Keil Studio Cloud に移行中です。ついでにMbed OS2の古いソースもOS6へ移行予定。前回はUARTで移行を試行、コマケー違いで引っかかりました。今回はI2CでOS2->OS6をやってみたいと思います。ターゲットはAQM1602液晶。

“モダンOSのお砂場(50) Mbed OS2->OS6お引越し、I2CでAQM1602編” の続きを読む

モダンOSのお砂場(49) Mbed OS6、「Serial」そういえばなくなってたのね

serialEC
Joseph Halfmoon

前回はSPI接続だったので、今回はUARTです。UARTなどいつもprintfデバッグで使ってるとも思ったのですが、マジメに確かめてみるといろいろあり。前回同様、OSはMbed OS v6.15、開発環境はオンラインのKeil Stucio Cloudです。ターゲットボードはST社のNucleo-F401REです。

“モダンOSのお砂場(49) Mbed OS6、「Serial」そういえばなくなってたのね” の続きを読む

モダンOSのお砂場(48) Mbed OS6、SPI接続ADC、AVR から STM32付替

KeilStudioCloud_ADCtest
Joseph Halfmoon

別シリーズでSPI接続のADCをArduino Unoに取り付け、SPI接続の確認を実施。今回は同じことをNucleo-F401REでやってみます。OSはMBed OS v6.15を使用、開発環境には最近使い始めた Keil Studio Cloudを利用。慣熟訓練?Arduinoよりコード短いんじゃないかい。
“モダンOSのお砂場(48) Mbed OS6、SPI接続ADC、AVR から STM32付替” の続きを読む

モダンOSのお砂場(47) Zephyr、キー割り込み受け。STM32F401RE

KYINTR_EC
Joseph Halfmoon

前々回にZephyrのデバイスツリーが分かったかのようなことを書いてしまいましたが、あれは一時の気の迷いでしたね。全然分かっちゃおりませんでしたな。今回、スイッチから割り込みを受けようとしてまた迷宮に迷いこみました。そういう時は素直にサンプルソースなど真似してみるべしと。やってみました。 “モダンOSのお砂場(47) Zephyr、キー割り込み受け。STM32F401RE” の続きを読む

モダンOSのお砂場(46) Zephyr、スレッド生成、ダブルLチカ STM32F401RE

ThreadA_VScode
Joseph Halfmoon

前回Zephyr OSのデバイスツリーの高い壁?を何とか乗り越えた?ので、今回はマルチスレッドに進みたいと思います。といっても前回作成のプログラムで2つ光らせていたLEDの片方を新設のスレッドの制御下に移すというだけのもの。なにはともあれマルチスレッド、と。

“モダンOSのお砂場(46) Zephyr、スレッド生成、ダブルLチカ STM32F401RE” の続きを読む

モダンOSのお砂場(45) Zephyr、抽象度?高っ!GPIOをトグルするまでのあれこれ

ZephyrGPIO_EC
Joseph Halfmoon

大分前にZephyr RTOSのサンプルをビルドした後進捗なく過ごしておりましたのは他でもありません、Device Treeの抽象度の高さにGPIOの端子をトグルさせるのもどうしてよいか分からない状態だったからです。その辺FreeRTOSもArm MbedOSも分かり易いのでZephyr避けてました。GWだし再開。

“モダンOSのお砂場(45) Zephyr、抽象度?高っ!GPIOをトグルするまでのあれこれ” の続きを読む

モダンOSのお砂場(44) Mbed OS6、SemaphoreでISRの中から排他制御

SemaphoreSampleDUT
Joseph Halfmoon

前回Mutex(2つあるうちのRTOS Mutexと呼ばれている方)を使ってみました。スレッド間の同期には有効なAPIですが、残念ながらISR(割り込みサービスルーチン)との間では使用できません。そこで今回はSemaphoreを使って、ISRとThreadの間で排他制御を行ってみます。

“モダンOSのお砂場(44) Mbed OS6、SemaphoreでISRの中から排他制御” の続きを読む

モダンOSのお砂場(43) Mbed OS6、Mutexと近縁APIの微妙な関係?

MutexDUT
Joseph Halfmoon

前回はThread間の通信に便利なMail APIを使ってみました。今回から排他制御に入りたいと思います。しかし似たようなAPIが複数あって何をどこに使ったら良いんだかRTOS素人の私にはサッパリです。今回は一番単純そうなMutexを実験しつつ、近縁?らしいAPIのいくつかについてまとめてみました。

“モダンOSのお砂場(43) Mbed OS6、Mutexと近縁APIの微妙な関係?” の続きを読む

モダンOSのお砂場(42) Mbed OS6、Mail、allocちょっと気が咎めるけど便利

Result
Joseph Halfmoon

前回はスレッド間で通信するのにQueueを使ってみましたが、今回は似た「先入れ先出し」の構造でMailです。Mail便利です。こちらを使うとQueueには戻れない?便利なのは、詰め込むデータのためのメモリ領域の割り当て/解放の機能を含んでいるところ。alloc使うと後戻りできまっせん。

“モダンOSのお砂場(42) Mbed OS6、Mail、allocちょっと気が咎めるけど便利” の続きを読む

モダンOSのお砂場(41) Mbed OS6、Queue、いろいろ疑問あるんですが。

Result
Joseph Halfmoon

今回はQueueを使ってみたいと思います。第34回で似たお名前のEventQueueというものを使ってみましたが、全く異なるものです。QueueはスレッドやISR間の通信のための仕組みで、EventQueueはノンプリエンプティブな制御権の移動の仕組みです。「よくある」Queueだと思ってやってみたのだけれど疑問あり。何故?

“モダンOSのお砂場(41) Mbed OS6、Queue、いろいろ疑問あるんですが。” の続きを読む