オフライン コンパイル

オフライン コンパイル

このページは http://mbed.org/handbook/Exporting-to-offline-toolchains を要約したものです

mbedはクラウド開発環境のため、インターネット接続がないとプログラムをコンパイルすることができません。

しかし、エクスポート機能を使用すれば各種のARM向けコンパイラを使い、ローカルのPC上でコンパイルすることができます。

エクスポート用ライブラリを選ぶ

オンラインコンパイラを開き、目的のプロジェクトに含まれている標準の「mbed」ライブラリを削除します。
次に、オフラインツールチェインライブラリをプロジェクトへインポートします。

[Repository '/users/mbed_official/code/mbed-export/' not found]

プロジェクトの名前で右クリックし、メニューから「Export Program...」をクリックします。

/media/uploads/emilmont/export_1.png

コンパイラの種類とCPUの種類を選択します。

/media/uploads/emilmont/export_2.png

zipファイルがダウンロードされます。

MDK-ARM (uVision)

Keil MDK-ARM Lite と CMSIS-DAP を使う方法が紹介されています。

μVision4でデバッグ! by Toyomasa

CodeSourcery

コンパイラ

あらかじめ Sourcery G++ をセットアップしておいてください。

Sourcery G++ Lite for ARM EABI が無料で利用できます。(GUIなし)
arm-2010q1-188-arm-none-eabi.exe をインストールしておくだけでOKでした。

一歩進んで、CMSIS開発環境を構築する場合の参考: http://d.hatena.ne.jp/deb/20110822/

エクスポート時、コンパイラとして「GCC (Code Sourcery)」を選択してください。

/media/uploads/emilmont/codesourcery_1.png

ダウンロードされたzipファイルを適当なフォルダへ展開します。

コマンドプロンプト(Windowsの場合)を開き、展開したフォルダへ移動してmakeします。

Sourcery G++ には「cs-make」というmakeコマンドが含まれています。

コマンド

C:\...> cd my_program

C:\...> dir /b
main.cpp
Makefile
mbed-export

C:\...> cs-make
arm-none-eabi-g++ -c -Os -fno-common -fmessage-length=0 -Wall -fno-exceptions -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections  -DTARGET_LPC1768 -DTOOLCHAIN_GCC_CS -DNDEBUG -std=gnu++98 -I./mbed -I./mbed/LPC1768 -I./mbed/LPC1768/GCC_CS  -o main.o main.cpp
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Wl,--gc-sections -Tmbed/LPC1768/GCC_CS/LPC1768.ld -L./mbed -L./mbed/LPC1768 -L./mbed/LPC1768/GCC_CS  -o my_program.elf main.o mbed/LPC1768/GCC_CS/startup_LPC17xx.o mbed/LPC1768/GCC_CS/sys.o mbed/LPC1768/GCC_CS/cmsis_nvic.o mbed/LPC1768/GCC_CS/core_cm3.o mbed/LPC1768/GCC_CS/system_LPC17xx.o -lmbed -lcapi -lstdc++ -lsupc++ -lm -lc -lgcc -lmbed -lcapi -lstdc++ -lsupc++ -lm -lc -lgcc
arm-none-eabi-objcopy -O binary my_program.elf my_program.bin

C:\...> dir /b
main.cpp
main.o
Makefile
mbed-export
my_program.bin
my_program.elf

できあがった「.bin」ファイルをmbedへ書き込みます。

mbed以外のマイコンボードへ書き込むには、こちらの「Flash(ROM)書込み 」を参照


Please log in to post comments.