SlideShare a Scribd company logo
1 of 52
Download to read offline
2019年8月22日
1
TOPPERSプロジェクト
ホーム・ネットワークWG 主査
長島 宏明/コアーズ株式会社
とぱめ
このスライドについて
2019/7/27にALGYANで開催した
「PinKitプレゼント付き!
TOPPERSカーネル+Azure IoT 体験ハンズオン@横浜」
で使用したVSCodeの環境を構築する際に、
つまずいた点などをまとめた資料です。
2
TOPPERSプロジェクトとは?
 プロジェクトの活動内容
 ITRON仕様の技術開発成果を出発点として、組込みシステム構築の基盤と
なる各種の高品質なオープンソースソフトウェアを開発するとともに、そ
の利用技術を提供
 プロジェクトの推進主体
 産学官の団体と個人が参加する産学官民連携プロジェクト
 2003年9月にNPO法人として組織化
3
組込みシステム分野において、広く使われる
オープンソースのリアルタイムOSの構築を目指す!
H-IIB(JAXA)
キザシ (スズキ)
OSP-P300
(オークマ)
ひとみ(JAXA)
提供:JAXA,イラスト:池下章裕
スカイラインハイブリッド (日産)
SoftBank
945SH
(シャープ) PM-A970(エプソン)
UA-101 (Roland)
4
IPSiO GX e3300 (リコー)
開発成果物の主な利用事例
IoT関連で注目されるRTOS
AWS
 FreeRTOSを開発している組織ごと買収し、
組込み機器で使いやすいライセンスに見直して提供
arm
 Mbed OSとしてRTOSやドライバを含むソフトウェアを提供
The Linux Foundation
 組込み向けRTOSのZephyr OSを開発
5
IoTにはRTOSも必要
ハンズオン
 GR-PEACHで
Azure IoT Centralに
テレメトリーを
送信した様子
 対応プロトコルは
 HTTP
 MQTT
 MQTT over WS
6
VSCodeを使った経緯
 ハンズオンに使ったPinKitは、ArmのCPUを載せたGR-PEACHとセン
サーボードを合わせたもの
 組込み開発という分野で、開発言語はC言語
 GR-PEACHの開発はRenesas純正のEclipse IDE「e2studio」を使用
 Macユーザーにも参加してもらえるようVSCodeで開発環境を構築
 コンパイラのgccとデバッガのOpenOCDは、
同じ提供元で同じバージョンがWindows/Mac/Linuxに対応
7
VSCodeにすることで、IDEもWindows/Mac/Linux対応に!
VSCodeの魅力
 Windows/Mac/Linuxに対応
 豊富な拡張機能
 標準でGitと連携できる
 マークダウンのプレビューができる
 Githubを使うのに便利!
8
C/C++をビルドする仕組みと、
デバッグする仕組みが、
拡張機能として提供されている!
しかも組込みでも使える!
GR-PEACHの開発環境を整えるにあたって
 TOPPERSを使ったハンズオン
 標準のビルド手順のMakefileを使ったビルド
 使用したソースはhttps://github.com/h7ga40/azure_iot_hub_peach
 makeもgccも、UNIX系のコマンド
 Mac/Linuxではフツーに使える
 Windowsでは少し考慮が必要
 Makefileには、gccの実行だけでなく
 フォルダを作ったり、ファイルを消したりといった操作もある
 ファイル操作は、UNIX系のコマンドで記述されている
 mkdirやrmなどのコマンドも必要
9
コマンドシェル
 Windowsでmakeを実行するのに使われるものに
 cygwinやmsysがある
 Linuxと互換性の高いwslもある
 元々e2studio用にgccとOpenOCDをインストールしている
 このツールはmsysでビルドされたもの
 これに合わせてmsysを使うことにした
 cygwin、msys、wslの違いは
 makeを使う上で気を付けたいのは、パス表現
10
パス表現の違い
 cygwinとmsys版のコマンドの場合
 Windowsのパス表現「C:¥temp¥temp.c」→OK
 UNIXのパス表現「/c/temp/temp.c」 →OK
 2つが混ざった「C:¥temp/temp.c」 →OK
 wslのコマンドの場合
 コマンド自体は、Linux向けのバイナリそのまま
 つまり、受け入れられるのはUNIXのパスだけ
