2016年4月19日火曜日

mbed Compile APIをGo言語から使う

Compile APIを使ったプログラムをGo言語で作ってみました。

LEDチカチカmbed_blinkyをmbed LPC1768用にコンパイルしてバイナリファイルをダウンロードする実行例。


プログラム作成時のメモ

mbedオンラインIDEのアカウントのユーザ名とパスワードでBASIC認証をする。
Teams » mbed API users https://developer.mbed.org/teams/mbed-api-users/ に加入しなくても使える。

tasks/compiler/startで指定するプラットフォーム(platform)はmbedオンラインIDEとは関係ない。
mbedオンラインIDEでプラットフォームを追加しなくてもエラーにはならない。

プログラム(program)で指定したときはプログラムワークスペースのプログラムが対象になる。
対象外のプログラム名を指定するとコンパイル時にInternal errorになる。

リポジトリ(repo)でURL指定したときはパブリッシュされたプログラムが対象になる。
プライベートリポジトリ(private)も対象になる。
mbedオンラインIDEのアカウントとは関連のないリポジトリも対象なのでインポートしなくてもバイナリを作製出来た。

tasks/compiler/outputでコンパイルエラーの時のレスポンスはbinaryフィールドに文字列ではなくて、falseが返ってきます。
jsonライブラリ(encoding/json)の構造体への変換(json.Unmarshal)でエラーになってしまう。現状はエラーを無視して対応。

tasks/compiler/binでバイナリファイルをダウンロードをするのにタスクID(task_id)だけを指定すれば良さそうなものだが、バイナリファイル名(binary)とプログラム名(program)も指定しないとインターナルサーバーエラー(500)になる。
outputのレスポンスのbinary、programと同じでなければならない。

リポジトリでプログラムを指定した時はrepomode=1を設定しています。
repomode=だけではインターナルサーバーエラーになる。

参考資料

Compile APIのドキュメント
https://developer.mbed.org/handbook/Compile-API

作ったプログラム

Compile APIを使ったコマンド
https://bitbucket.org/va009039/rarmcc

Compile APIクライアントのライブラリ
https://bitbucket.org/va009039/mbedapi

Windows用の実行ファイル(rarmcc.exe)は次のサイトからダウンロードして下さい。
https://developer.mbed.org/users/va009039/notebook/mbed-api-client/

(2016/4/19)
---

0 件のコメント: