今回はATM0130B3というカラーLCDパネルをSTM32マイコン搭載Nucleo-F401REボードに取り付けてみます。Arm MbedOS6環境。開発ツールにはKeil Studio Cloudを使用です。もともとはArduino Uno用のデモプログラムだったものをMbedOS6用に書き換えてます。
モダンOSのお砂場(53) Mbed OS2用のソースをOS6でビルドできるように改変
別シリーズでMbedOS2用のソースをビルド。Keil Studio Cloudのエディタ画面上では問題の赤×印多数でしたが、OS2のライブラリを参照するように設定しておけば問題なくビルド完了。しかしOS6ではビルド不可です。今回、不可だった部分を修正、OS6のオブジェクトを作って動作を確認。小手先対応なんだけれども。
モダンOSのお砂場(52) Mbed OS6、AHT21B 温湿度センサ、I2C接続
モダンOSのお砂場(51) Mbed OS6, AD5626 12bit DAC SPI接続
別シリーズ「お手軽ツールで今更学ぶアナログ」にてSPI接続のDACを使ってみました。「マイコンで制御する方がお楽」と思ったので、さっそくやってみます。第48回でSPI接続のADCでアナログデータの読み込みをやりましたが、そのちょうど逆となります。前回使用のプログラムを流用いたしましたが、微妙に違うところは違うと。
モダンOSのお砂場(50) Mbed OS2->OS6お引越し、I2CでAQM1602編
開発環境を Mbed Online Compilerから Keil Studio Cloud に移行中です。ついでにMbed OS2の古いソースもOS6へ移行予定。前回はUARTで移行を試行、コマケー違いで引っかかりました。今回はI2CでOS2->OS6をやってみたいと思います。ターゲットはAQM1602液晶。
モダンOSのお砂場(49) Mbed OS6、「Serial」そういえばなくなってたのね
前回はSPI接続だったので、今回はUARTです。UARTなどいつもprintfデバッグで使ってるとも思ったのですが、マジメに確かめてみるといろいろあり。前回同様、OSはMbed OS v6.15、開発環境はオンラインのKeil Stucio Cloudです。ターゲットボードはST社のNucleo-F401REです。
モダンOSのお砂場(48) Mbed OS6、SPI接続ADC、AVR から STM32付替
別シリーズで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
前々回にZephyrのデバイスツリーが分かったかのようなことを書いてしまいましたが、あれは一時の気の迷いでしたね。全然分かっちゃおりませんでしたな。今回、スイッチから割り込みを受けようとしてまた迷宮に迷いこみました。そういう時は素直にサンプルソースなど真似してみるべしと。やってみました。 “モダンOSのお砂場(47) Zephyr、キー割り込み受け。STM32F401RE” の続きを読む
モダンOSのお砂場(46) Zephyr、スレッド生成、ダブルLチカ STM32F401RE
前回Zephyr OSのデバイスツリーの高い壁?を何とか乗り越えた?ので、今回はマルチスレッドに進みたいと思います。といっても前回作成のプログラムで2つ光らせていたLEDの片方を新設のスレッドの制御下に移すというだけのもの。なにはともあれマルチスレッド、と。
モダンOSのお砂場(45) Zephyr、抽象度?高っ!GPIOをトグルするまでのあれこれ
大分前にZephyr RTOSのサンプルをビルドした後進捗なく過ごしておりましたのは他でもありません、Device Treeの抽象度の高さにGPIOの端子をトグルさせるのもどうしてよいか分からない状態だったからです。その辺FreeRTOSもArm MbedOSも分かり易いのでZephyr避けてました。GWだし再開。
モダンOSのお砂場(44) Mbed OS6、SemaphoreでISRの中から排他制御
前回Mutex(2つあるうちのRTOS Mutexと呼ばれている方)を使ってみました。スレッド間の同期には有効なAPIですが、残念ながらISR(割り込みサービスルーチン)との間では使用できません。そこで今回はSemaphoreを使って、ISRとThreadの間で排他制御を行ってみます。
モダンOSのお砂場(43) Mbed OS6、Mutexと近縁APIの微妙な関係?
前回はThread間の通信に便利なMail APIを使ってみました。今回から排他制御に入りたいと思います。しかし似たようなAPIが複数あって何をどこに使ったら良いんだかRTOS素人の私にはサッパリです。今回は一番単純そうなMutexを実験しつつ、近縁?らしいAPIのいくつかについてまとめてみました。
モダンOSのお砂場(42) Mbed OS6、Mail、allocちょっと気が咎めるけど便利
前回はスレッド間で通信するのにQueueを使ってみましたが、今回は似た「先入れ先出し」の構造でMailです。Mail便利です。こちらを使うとQueueには戻れない?便利なのは、詰め込むデータのためのメモリ領域の割り当て/解放の機能を含んでいるところ。alloc使うと後戻りできまっせん。
モダンOSのお砂場(41) Mbed OS6、Queue、いろいろ疑問あるんですが。
今回はQueueを使ってみたいと思います。第34回で似たお名前のEventQueueというものを使ってみましたが、全く異なるものです。QueueはスレッドやISR間の通信のための仕組みで、EventQueueはノンプリエンプティブな制御権の移動の仕組みです。「よくある」Queueだと思ってやってみたのだけれど疑問あり。何故?