STM32F4 Discoveryも買いました
H8-3069Fが面白かったので、ついSTM32F4 Discoveryも買ってしまいました。Floatユニットがあるなんて、PC9801に8087を載せた時以来の感激です。
でも、使い古された3069Fと違って、ハードルが高そう。
とりあえず、audio_playback_and_recordのsampleをEWARMでコンパイルして、ST-LINKで書き込んでみた。イヤホンを差し込むとちゃんとループの音楽が聞こえて感激。
次はOSだ。サンプルにもFreeRTOSが含まれているが、組込み目的のミニマルセットで面白くない。OSにはシェルがなければ。BeRTOSはいろいろ揃っていて面白そうだが、まだF4用はなさそう。ChibiOS/RTはFreeRTOSと同じようだし。
といううわけで、探しているとnuttxが面白そう。STM32F4 Discoveryに対応しているし、nshというシェルも載っている。FreeRTOSより必要なリソースが多そうだが、STM32F4 Discoveryでは気にならない。
コンパイルするには、UNIX環境が必要そうなので、気は進まなかったが、Cygwinをインストールしてみた。何とか、努力したがnuttxのコンパイルができず、STM32F4 DiscoveryについてのREADMEを読むと、Cygwin環境はお勧めではなさそう。
結局、VirtualBoxをインストールして、実績のあるubuntu 11.04をセットアップした。debianと環境はほとんど同じだが、rootでないので、sudoがうっとおしい。
まず、arm-gccのセットアップからだが、以下の必要なパッケージをインストール。
git zlib1g-dev libtool flex bison libgmp3-dev libmpfr-dev libncurses5-dev libmpc-dev texinfo libftdi-dev autoconf gperf
よく引用されているhttps://github.com/MikeSmith/summon-arm-toolchain.gitのレポジトリーはもうないようなので、以下からダウンロードしてコンパイル。
git clone git://github.com/esden/summon-arm-toolchain cd summon-arm-toolchain ./summon-arm-toolchain
newlibのダウンロードに失敗するので、別にダウンロードしたnewlib-1.19.0.tar.gzをあらかじめsourcesディレクトリに置き、stampsディレクトリにnewlib-1.19.0.fetchファイルを作っておく。
かなり時間はかかったが、親ディレクトリーにsatができるので、.profileを編集して、PATH=$PATH:$HOME/sat/binでPATHを通しておく。
次に、nuttxの設定メニューを使うために、kconfig-frontendsをダウンロードする。最新は、kconfig-*にコマンド名が変わっているので、nuttxのレポジトリーから、kconfig-frontends-3.3.0-1.tar.gzをダウンロードしてインストール。
cd kconfig-frontends-3.3.0-1 ./configure sudo make install ldconfig
最後に、本体nuttx-6.22.tar.gzとapps-6.22.tar.gzをダウンロードして、コンパイル。
tar xvf nuttx* tar xvf apps* ln -s nuttx-6.22 nuttx ln -s apps-6.22 spps cd nuttx cd tools ./configure.sh stm32f4discovery/nsh cd .. make menuconfig . ./setenv.sh make
これで、nuttx.binができるので、windows7に移してボードに書き込み。
USART2がコンソールになるので、冗長になるが、下記の回路でレベル変換して、シリアル接続したのちUSB変換ケーブルでwindows7に接続。材料は秋月電子通商でICセットI-03030の300円とDサブ9ピンK-05406の150円。
teraterm-4.75でシリアル接続(115200bps8n1)して、リセットするとnshが動いた。
NuttShell (NSH) NuttX-6.22 nsh> help help usage: help [-v] [] [ dd help mkfifo set usleep ? echo kill mh sh xd cat exec losetup mw sleep cd exit ls ps test cp free mb pwd unset Builtin Apps: nsh> ls /: dev/ nsh> ls dev /dev: console null ttyS0 nsh> free total used free largest Mem: 193312 6688 186624 126288 nsh>
とりあえず、何もできないが、nshはアプリの追加ができるし、nuttx本体はいろいろ周辺のコンフィグレーションができそうで楽しみ。