1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Nuttx intel mac buildメモ

Posted at

はじめに

BSD Linux系のStandardを採用しているRTOSを探しているところ、OSSプロジェクトがありApache Nuttxに辿り着きました。
下記が公式ドキュメントとなります。
https://nuttx.apache.org/docs/latest/index.html

VxWorksのRTOSのようなものでLinuxと似ているカーネル、システムコールの構成を持ちます。
(実際にPOSIXに準拠しているのは確認できてないので確認必要ですが。。)
組み込み系の実装も触りたかったので早速Bule Pillを購入、、届く間にマイコンに書き込む準備をします。
ほとんど公式ドキュメント通りですがmacの開発、ビルド環境について説明が足りない?ような印象があったのでほぼ自分用で作成してます。画面貼り付けはなく、コマンド一覧になります。

ビルド前の準備

  1. macで必要な依存性を解決します。下記のbrewからインストール。
  2. brew install libusb
  3. brew install ncurses
  4. brew install lsusb
  5. brew install minicom
  6. brew install automake
  7. brew install bison
  8. brew install flex
  9. brew install gperf
  10. brew install libtool
  11. brew install pkg-config
  12. nuttxのビルドに必要なライブラリインストール(https://repo.or.cz/libjaylink.git)
  13. git clone https://gitlab.zapb.de/libjaylink/libjaylink.git
  14. cd libjaylink
  15. ./autogen.sh
  16. ./configure
  17. make
  18. make install
  19. あとは、、ARM系のコンパイラーをインストール
  20. https://developer.arm.com/downloads/-/gnu-rm ここからバイナリファイルをダウンロードし、パスを通しました。
    1. brewでもできますが、nuttxのビルド時にmath.hのエラーが発生し、どうしても解決ができないのでバイナリからインストール、解決してます。
  21. flashing toolのインストールを行います。openocdを使います。
  22. git clone http://repo.or.cz/r/openocd.git
  23. cd openocd
  24. ./bootstrap
  25. ./configure --enable-internal-jimtcl --enable-maintaner-mode --disable-werror --disable-shared --enable-stlink --enable-jlink --enable-rlink --enable-vsllink --enable-ti-icdi --enable-remote-bitbang
  26. make
  27. sudo make insatall
  28. openocd --version
  29. nuttx toolをインストールします。
  30. git clone https://bitbucket.org/nuttx/tools.git
  31. cd tools/kconfig-frontends
  32. patch < ../kconfig-macos.diff -p 1
  33. ./configure --enable-mconf --disable-shared --enable-static --disable-gconf --disable-qconf --disable-nconf
  34. make
  35. sudo make install
  36. nuttxを公式レポジトリからダウンロード。
  37. git clone https://github.com/apache/nuttx.git nuttx
  38. git clone https://github.com/apache/nuttx-apps apps

ビルド手順

  1.  cd nuttx
  2.  ./tools/configure.sh -l stm32f4discovery:nsh (ターゲットのボードを選択します。)
  3.  cd..
  4.  make

ビルド後

  1. ls -l nuttx.bin
  2. ビルドが無事終わったらこのファイルが作成されていることを確認できます。

補足

configure.sh から対象ボードを確認する際には

./configure.sh -L 

から確認できます。公式ドキュメントにもサポートしているボードの情報があるので確認してからでも問題ないかと。。

上記の手順は必要最低限のタスクを確認してました。そのため設定編集などはほぼ実施してません。
アプリ実装時に使う機能をEnableにしたりなど必要になります。

最後に

まだマイコンは届いてなく待ち状態になりました。
組込み系の実装は初めてなので実装の仕方についてtaskモデルかthreadモデルか判断ができません。。
今回の実装から求めれいるものとしてhard-real time環境で、スケジューリング機能、interrupt、優先順位など確認したいと思うのでtaskモデルがいいかなーぐらいです。
今回は以上ですが初心者なのでツッコミなど大歓迎です。コミュニティなどあれば参加させていただきたいぐらいです。
これから実装することで進捗があればまた記事を作成しようと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?