✌️

自作基板でZephyr RTOS でLチカできた話(タイトル詐称)

2024/12/22に公開

始めない(ネタバラシ)

皆さん、Zephyr RTOSに興味御座いますよね!
自分も興味ありました。

本記事、まるで自作した基板にZephyr RTOSを移植したような話ですが、違います
本記事は、既にZephyr RTOSに対応したチップとボードに互換があった基板をたまたま作っていたことでLチカ出来た話になります。

自作のボード情報を乗せたZephyr RTOSのLチカは今後にご期待くださいませ。

https://www.docswell.com/s/5329535/KYDVYR-2024-12-15-162627

プレゼンの経緯を画像で説明

秋月で売っているSTM32、良い感じの物がF405だけ

仕事と趣味用にSTM32F405のマイコンボードを作っていた

Zephyr RTOSの対応ボードを眺めていたら、参考にしていたボードが出ていた

もしかしたら・・・動くんじゃね?(安易な話)

Lチカ出来ました!!

Zephyr RTOSの触りはじめ

先日、Zephyr RTOSと言う勉強会がある事をしり、参加してみました。
https://openforce.connpass.com/event/339663/

Zephyr RTOSは、他のFreeRTOSよりも抽象度が高く、Linuxの概念も残りつつ組込み用に組んでいるようで、面白そうでした。

とは言え、やっぱり実際にマイコンに入れてみないと分からないなぁ~な感じでした。

Zephyr RTOSは、チップ固有の情報、ボード固有の情報、モジュール固有の情報の様に、多くの情報を分割して、それぞれ選択してコンパイル出来るといった仕組みになっていました。

何も新規開発をせず、既存の自作ボードでZephyr RTOSが乗るのだろうか。

そう思って、早速色々調べて行きました。

Zephyr RTOSの環境設定

https://docs.zephyrproject.org/latest/develop/getting_started/index.html

基本この通りに進めると問題ありませんが
Ubuntu環境が最強です。また、WSLで試しましたが、USBでの書き込み等で問題があったので、RaspberryPiや別途PCを用いてUbuntuを入れると調子が良いです。

RaspberryPiで試す際は、最初の1個目でコケるのですが、パスで良い 感じでした。

Zephyr RTOSのボードを指定してのコンパイル

さて、最終段まで進めていくと、

west build -p always -b <your-board-name> samples/basic/blinky

と、ボードの選択が出てきます。
ここで、ボードを選択するのですが、今回自分が参考にして同じチップを使っていた

https://docs.zephyrproject.org/latest/boards/adafruit/feather_stm32f405/doc/index.html

を選択して、Blinkyをコンパイルしてみました。

するど、無事にコンパイルが進み、一安心。

早速、バイナリを書き込もうと・・・純正のプログラムライターで書きこもうとしました。

これが行けなかった。書き込みはできますが、動作しません。

どうやら、コンパイルしたバイナリの開始番地がズレているのかもしれません。

仕方が無いので、コンパイルしたUbuntuにマイコンを接続し、

サンプル通り

west build -b adafruit_feather_stm32f405 samples/basic/blinky
west flash

を行うと、書き込むことが出来ました!!

それは他人のフンドシじゃないか!!

そう!その通り!ボード情報マルパクリ!

自作基板用にZephyr RTOSを移植した訳じゃないので、何とも言えないですが、とりあえず最初の一歩を踏めました。

2025年は、ボード情報を弄ったりデバイスツリーを弄って、自分用の開発環境とボードの販売に力を入れたいと思いました!

こんな感じで、色んなドライバ―を試せる構図にしたいなぁ~
それでは!!

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■
ArtifactNoise合同会社では技術コンサルタントを行っております。
ご興味があれば是非ご連絡くださいませ。
北神雄太 kitagami(at)artifactnoise.com
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■

Discussion