11
パス表現の違いの問題
 VSCodeがファイルを開く際のパス
 コンパイラの出力(エラーや警告)に含まれるパス
 バイナリに含まれるデバッグ情報のソースコードのパス
12
これはWindowsのパス表現でなくてはいけません!
たぶん…
cygwinとmsysの違い
 ドライブパスに違いがある、「C:」であれば
 cygwinでは「/cygdrive/c/」
 msysでは「/c/」
 msysには本家?と分家?がある
 新しいバージョンコマンドや64bit版がある分家の方msys2を選択
13
パスの問題を避けるため、
手元のツールに合わせてmsysを選択
ツールについて
 msys2
 https://www.msys2.org/
 64bit版のインストール先「C:¥msys64」、bashは「C:¥msys64¥usr¥bin¥bash.exe」
 arm-none-eabi-gcc
 https://developer.arm.com/tools-and-software/open-source-software/developer-
tools/gnu-toolchain/gnu-rm/downloads/6-2017-q2-update
 インストール先「C:¥Program Files (x86)¥GNU Tools ARM Embedded¥6 2017-q2-
update」
 OpenOCD
 https://github.com/gnu-mcu-eclipse/openocd/releases/tag/v0.10.0-12-20190422
 インストール先「C:¥Program Files¥GNU MCU Eclipse¥OpenOCD¥0.10.0-12-
20190422-2015」
 詳しいインストール方法などは、ALGYAN運営の高瀬さんのQiitaの記事を参考に
https://qiita.com/takasehideki/items/59e3d179d462142a8633
14
ツールについての覚え書き
 msys2
 パッケージマネージャ「pacman」で、システムの更新や追加パッケージ
のインストールが可能
 TOPPERSではコンフィギュレーション用に「ruby」をインストール
 arm-none-eabi-gcc
 この資料のバージョンより新しいものがある
 OpenOCD
 この資料ではunofficial版を使っていた
 official版はhttp://openocd.org/getting-openocd/
 ターゲット設定のスクリプトに互換性がないかも…
15
開発環境を整えよう!
WindowsでVSCode、GR-PEACHの開発環境を整えよう!
16
フォルダ構成
 ソースファイルやMakefile、出力先などのフォルダ構成
 e2studioで扱っていたフォルダ構成をそのまま適用
17
ワークスペース
プロジェクト
src
ソースファイル
Debug
Makefile ビルド結果出力先
自前/Eclipse CDEが自動生成 ビルド構成「Debug」の場合
VSCodeではMakefileの位置など、別のフォルダ構成が良い場合もあるかもしれません
VSCodeの操作手順
1. VSCodeのターミナルに設定
 settings.json
2. ビルドタスクを作成
 tasks.json
3. コンパイラの出力(警告やエラー)の処理を設定
 tasks.json/problemMatcher
4. デバッグの設定
 launch.json
18
1.VSCodeのターミナルに設定
 VSCodeは開発ツールに応じてコマンドの実行環境を設定できる
 ターミナルでコマンドを実行するシェルを変更できる
 Windowsでの規定のシェルはPowerShell
 今回は、msysのシェル「bash」に変更
 msysをターミナルに設定する際、参考になったサイト
https://qiita.com/yumetodo/items/42132a1e8435504448aa
19
作業をするフォルダを開く
 e2studioからの以降の場合
 下の図の「プロジェクト」の
フォルダをVSCodeで開く
 空のフォルダでも可
20
ワークスペース
プロジェクト
src
ソースファイル
Debug
Makefile ビルド結果出力先
ここ
ワークスペースの設定を開く
 Ctrl+,で「設定」画面を開き
「ワークスペース」タブを選択
 「Terminal > Integrated >
Shell: Windows」の左をマウス
ポインタでポイントすると出る
歯車アイコンをクリックすると
表示される「JSONとして設定を
コピー」を選択
 「shell」で検索すると早い
