Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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++との具合が悪くなるようです.

65864570_617819808739359_5391264832244678656_n.png

このため,arm-none-eabi-gdbにオレオレ証明書を付けて対応することにします.
この記事を参考にしてください.

まずは証明書を作成します.
要点としては,"Keychain Access.app"でオレオレ証明書を作ること,
最初の画面では下記のようにすること,

  • 名前: gdbcert
  • 証明書のタイプ: コード署名
  • "デフォルトを無効化"にチェックを入れる

cert1.png

3番目の「証明書情報」では“メールアドレス”を空欄とすること,
10番目の「証明書の場所を指定」では“システム”を選択すること,
あとはデフォルトでOKです.

cert.png

その後,ターミナル上で下記を実行します.

$ 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」(日本語化パッケージをすでに導入済みの方は「拡張機能」)から選べます.

vscodeex.JPG

「C/C++」は必須でインストールしてください.

「C++ Intellisense」も入れておくと便利です.
日本語化したい方は「Japanese Language Pack for Visual Studio Code」もインストールすると良いでしょう.インストール後はVS Codeの再起動が必要です.
こんな感じになります.

vscodeext.JPG

まぁ漢は黙ってVimですよねぇ!??

ここまでの環境構築の手引きで分からないところがあれば,どしどしコメントください.

さてRun!!

別記事にしました.下記をご参照ください.

特に下記で案内のIoTあるじゃんのハンズオンセミナーに参加したい!方は,アプリのビルドまで出来ることを確認してください.GR-PEACHお持ちの方は最後までできます.

ハンズオンセミナー開催!

せっかく開発環境を整えたんだから使ってみたい!
ThingsだけじゃなくてInternet ofつまりIoTじゃね??

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

banner.jpg

TOPPERSとAzure IoT Hubを体験しよう!
しかもなんとPinKit(GR-PEARCH+センサーボード)をプレゼント!!

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

開発コンテスト開催!

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

toppers

TOPPERSプロジェクトでは「活用アイデア・アプリケーション開発コンテスト」を開催しています!
TOPPERSプロジェクトの開発成果物を活用するアイデア,もしくは開発成果物を用いたアプリケーションを募集します.
上記ハンズオンセミナーで学んだ知識を使って,IoT作品を開発して応募しませんか?

募集期間は9月1日までです.
こちらもぜひどうぞ!!

参考にした情報(多謝!

takasehideki
Asst. Prof. at Kyoto Univ. a.k.a 組込マー
fukuokaex
エンジニア/企業向けにElixirプロダクト開発・SI案件開発を支援する福岡のコミュニティ
https://fukuokaex.fun/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away