3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-07-03

TL;DR

  • リアルタイムでマルチタスクなTOPPERSカーネル!を使って,組込みアプリを開発したい
  • Visual Studio Codeにてナウでヤングな開発環境を整えたい!
  • ThingsだけじゃなくてInternet ofつまりIoTじゃね??
  • そんなあなたに,こんなセミナーぜひどうぞ!!
    • 環境構築で分からないところがあれば,どしどしコメントください.

はじめに

TOPPERS」ってご存知ですか?
組込み技術者の純粋なこだわりと「匠のワザ」を結晶させた,オープンソースの由緒ある和製リアルタイムOSです.

CUIベースのクロス開発が一般的(というかワタシの好み^^)なのですが,そこはやっぱりIDEを使ってエレガントに開発を進めたいところ.
ということで本記事では,Visual Studio Codeによる開発環境の構築方法を説明します.

ターゲット

  • マイコンボード:GR-PEACH-FULL
  • TOPPERS/ASP3カーネル 3.2.0
  • ホストPC環境:Ubuntu 16.04.2 LTS
    • sudo権限が使える必要があります
    • USBポート1口が必要です
    • ディスク容量は1GBくらい使います

なおVisual Studio Codeの良いトコロはmulti platform supportかなと思います.ということで,WindowsやMacユーザの方は下記をご参照ください.

クロス開発環境の準備

Ubuntuだとさらにさっくり

makeとRubyのインストール

TOPPERSカーネルのビルドの際にはmakerubyを使用します.
Ubuntu使いともなるともう入っている方ばかりだとは思いますが,こんな感じでどうぞ〜

$ sudo apt install build-essential ruby

クロスコンパイラ

ターゲットのマイコンボードであるGR-PEACHのためのコンパイラとしてarm-none-eabi-gccを使います.

今回は下記バージョンのものを使用します.

ubuntuに対応するものはLinux 64-bitです.
ダウンロードしてきたものを解凍して,/usr/localにコピーします.

$ tar xf gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2 
$ sudo mv gcc-arm-none-eabi-6-2017-q2-update /usr/local/

デバッガ環境

Visual Studio Codeと連携させるデバッガとしてOpenOCDを使います.
今回は下記バージョンのものを導入します.

-centos64.tgzのものをダウンロードして,解凍して,また/usr/localに配置してください.

$ tar xzf gnu-mcu-eclipse-openocd-0.10.0-12-20190422-2015-centos64.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/

シリアル通信ドライバ

FTDIドライバですが,最近のLinuxでは標準でインストールされています.
特に作業は必要ありません.やったねっ

シリアル通信ターミナル

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です.

Ubuntuの場合は,.debをダウンロードしてきて,下記の操作が必要です.

$ sudo dpkg -i code_1.35.1-1560350270_amd64.deb
$ sudo apt-get install -f

拡張機能のインストール

拡張機能は,左下にある歯車の上から3つめ「Extensions」(日本語化パッケージをすでに導入済みの方は「拡張機能」)から選べます.

vscodeex.JPG

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

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

vscodeext.JPG

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

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

さてRun!!

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

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

既知の問題orz

Ubuntu版のVisual Studio Codeだと,デバッガ連携がうまくいかないようです.
GR-PEACHがシリアルデバイスとして認識される/dev/ttyACM0へのアクセスにsudo権限が必要となるのですが,これをVSCodeのlaunch.jsonなどから実行することができないようです.

対処法としては,VSCodeをsudo実行することになります^^;
実行方法の記事で詳しく解説しています.

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

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

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

banner.jpg

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

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

開発コンテスト開催!

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

toppers

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

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

3
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?