21
settings.jsonを編集
 「settings.jsonで編集」をク
リック
 Ctrl+Cで貼り付け
 msysのbashへのパスを設定
 bashの引数を「--login -i」に
22
{
…
"terminal.integrated.shell.windows":
"C:¥¥msys64¥¥usr¥¥bin¥¥bash.exe",
"terminal.integrated.shellArgs.windows": [
"--login",
"-i"
]
…
}
環境変数の設定
 msysの動作を設定するための環境
変数を設定
 「settings.json」に追記
 「PATH」にGCCへのパス
 「MSYSTEM」に32bit版なら
「MINGW32」、
64bit版なら「MINGW64」
 「CHERE_INVOKING」にmsysの
作業ディレクトリ関連の動作設定
 「MSYS2_PATH_TYPE」にmsysの
PATH関連の動作設定
23
{
"terminal.integrated.shell.windows":
"C:¥¥msys64¥¥usr¥¥bin¥¥bash.exe",
"terminal.integrated.shellArgs.windows": [
"--login",
"-i"
],
"terminal.integrated.env.windows": {
“PATH": "C:¥¥Program Files (x86)¥¥GNU Tools
ARM Embedded¥¥6 2017-q2-update¥¥bin",
"CHERE_INVOKING": "1",
"MSYS2_PATH_TYPE": "inherit",
"MSYSTEM": "MINGW64",
},
…
}
ターミナルを表示
 Ctrl+@でターミナルを表示
 ターミナルを初めて表示したと
きに通知出る
 必ず「許可」を選択
 一度「許可しない」としてしま
うと二度と使えません!
24
対処法知っている方いませんか?
ターミナルを再表示
 Ctrl+@でターミナルを再表示
のような表示が出れば成功
(少し時間がかかります)
25
user@PC-NAME MINGW64 /d/projects/Algyan
$
2.ビルドタスクを作成
 makeコマンドを呼び出すビルドタスクを作る
 ビルドと出力ファイルを削除する動作2つを作る
 ビルドはターミナルで「make -j all」と入力するのと同じ動作とする
 「build app」という名前とする
 出力ファイルを削除するにはターミナルで「make -j clear」と入力する
のと同じ動作とする
 「clear app」という名前とする
 ちなみに「-j」はCPUのコア数分で並列実行するための指定
 マルチコアなPCでは、makeが高速になる
 弊害として、並列に実行したコンパイラの出力が混ざってしまい、ファイルパスが
特定できないことがある
26
タスクの作成
 Ctrl+Shift+Bで「ビルド タスク
の実行」を行う
 「tasks.json」ファイルがないと、
「実行するビルド タスクがあり
ません。ビルド タスクを構成す
る」が表示されるので、選択
27
ビルドタスクをテンプレートから追加
 「テンプレートから tasks.json
を生成」が表示されるので、選
択
28
ビルドタスクを任意のコマンドから追加
 テンプレートがいくつか表示さ
れるので、「Others 任意の外部
コマンドを実行する例」を選択
29
ビルドタスク設定
 「.vscode」フォルダに
「tasks.json」ファイルが生成さ
れ、開かれる
 例は「echo Hello」を実行する
タスク
30
タスク「echo」を実行
 メニューから「ターミナル」→
「タスクの実行」を選択
 出力のスキャンについて聞かれ
るので
「今後このタスクの出力はス
キャンしない」を選択
 ターミナルに結果が表示される
31
> Executing task: echo Hello <
Hello
ターミナルはタスクで再利用されます、閉じるには任意のキーを
押してください。
tasks.jsonの内容
 ターミナルで「echo Hello」と
入力したのと同じ動作になる
 「echo ${selectedText}」など
に変更すると、
VSCodeで用意されている変数の
内容が確認できる
32
{
// See
https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "echo",
"type": "shell",
"command": "echo Hello“,
"problemMatcher": []
}
]
}
 変数の種類については下記参照
https://code.visualstudio.com/docs/editor/variables-reference
ビルドのためのタスク追加
 ビルド タスク
 「make –j all」コマンドを実行するタスク
 「group」に「build」を指定すると「ビルド タスク」になる
