TL;DR
- リアルタイムでマルチタスクなTOPPERSカーネル!を使って,組込みアプリを開発したい
- Visual Studio Codeにてナウでヤングな開発環境を整えたい!
- ThingsだけじゃなくてInternet ofつまりIoTじゃね??
- そんなあなたに,こんなセミナーぜひどうぞ!!
- 環境構築で分からないところがあれば,どしどしコメントください.
2019/07/04追記:Mac版でもGDB連携が可能になりました!!
デバッガの署名をご覧ください.
はじめに
「TOPPERS」ってご存知ですか?
組込み技術者の純粋なこだわりと「匠のワザ」を結晶させた,オープンソースの由緒ある和製リアルタイムOSです.
CUIベースのクロス開発が一般的(というかワタシの好み^^)なのですが,そこはやっぱりIDEを使ってエレガントに開発を進めたいところ.
ということで本記事では,Visual Studio Codeによる開発環境の構築方法を説明します.
ターゲット
- マイコンボード:GR-PEACH-FULL
- TOPPERS/ASP3カーネル 3.2.0
- ホストPC環境:macOS Mojave (10.14.5)
- sudo権限が使える必要があります
- USBポート1口が必要です
- ディスク容量は1GBくらい使います
なおVisual Studio Codeの良いトコロはmulti platform supportかなと思います.ということで,WindowsやUbuntuユーザの方は下記をご参照ください.
クロス開発環境の準備
macだと割りとさっくり
makeとRubyのインストール
TOPPERSカーネルのビルドの際にはmake
とruby
を使用します.
macの場合はXcodeを導入するのが一番手っ取り早いです.
XcodeをApp Storeからインストールして,ターミナルを立ち上げてcommand-line toolsをインストールしていきます.
$ xcode-select --install
クロスコンパイラ
ターゲットのマイコンボードであるGR-PEACHのためのコンパイラとしてarm-none-eabi-gcc
を使います.
今回は下記バージョンのものを使用します.
macに対応するものはMac OS X 64-bit
です.
ダウンロードしてきたものを解凍して,/usr/local
にコピーします.
$ tar xf gcc-arm-none-eabi-6-2017-q2-update-mac.tar.bz2
$ sudo mv gcc-arm-none-eabi-6-2017-q2-update /usr/local/
デバッガ環境
Visual Studio Codeと連携させるデバッガとしてOpenOCDを使います.
今回は下記バージョンのものを導入します.
-macos.tgz
のものをダウンロードして,解凍して,また/usr/local
に配置してください.
$ tar xzf gnu-mcu-eclipse-openocd-0.10.0-12-20190422-2015-macos.tgz
$ sudo mv gnu-mcu-eclipse /usr/local/
次に下記をダウンロードしてきて,
/usr/local/gnu-mcu-eclipse/openocd/0.10.0-12-20190422-2015/scripts/target/
にコピーしてください.
$ cp renesas_rza1h_swd.cfg /usr/local/gnu-mcu-eclipse/openocd/0.10.0-12-20190422-2015/scripts/target/
デバッガの署名
mac版のVisual Studio Codeだと,標準設定ではデバッガ連携がうまくいきません.
arm-none-eabi-gdb
が署名無しアプリとなるのですが,これをVSCodeから実行するところで拡張機能C/C++との具合が悪くなるようです.
このため,arm-none-eabi-gdb
にオレオレ証明書を付けて対応することにします.
この記事を参考にしてください.
まずは証明書を作成します.
要点としては,"Keychain Access.app"
でオレオレ証明書を作ること,
最初の画面では下記のようにすること,
- 名前: gdbcert
- 証明書のタイプ: コード署名
- "デフォルトを無効化"にチェックを入れる
3番目の「証明書情報」では“メールアドレス”を空欄とすること,
10番目の「証明書の場所を指定」では“システム”を選択すること,
あとはデフォルトでOKです.
その後,ターミナル上で下記を実行します.
$ codesign -s gdbcert /usr/local/gcc-arm-none-eabi-6-2017-q2-update/bin/arm-none-eabi-gdb
# taskgatedを再起動
$ sudo pkill -KILL taskgated
シリアル通信ドライバ
GR-PEACHのUSBポートをシリアルポートとして認識させるためのドライバをインストールします.
Mac向けのドライバは,以下のURLからダウンロードしてインストーラを実行してください.
"Mac OS X 10.9 and above"の行の2.4.2を選べば良いはずです.
シリアル通信ターミナル
GR-PEACHとのシリアル通信には,screen
やpicocom
が使えます.
ご自由にどうぞです.
PATHの設定(任意)
IDE/GUIなぞに頼らずターミナル開発したい方向けです.
VSCodeだけで楽しい方は不要です.
$ echo "export PATH=/usr/local/gcc-arm-none-eabi-6-2017-q2-update/bin:\${PATH}" >> ~/.bashrc
$ echo "export PATH=/usr/local/gnu-mcu-eclipse/openocd/0.10.0-12-20190422-2015/bin:\${PATH}" >> ~/.bashrc
$ echo "TCINSTALL=/usr/local/gcc-arm-none-eabi-6-2017-q2-update/" >> ~/.bashrc
$ source ~/.bashrc
Visual Studio Codeの準備
ようやっと本題ですぅ
本体のインストール
下記からダウンロードできます.
すでにインストール済みの方は最新版にしましょう.本記事執筆時点では1.35.1です.
拡張機能のインストール
拡張機能は,左下にある歯車の上から3つめ「Extensions」(日本語化パッケージをすでに導入済みの方は「拡張機能」)から選べます.
**「C/C++」**は必須でインストールしてください.
**「C++ Intellisense」も入れておくと便利です.
日本語化したい方は「Japanese Language Pack for Visual Studio Code」**もインストールすると良いでしょう.インストール後はVS Codeの再起動が必要です.
こんな感じになります.
まぁ漢は黙ってVimですよねぇ!??
ここまでの環境構築の手引きで分からないところがあれば,どしどしコメントください.
さてRun!!
別記事にしました.下記をご参照ください.
特に下記で案内のIoTあるじゃんのハンズオンセミナーに参加したい!方は,アプリのビルドまで出来ることを確認してください.GR-PEACHお持ちの方は最後までできます.
ハンズオンセミナー開催!
せっかく開発環境を整えたんだから使ってみたい!
ThingsだけじゃなくてInternet ofつまりIoTじゃね??
そんなあなたに,こんなセミナーのご紹介です.
-
PinKitプレゼント付き!TOPPERSカーネル+Azure IoT 体験ハンズオン@横浜
- 2019/07/27(土) 13:30 〜 18:00
- 会場:情報科学専門学校6F
TOPPERSとAzure IoT Hubを体験しよう!
しかもなんとPinKit(GR-PEARCH+センサーボード)をプレゼント!!
TOPPERSプロジェクトの運営委員として活躍する技術者と,Microsoftの専門家をお招きして,デバイスからクラウドまで一気通貫!のTOPPERS+Azureアプリの開発を実際に学ぶことができます.
ぜひぜひどうぞです!!
開発コンテスト開催!
そして開発したIoTなシステム,ぜひともお披露目しませんか!??
TOPPERSプロジェクトでは「活用アイデア・アプリケーション開発コンテスト」を開催しています!
TOPPERSプロジェクトの開発成果物を活用するアイデア,もしくは開発成果物を用いたアプリケーションを募集します.
上記ハンズオンセミナーで学んだ知識を使って,IoT作品を開発して応募しませんか?
募集期間は9月1日までです.
こちらもぜひどうぞ!!