Edited at

Mac篇:VSCodeでTOPPERS/ASP3アプリの開発環境を整備する


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カーネルのビルドの際にはmakerubyを使用します.

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番目の「証明書情報」では“メールアドレス”を空欄とすること,

9番目?の「証明書の場所を指定」では“システム”を選択すること,

あとはデフォルトで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とのシリアル通信には,screenpicocomが使えます.

ご自由にどうぞです.


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じゃね??

そんなあなたに,こんなセミナーのご紹介です.

TOPPERSとAzure IoT Hubを体験しよう!

しかもなんとPinKit(GR-PEARCH+センサーボード)をプレゼント!!

TOPPERSプロジェクトの運営委員として活躍する技術者と,Microsoftの専門家をお招きして,デバイスからクラウドまで一気通貫!のTOPPERS+Azureアプリの開発を実際に学ぶことができます.

ぜひぜひどうぞです!!


開発コンテスト開催!

そして開発したIoTなシステム,ぜひともお披露目しませんか!??

TOPPERSプロジェクトでは「活用アイデア・アプリケーション開発コンテスト」を開催しています!

TOPPERSプロジェクトの開発成果物を活用するアイデア,もしくは開発成果物を用いたアプリケーションを募集します.

上記ハンズオンセミナーで学んだ知識を使って,IoT作品を開発して応募しませんか?

募集期間は9月1日までです.

こちらもぜひどうぞ!!


参考にした情報(多謝!