33
{
…
"tasks": [
{
"label": "build all",
"command": "make.exe"
"args": [ "-j", "all" ],
"group": {
"kind": "build",
"isDefault": true
}
},
…
makeコマンドを指定
makeコマンドの引数を指定
出力ファイルを削除のためのタスク追加
 出力ファイルを削除するタスク
 「make –j clean」コマンドを実行するタスク
 ビルドタスクのコピぺでコマンド引数を変える
34
{
…
"tasks": [
{
"label": "clean all",
"command": "make.exe"
"args": [ "-j", “clean" ],
"group": "build",
},
…
3.コンパイラの出力の処理を設定
 コンパイルエラーなどの出力を解析する
 「problemMatcher」を「$gcc」にすればGCCの出力を処理できる
 少し違った動作をさせたいときは、下記のように記述
35
…
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceFolder}/Debug"
],
"pattern": {
"regexp": "^(.*):(¥¥d+):(¥¥d+):¥¥s+(warning|error|fatal error):¥¥s+(.*)$",
"file": 1, "line": 2, "column": 3, "severity": 4, "message": 5
}
},
…
Makefileのあるフォルダ
Makefileからの相対パス
Makefileの位置とスキャンパス
 Makefileでは、ソースコードへの相対パスでgccなどのコマンドを呼ぶ
 GCCの出力は「Makefile」からの相対パスでソースコードが指定される
 スキャン結果と合うよう「fileLocation」は「Makefile」の位置にする
36
app
src
main.c
Debug
Makefile main.o app.elf
fileLocation
../src/main.c:100:4: error: undefined symbol
${workspaceFolder}/Debug/../src/main.c
workspaceFolder
4.デバッグの設定
 GBDとOpenOCDを使ってデバッグする設定をする
 GDBはarm-none-eabi-gccに付属するarm-none-eabi-gdb
 GR-PEACHとはOpenOCDで繋げる
 VSCodeはGDBと対話してソースコードデバッグができる
 GDBはデバッグサーバーとしてOpenOCDと接続する
37
CMSYS-DAP OpenOCD TCP:3333 GDB
デバッグ画面の表示
 サイドバーのデバッグアイコン
を押し「デバッグ」画面を表示
38
ビルド設定ファイルの作成
 歯車ボタンを押し、
「C++(GDB/LLDB)」を選択
 「.vscode¥launch.json」が作
成さる
39
launch.jsonの内容
 作成されたlaunch.jsonの内容
 GDB向けのテンプレートが作成される
 GDBやOpenOCDの*.exeへのパスをフルパスで設定
 OpenOCDはコマンド引数にターゲット用のスクリプトファイルを設定
40
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "enter program name, for example ${workspaceFolder}/a.exe",
…
GDBとOpenOCDの起動設定
 「launch.json」の下記の部分を書き換え、または追加
41
{
…
"program": "${workspaceFolder}/Debug/${workspaceFolderBasename}.elf",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/Debug",
"environment": [],
"externalConsole": false,
"targetArchitecture": "ARM",
"MIMode": "gdb",
"miDebuggerPath": "C:¥¥Program Files (x86)¥¥GNU Tools ARM Embedded¥¥6 2017-q2-update¥¥bin¥¥arm-none-
eabi-gdb.exe",
"debugServerPath": "C:¥¥Program Files¥¥GNU MCU Eclipse¥¥OpenOCD¥¥0.10.0-12-20190422-
2015¥¥bin¥¥openocd.exe",
"debugServerArgs": "-f interface/cmsis-dap.cfg -f target/renesas_rza1h_swd.cfg",
"setupCommands": [
{
…
ビルド結果へのパス
作業フォルダ
GR-PEACHのCPU、ARMを指定
GCCのインストールパス
にあるGDBを指定
OpenOCDの
インストールパス
OpenOCD起動時の引数
ターゲットデバイス固有の
スクリプトファイルを指定
GDBとOpenOCDの起動設定(続き)
 GDBのセットアップコマンドを追加
42
{
…
"setupCommands": [
{
"text": "-target-select remote localhost:3333",
"ignoreFailures": false
},
{
"text": "-enable-pretty-printing",
"ignoreFailures": false
},
{
"text": "symbol-file ${workspaceFolderBasename}.elf",
"ignoreFailures": false
}
…
GDBからOpenOCDへの接続
バイナリコードと
ソースコードの対応付け情報のみ設定
GR-PEACHはバイナリをCMSYS-DAP経由で書き込めないため「symbol-file」
書き込めるデバイスは「-file-exec-and-symbols ${workspaceFolderBasename}.elf」
マルチワークスペースについて
 アプリで使うライブラリを別途ビルドしておきたいことがある
 アプリもライブラリも、それぞれのワークスペースとしたい
 Makefileが異なる
 ビルド時間の短縮
 「.vscode」の配下の設定ファイルはそのまま有効
43
マルチワークスペース
アプリのワークスペース
.vscode src
ソースファイル
Debug
Makefile
ライブラリのワークスペース
.vscode inc
ヘッダーファイル
src
ソースファイル
Debug
Makefile
マルチワークスペースへの変更
 メインのフォルダを開く
 アプリをメインとする
 アプリのワークスペースのフォ
ルダを開く
44
ライブラリのワークスペースを追加
 ライブラリのワークスペースを
追加
 「ファイル」メニューの「フォ
ルダーをワークスペースに追
加」で、ライブラリのワークス
ペースのフォルダを開く
45
マルチワークスペース
 アプリとライブラリを持つマル
チワークスペースになった
46
マルチワークスペースを保存
 ワークスペースを保存
 「ファイル」メニューの「名前
を付けてワークスペースを保
存」で、ワークスペースを保存
 ファイル名に「*.code-
workspace」の拡張子が付いた
ファイルに保存される
 以降このファイルを開くとマル
チワークスペースで開くことが
できる
47
マルチワークスペースの注意
 スキャンパスを注意したMakefileにする
 ライブラリのヘッダーファイルの参照などワークスペースを跨ぐ参照があ
る
 GCCの出力するパスをワークスペースのフォルダ名を含む形にする
48
マルチワークスペース
lib1
inc
lib1.h
src
lib1.c
Debug
Makefile
lib2
inc
lib2.h
src
lib2.c
Debug
Makefile
app
src
main.c
Debug
Makefile
../../lib2/inc/lib2.h:200:8: warning: macro redefined
../../app/src/main.c:100:4: error: undefined symbol
workspaceFolder
fileLocation
最後に
 外部ツールが使える
 VSCodeが知らないツールを使ってユーザーが機能拡張できる
 ユーザー環境に依存するパスを設定する必要がある
 WindowsでUNIX系のツールを使う
 パス表現の違いに注意する
 CPUメーカ純正開発環境にあってVSCodeにないもの
 ディスアセンブルやレジスタ表示がない
 外部ポートのレジスタ表示がない
49
SONYはSPRESENSE向けVSCodeの開発環境提供を発表
今後他のメーカーも対応してくれることを期待
Cortex-Debugはまだ試してません
本日更新のC/C++ ver.0.25では動かないことが判明…
50
51
52
ありがとうございました

More Related Content

What's hot

オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫Yuta Imai
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すTakaya Saeki
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMPYusuke Kagata
 
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計Kouji YAMADA
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門Kohei Tokunaga
 
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with KarateTakanori Suzuki
 
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container ServiceAWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container ServiceAmazon Web Services Japan
 
Karateによる UI Test Automation 革命
Karateによる UI Test Automation 革命Karateによる UI Test Automation 革命
Karateによる UI Test Automation 革命Takanori Suzuki
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Masahito Zembutsu
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みTakeshi Ogawa
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 
はじめてのソフトウェアテスト2019
はじめてのソフトウェアテスト2019はじめてのソフトウェアテスト2019
はじめてのソフトウェアテスト2019Rina Fukuda
 
.NET Core時代のCI/CD
.NET Core時代のCI/CD.NET Core時代のCI/CD
.NET Core時代のCI/CDYuta Matsumura
 
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)NTT DATA Technology & Innovation
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5Takahiro YAMADA
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方wata2ki
 
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるDockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるKohei Tokunaga
 

What's hot (20)

オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
 
Guide To AGPL
Guide To AGPLGuide To AGPL
Guide To AGPL
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMP
 
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate
 
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container ServiceAWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
 
Karateによる UI Test Automation 革命
Karateによる UI Test Automation 革命Karateによる UI Test Automation 革命
Karateによる UI Test Automation 革命
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
はじめてのソフトウェアテスト2019
はじめてのソフトウェアテスト2019はじめてのソフトウェアテスト2019
はじめてのソフトウェアテスト2019
 
.NET Core時代のCI/CD
.NET Core時代のCI/CD.NET Core時代のCI/CD
.NET Core時代のCI/CD
 
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方
 
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるDockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐる
 

Similar to TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術

Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会Mori Tetsuya
 
C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)
C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)
C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)takots
 
【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン
【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン
【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオンさくらインターネット株式会社
 
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~Hideki Takase
 
TOPPERSプロジェクトのご紹介@IoT ALGYAN
TOPPERSプロジェクトのご紹介@IoT ALGYANTOPPERSプロジェクトのご紹介@IoT ALGYAN
TOPPERSプロジェクトのご紹介@IoT ALGYANHideki Takase
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Takako Miyagawa
 
Webシステムプログラミング20150413
Webシステムプログラミング20150413Webシステムプログラミング20150413
Webシステムプログラミング20150413義広 河野
 
Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋智啓 出川
 
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダJAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダKenichi Yoshida
 
Osc2012 appinventor のその後
Osc2012 appinventor のその後Osc2012 appinventor のその後
Osc2012 appinventor のその後Katsumi Honda
 
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~法林浩之
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Yuki Higuchi
 
.NETの自作ツール公開手段
.NETの自作ツール公開手段.NETの自作ツール公開手段
.NETの自作ツール公開手段Pierre3 小林
 

Similar to TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術 (20)

Web IDE Gitpodを使ってTOPPES OSを体験してみよう
Web IDE Gitpodを使ってTOPPES OSを体験してみようWeb IDE Gitpodを使ってTOPPES OSを体験してみよう
Web IDE Gitpodを使ってTOPPES OSを体験してみよう
 
SpinnakerとOpenStackの構築
SpinnakerとOpenStackの構築SpinnakerとOpenStackの構築
SpinnakerとOpenStackの構築
 
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
 
C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)
C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)
C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版)
 
