貧乏人でもmbed OSしたい
この記事はmbed Advent Calendar 2015 - Adventarの18日目の記事です。
はじめに
みなさま、申し訳ございません!先日、mbed Advent Calendar 2015 - Adventarの13日目の記事としてLinux on CortexM3(ARMv7M)というものを書かせていただいたのですが、私が間違っておりました! どうやら、mbedのエロい人の話によるとmbedなOSとは、mbed OSのことのようです。
そこで、今度こそ、mbed OSについて書かせてもらえればと思います。
はじめに
ということで、さっそくmbed OSを動かしてみようと思います。で、対応ボードを調べてみました。
mbed OS supported board list とのこと。 さらに、mbed用のスーパーバイザーであるmbed OS uVisorを利用するには、Cortex-M4が載っているものが必須のようです。そのため、実質的に選択可能なボードは下記の二種類となるようです。
- Freescale FRDM-K64F
- STMicorelectronics STM32F429I-DISCO
ということで、これらのボードを手に入れないといけないのですが、STM32F7-DISCOボードを購入したばかりの貧乏人に追加購入はきついです。。。 さてどうしたものかと考えていたところ、
(謎の王妃)「リアルボードが買えないなら、エミュレーターでやればいいじゃない」
との天啓を受けましたので、エミュレーター(QEmu)でmbed OSを楽しむことが出来るか試してみました!
Build mbed OS
天啓によりターゲットボードは、
とします。
An Official Manual
環境構築やビルドの方法は、"Running your first mbed OS application"を参考にしていますので、必要に応じて参照してください。※ここの手順を追いかけているだけなので、準拠しているところは省きます。
1, Create working directory
command line
$ mkdir blinky $ cd blinky
2, Initialize of yotta
command line
$ yotta init Enter the module name: <blinky> Enter the initial version: <0.0.0> 1.0.0 Is this an executable (instead of a re-usable library module)? <no> yes Short description: My blinky example program Author: Noritsuna Imamura What is the license for this project (Apache-2.0, ISC, MIT etc.)? <Apache-2.0>
3, Setup a target board
Our Target Board:
- stm32f429i-disco-gcc
command line
$ yotta target stm32f429i-disco-gcc
4, Install mbed driver
command line
$ yotta install mbed-drivers
5, Make a sample application
"./source"ディレクトリに、"app.cpp"というファイルを下記の内容で作成します:
Sample App:source/app.cpp
#include "mbed-drivers/mbed.h" static void blinky(void) { static DigitalOut led1(LED1); static DigitalOut led2(LED2); led1 = 1; led2 = 1; } void app_start(int, char**) { while(1) { blinky(); } }
6, Build mbed OS
command line
$ yotta build info: generate for target: stm32f429i-disco-gcc 0.0.17 at /home/noritsuna/mbedos/blinky/yotta_targets/stm32f429i-disco-gcc GCC version is: 4.9.3 suppressing warnings from mbed-hal-st-stm32cubef4 -- The ASM compiler identification is GNU -- Found assembler: /usr/bin/arm-none-eabi-gcc -- Configuring done -- Generating done -- Build files have been written to: /home/noritsuna/mbedos/blinky/build/stm32f429i-disco-gcc [159/159] Linking CXX executable source/blinky
7, Directory of output binary
command line
$ build/stm32f429i-disco-gcc/source/blinky.bin
これで、Lチカ mbed OSのビルドが終了し、バイナリが出来ました。
Setup the Emulator(QEmu)
今回、エミュレータは、"The GNU ARM Eclipse QEMU"を利用します。
Download the Emulator(QEmu)
下記よりダウンロードしてください: QEmu for Cortex-M
ダウンロード後、解凍してください。
Run the Emulator(QEmu)
これで、エミュレータの準備が出来ましたので、Lチカ mbed OSのバイナリを起動します。
command line
$ ./qemu/2.4.50-201510290935-dev/bin/qemu-system-gnuarmeclipse -board STM32F429I-Discovery -mcu STM32F429ZI -image ./blinky/build/stm32f429i-disco-gcc/source/blinky.bin
Options:
- -board STM32F429I-Discovery
- -mcu STM32F429ZI
- -image ./blinky/build/stm32f429i-disco-gcc/source/blinky.bin
これで、下記のようなものが表示されればOKです!!!エミュレータ上でmbed OSです!!!無料でmbed OSです!!!貧乏な俺たちでもmbed OS出来るんです!!!
- みなさん、お気づきかもしれませんが、ソースを追いかけたところ、このエミュレータ、Timer(Scheduler)非対応です・・・絶望しか感じませんが、貧乏人だからしょうがないよね!!!
Please log in to post comments.