【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン
【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン
【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン
 
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
 
TOPPERSプロジェクトのご紹介@IoT ALGYAN
TOPPERSプロジェクトのご紹介@IoT ALGYANTOPPERSプロジェクトのご紹介@IoT ALGYAN
TOPPERSプロジェクトのご紹介@IoT ALGYAN
 
Titanium実装最初の一歩.
Titanium実装最初の一歩. Titanium実装最初の一歩.
Titanium実装最初の一歩.
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
 
Visual StudioでWixをビルドしてみた
Visual StudioでWixをビルドしてみたVisual StudioでWixをビルドしてみた
Visual StudioでWixをビルドしてみた
 
Webシステムプログラミング20150413
Webシステムプログラミング20150413Webシステムプログラミング20150413
Webシステムプログラミング20150413
 
sakura.io handson with IBM Bluemix
sakura.io handson with IBM Bluemixsakura.io handson with IBM Bluemix
sakura.io handson with IBM Bluemix
 
Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋
 
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダJAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
 
IBM Cloud&sakura.io体験ハンズオン
IBM Cloud&sakura.io体験ハンズオンIBM Cloud&sakura.io体験ハンズオン
IBM Cloud&sakura.io体験ハンズオン
 
オープニング
オープニングオープニング
オープニング
 
Osc2012 appinventor のその後
Osc2012 appinventor のその後Osc2012 appinventor のその後
Osc2012 appinventor のその後
 
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
 
.NETの自作ツール公開手段
.NETの自作ツール公開手段.NETの自作ツール公開手段
.NETの自作ツール公開手段
 

TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術