全てのページ
GitBook提供
1 / 8

インストール・ビルド

インストール・ビルド

MWXライブラリを用いてアプリケーションを記述(本書ではアクトと呼びます)し、実行するために開発環境のセットアップが必要です。

  • TWELITE STAGE SDK 動作環境

  • TWELITE STAGE SDK のインストール

  • アクト(Act)のビルド

  • (オプション) Visual Stdio codeのインストール

  • 新しいプロジェクトの作成

  • Makefile

  • MWX ライブラリコードの一部を他(stdio)で利用する

環境 (OSなど)

環境 (OSなど)

開発環境を構築するためには、ソフトウェア群のインストール、またこれらの利用許諾に同意する必要があります。また、PC、ワークステーション上でセキュリティ設定等が必要になる場合があります。

  • 配布時には十分注意しておりますが、ウィルスなどの確認はお客様のほうでも留意いただくようお願いいたします。

  • お客様のセキュリティの考え方や運用(例:外部アプリケーションのインストールの可否)については、お客様の環境の管理者にご確認ください。

また、開発環境をインストールまた動作するにあたり、OSが介在し設定等必要になる場合があります(例:開発元が不明なアプリケーションの実行。開発環境または紹介するツール群の多くは、アプリケーションは開発元を証明する仕組みが組み込まれせん)。設定方法については、一般の情報を参考いただくようお願いいたします。

MWXライブラリを用いてアプリケーションを記述するには以下が必要です。

  • MWSDK(ソフトウェア開発環境)

  • 開発用エディタ(Microsoft社のVisualStudio Codeを紹介します)

Windows

コンパイラのツールチェインなどは比較的環境への依存度が低いため、多くの環境で動作することが期待できますが、現在サポート中のWindows10,11バージョンを推奨します。動作環境の差異により動作しないような場合は、当社で確認している環境を参考に別途環境を用意してください。

以下、開発で使用しているバージョンを挙げます。

  • Windows11 21H2 (Visual Studio 2019)

  • FTDI社のドライバが動作していること (MONOSTICK, TWELITE Rを動作させるため)

WSL (Windows Subsystem Linux) 環境下でもコンパイラを動作させることが出来ます。ただしコンパイルのみでファームウェアの書き換え等はWindows10上のユーティリティから実施してください。

WSL環境は必須ではありません。

コンパイラのツールチェインなどは比較的環境への依存度が低いため、多くの環境で動作することが期待できますが、現在サポート中のディストリビューションを推奨します。動作環境の差異により動作しないような場合は、当社で確認している環境を参考に別途環境を用意してください。

以下、開発で使用しているバージョンを挙げます。

  • Ubuntu 18.04 LTS 64bit

  • Ubuntu 20.04 LTS 64bit

*32bitのシステムはサポートしません。

macOS

コンパイラのツールチェインなどは比較的環境への依存度が低いため、多くの環境で動作することが期待できますが、現在サポート中のディストリビューションを推奨します。動作環境の差異により動作しないような場合は、当社で確認している環境を参考に別途環境を用意してください。

以下、開発で使用しているバージョンを挙げます。

  • macOS 10.14.6 (Mojave Intel)

  • macOS 12.4 (Monterey Apple Silicon)

Visual Studio Code など開発環境について

開発環境を動作させるための環境や使用方法については、その開発元やコミュニティの情報を参照ください。

コード記述作業の効率面で Visual Studio Code (VSCode) の利用を推奨します。

MWXライブラリでは、C言語の開発に比べ、読み込むヘッダファイルが多くなるため、VSCode上でのコード解釈等にはより多くのPCのリソースを要求します。

ビルド環境による差異

Linux/WSL環境下/macOSのビルド結果はWindows10の結果と異なります。通常系の動作で差異が見られることは当社が把握する限りありませんが、特にgccのLTOを無効にしているためバイナリサイズが数%程度大きくなる傾向にあります。

動作等に疑問を感じた際は、必ず Windows10,11 上のビルドを実施し再現することを確認してから、お問い合わせください。

TWELITE SDK のインストール

TWELITE SDK のインストール

TWELITE STAGE SDK 配布アーカイブ(ZIPなど)をダウンロードし、適切なフォルダに展開します。

展開先の各階層のフォルダ名には、半角数字 0..9, 半角アルファベットa..zA..Z,一部の記号 -_. 以外は含まれないようにしてください。空白や漢字・ひらがななどが含まれてはいけません

TWELITE STAGE SDK アーカイブ展開後のフォルダ例です (windows, c:\work\MWSTAGE\...)

詳しくはTWELITE STAGE SDKのインストールを参照してください。

通常のインストール作業はここまでです。続く「環境変数の設定」以下は必要に応じて参照してください。

環境変数の設定

TWELITE STAGE アプリを用いる場合は、環境変数の設定は不要です。コマンドラインでビルドを行う場合は設定してください。

MWSDK_ROOT, MWSDK_ROOT_WINNAME(Windows10のみ) の設定が必要です。

Windows

ここでは展開後のフォルダ名を C:\MWSTAGE とします。別のフォルダにインストールした場合は、読み替えてください。

C:\MWSTAGE\Tools\SET_ENV.CMD を実行してください。以下の環境変数を設定します。

  • MWSDK_ROOT

  • MWSDK_ROOT_WINNAME

例えば以下のような設定になります。

MWSDK_ROOT=C:/MWSTAGE/MWSDK/
MW_ROOT_WINNAME=C:\MWSTAGE\MWSDK\

インストールしたPC上からTWELITE STAGE SDKをアンインストールするには以下を行ってください。

  • UNSET_ENV.cmdを実行してください。環境変数の設定を解除します。

  • MWSTAGEフォルダを削除してください。

Linux

開発環境やシェルに MWX_ROOT環境変数を反映されるように設定してください。

方法はいくつかありますが、ホームフォルダの.profile(ファイルがなければ新しく作成してください)に以下の設定を追加します。この設定でVSCodeのビルドまで可能です。

MWSDK_ROOT=/foo/bar/MWSTAGE/MWSDK/ export MWSDK_ROOT

エディタを使用せずに追加するには以下のようにコマンド入力します。$はプロンプトで環境によって表示が違います。/foo/bar/MSWSDKの部分はインストールしたフォルダに応じて書き換えてください。

$ cd $HOME
$ echo MWSDK_ROOT=/foo/bar/MWSTAGE/MWSDK>>.profile
$ echo export MWSDK_ROOT>>.profile

macOS

開発環境やシェルに MWX_ROOT環境変数を反映されるように設定してください。

方法はいくつかありますが、ホームフォルダの.profile(ファイルがなければ新しく作成してください)に以下の設定を追加します。この設定でVSCodeのビルドまで可能です。

MWSDK_ROOT=/foo/bar/MWSTAGE/MWSDK/ export MWSDK_ROOT

エディタを使用せずに追加するには以下のようにコマンド入力します。$はプロンプトで環境によって表示が違います。/foo/bar/MSWSDKの部分はインストールしたフォルダに応じて書き換えてください。

$ cd $HOME
$ echo MWSDK_ROOT=/foo/bar/MWSTAGE/MWSDK>>.profile
$ echo export MWSDK_ROOT>>.profile

環境全体にMWSDK_ROOTを適用にするにはLaunchDを用います。

VSCodeの一部の設定で環境変数を参照していますが、ビルドには必須ではありません。

アクトのビルド

アクトのビルド

MWXライブラリで記述したアプリケーションプログラムをアクト(Act)と呼びます。まずは、これをビルドして書き込みます。

  • ビルドフォルダ構成について

  • Visual Studio Code (VSCodeと記載) でのビルドについて

本ページでは、いくつかのビルド方法を記載していますが、いずれの方法も最終的にはmakeコマンドを実行しています。詳細はMakefileの解説を参照ください。

OS環境によっては各実行プログラム(make やgccなどビルドツールチェイン)の動作時にセキュリティ警告が出る場合があります。警告を抑制する設定が必要になります。(警告を抑制してプログラムを動作する運用を行うかは、お客自身またはシステム管理者に相談の上、ご判断ください)

ビルドフォルダ構成について

MWSDKをインストールしたフォルダMWSDK_ROOT (例 C:\MWSDK)を開きます。以下のような構成になっています。

MWSDK_ROOT
  |
  +-ChipLib      : 半導体ライブラリ
  +-License      : ソフトウェア使用許諾契約書
  +-MkFiles      : makefile
  +-Tools        : コンパイラ等のツール一式
  +-TWENET       : TWENET/MWXライブラリ
  +-Act_samples  : アクトサンプル
  ...

アクトファイルはAct_samples 以下に格納しています。(以下は一部割愛しています)

Act_samples
  |
  +-CoreAppTwelite    : App_TweLiteと同じ構成のボード用のアクト
  +-PAL_AMB           : 環境センス PAL 用のアクト
  +-PAL_MAG           : 開閉センス PAL 用のアクト
  +-PAL_MOT           : 動作センス PAL 用のアクト
  ..
  +-Parent-MONOSTICK  : 親機アクト、MONOSTICK用
  +-PingPong          : PingPong アクト
  +-PulseCounter      : パルスカウンタを利用したアクト
  +-act0              : スクラッチ(とりあえず書いてみる)用アクト

これらのアクトは、MWXライブラリの記述の参考となるシンプルな例ですが、多くのアクトは以下の機能を有しています。

  • センサー値を取得する

  • センサー値取得後、無線パケットを親機宛に送信する

  • 送信完了後、一定時間スリープする(または割り込みを待つ)

Parent-MONOSTICKのアクトによりパケットの受信と表示を行っています。この親機用のアクトは、アスキー形式で出力しています。 (:00112233AABBCC...FF[CR][LF] のような : で始まり、途中は16進数のバイトをアスキー文字2字で表現する形式です。末尾の??は同様に2字のバイトとなりますがLRCというチェックサムバイトになります。参考:アスキー形式)

実際に動作させてみるときは、以下の組み合わせを試してみてください。

親
子
解説

BRD_APPTWELITE

BRD_APPTWELITE

親機はM1ピンをLOW(GNDレベル)にして起動する。通常モード(常時稼働)にて、App_TweLiteのような動作を確認できます。

PingPong

PingPong

子機同士2台使って動作します。片方から Ping パケットを送ると、相手方から Pong パケットが戻ってきます。

Parent-MONOSTICK

その他

子機用のアクトのパケット送信を確認できます。

では、アクトの中から PingPong のフォルダの中を見てみましょう。

Act_samples にある他のアクトもビルドできます。その場合、フォルダ名・ファイル名は読み替えるようにしてください。

Act_samples
  +-PingPong
    +-PingPong.cpp   : アクトファイル
    +-build          : ビルドフォルダ
    +-.vscode        : VSCode 用の設定ファイル

必ずフォルダ直下にフォルダと同名の .cpp ファイルが必要です。

小規模なアクトならこの.cppファイル内に記述します。規模が大きくなってきたときはMakefileの解説を参考にして複数のファイルに分割してビルドすることが出来ます。

PingPong フォルダ直下にアクトファイル PingPong.cpp があります。フォルダ名を変更した場合は、必ず .cpp ファイルの名前もフォルダ名と同名にします。

次にビルドフォルダを開きます。

Act_samples
  +-PingPong
    +-build
      +-Makefile        : makefile
      +-build-BLUE.cmd  : TWELITE BLUE 用ビルドスクリプト(Windows用)
      +-build-RED.cmd   : TWELITE RED 用ビルドスクリプト(Windows用)
      +-build-clean.cmd : obj_* ファイル削除

ビルドに必要なスクリプトとMakefileが格納されています。

このMakefile のあるフォルダで make TWELITE={BLUEまたはRED} を実行することで、ビルドが行われます。VSCode でのビルドも同様で内部的に make を呼び出します。

TWELITE STAGE アプリでのビルド

TWETLITE STAGE アプリを用いて、ビルドから書き込み、実行までを行えます。ここでは、TWELITE STAGE アプリの起動からビルドまでを解説します。

0. TWELITE の接続

MONOSTICKまたはTWELITE Rをお使いのUSBポートに接続します。

TWELITE は繊細な電子部品ですので、取り扱いには十分注意してください。以下に代表的な注意事項を記載します。

特にTWELITE Rを用いている場合は、多くの場合電子基板がケースなどを介さず直接外部に触れる状態で使用するため、意図しないショートやノイズなどUSBデバイスが正常に動作しない状態になる場合があります。

この場合は、アプリケーションを終了させUSBデバイスを抜き差しすることで通常は回復します。最悪、USBデバイスの破損やPCの破損も考えられます。

電子基板の取り扱いには十分注意してください。

  • 回路の間違い

    • 電源を入れる前にはもう一度回路を確認してください。

    • 電池の逆差しや過大電圧には注意してください。

  • 静電気

    • 人感がない電圧であっても半導体の故障になりえます。大掛かりな対応をしなくとも、金属部に触れてから作業する・リストバンド・専用マットなど簡易にできる対応でも相応の効果はあります。

  • 金属物などが触れることでのショート

    • 電子基板の近くには金属物がないようにしてください。クリップなどが散らかっているとこれが原因でショートすることもありますし、電池が大放電して加熱する危険な状況も考えられます。

1. TWELITE STAGE アプリの起動

{TWELITE SDK インストール} フォルダにある実行形式 TWELITE_Stage.{拡張子} を起動します(参考: TWELITE STAGE アプリマニュアル-使用法)。

以下は、TWELITE STAGE アプリ動作中の画面例です。左側の主画面とコマンドプロンプト画面がありますが、主画面を操作します。コマンドプロンプト画面は通常使用しませんが、諸情報及びTWELITEマイコンシリアルポートからの入力データが表示されます。

画面例

主画面での主な操作は以下です。

  • マウス左クリック (選択)

  • マウス右ダブルクリック(前の画面に戻る)

  • 素早く ESC を2回, 一部画面では ESC 1回 (前の画面に戻る)

  • Alt(Cmd) キーを押し続ける(ヘルプ画面)

  • 通常キーボード入力(画面に従う)

(参考: TWELITE STAGE アプリマニュアル-キー操作・マウス操作)。

2. シリアルポートの選択

TWELITE STAGE アプリを起動すると最初に表示される画面です。事前に TWELITE R や MONOSTICK を接続しておけば、この画面に列挙されます。この画面で操作したい TWELITE を選択します。この画面で選択せずに、別の操作で選択することも可能です。

シリアルポート選択画面

(参考: TWELITE STAGE アプリマニュアル)

3. メインメニュー

シリアルポート選択画面を抜けると、メインメニューが表示されます。ビルドや書込は「アプリ書換」メニューを選択します。

メインメニュー

(参考: TWELITE STAGE アプリマニュアル)

4. アプリ書換メニュー

アプリ書換メニューを選択する前に、TWELITE の接続とシリアルポートの選択を確認しておいてください。シリアルポートの選択状況は Alt(Cmd) キーを押し続けると出現するヘルプ画面上で確認できます。

アプリ書換メニュー

TWELITE STAGE アプリから参照できるプロジェクトはいくつかに分類されています。右側のヘルプは関連情報をブラウザで表示します。フォルダはプロジェクトのあるフォルダを表示します。

TWELITE が接続済みであれば、メニューを選択したときに、TWELITE のモデルが判定されます。(TWELITE STAGE アプリ内部では、この判定したTWELITEモデルに応じたビルドを行うようになっています)。

ここでエラーが出た場合は、この画面からメインメニューに戻って、メニューを再選択します。解決しない場合は、必要に応じてTWELITE STAGE アプリ上で Alt(Cmd) + 0 を入力してシリアルポート選択を解除を行ったうえで USB 接続を含む各種接続を確認するなどします。USB接続のエラーによっては、お使いのコンピュータを再起動しないと解決しない場合もあります。

(参考: TWELITE STAGE アプリマニュアル)

4. プロジェクトの選択

ここでは「アプリ書換メニュー」から「Actビルド&書換」を選択します。

アプリ書換メニュー

サンプルアクトなどのプロジェクト名が列挙されます。右側のヘルプは関連情報をブラウザで表示します。フォルダはプロジェクトのあるフォルダを表示します。

(参考: TWELITE STAGE アプリマニュアル-Actビルド&書換)

5. ビルド&書換

ここでは、先ほどのプロジェクト選択画面中で BRD_APPTWELITE を選択します。

選択すると、以下の画面例のように書き込みが行われます。エラーが表示された場合は、画面の指示に従うか、前の画面戻ってやり直してください。

書き込み中(ベリファイあり設定)
書き込み完了

(参考: TWELITE STAGE アプリマニュアル-ビルド画面)

6. インタラクティブモードに移動

書換が正常に終了すると、続けてインタラクティブモード(設定画面)に移行します。ただし、インタラクティブモードに対応するファームウェアでないと画面は表示されません。

インタラクティブモードでは、TWELITE の無線チャネルなど、各種設定を行えます。

インタラクティブモード

(参考: TWELITE STAGE アプリマニュアル-インタラクティブモード)

7. ターミナル画面

ルートメニューに戻って「ビューア」→「ターミナル」を選択します。

ごく簡易的なターミナルです。TWELITE からのメッセージを確認と、TWELITE への入力を行えます。

ターミナル

画面では、約1秒おきに無線送信したときのメッセージが表示されます。+ + + 入力によるインタラクティブモード画面への遷移も行えます。

(参考: TWELITE STAGE アプリマニュアル-ターミナル)

VSCode でのビルドについて

VSCode はソース編集の強力なエディタですが、VSCode上で TWELITE マイコン用のファームウェアをビルドすることも可能です。

VSCode の起動は TWELITE STAGE アプリの「ビルド&書換」メニュー以下のプロジェクト一覧より行います。(この動作を行うために TWELITE STAGE アプリの設定が必要です。設定の簡便のため Windows, Linux, macOS では TWELITE_Stage_VSCode.{拡張子} の実行形式を用意しています。)

STAGE設定で 「code でフォルダを開く(VSCode)」を 1 にする。

Settings for VSCode

ビルドのリスト中の右端 [VSCode] を押します。

Open as VSCode

すでに VSCode が立ち上がった状態では必要な設定が反映されない場合があります。その場合は、一旦 VSCode を終了して、改めて TWELITE STAGE アプリから VSCode を起動します。

情報の反映のためにシステム環境変数を用いてるため、原理的に、別々のライブラリフォルダを参照する複数の TWELITE STAGE の同時運用では問題が出る場合があります。VSCode 上で Terminal を開き、環境変数 MWSDK_ROOT が適切に設定されている場合はビルドは正常に行われることが期待できます。

VSCode のビルドタスク

最初にビルドしたいワークスペースを開いておきます。TWELITE STAGE SDK添付のワークスペースにはビルドタスクの定義が追加されています。

以下の例では英語インタフェースの画面例で、ワークスペースを開いています。

ワークスペースを開き [Terminal>Run Task...] を選択します。

ビルドタスクの一覧表示

ビルドするTWELITE無線モジュールの種別(BLUE/RED)とアクト名を選択します。以下の例では Build for TWELITE BLUE を選択しています。選択後すぐにビルドが始まります。

ビルドタスクの一覧表示

ビルド中の経過は画面下部のターミナル部分に出力されます。

ビルド経過

正しくビルドできた場合、上記画面例の反転表示部のように .elf ファイルが生成されるメッセージがサイズ情報(text data bss dec hex filenameと記載がある部分)とともに出力されます。

またBINファイル(上記では BRD_APPTWELITE_BLUE_???.bin)ファイルがbuildフォルダ下に出来上がっているはずです。確認してみてください。

VSCodeのタスク定義には Windowsのファイルシステムに適合しないフォルダ名 (例:/c/User/...)を変換する(例:C:/User/...) 定義を追加しています。

下記.vscode/tasks.json 中の変換ルールは完全ではありませんが、出力メッセージ中のドライブ名相当部分の文字列をVSCodeが識別できる形式に書き換えています。この書換によりコンパイルメッセージからエラーが発生しているファイル名と行番号をVSCode中で表示できます。

...
"windows": {
    "command": "sh",
    "args": [
        "-c", "make TWELITE=BLUE 2>&1 | sed -E -e s#\\(/mnt\\)?/\\([a-zA-Z]\\)/#\\\\\\2:/#g"
    ],

ビルドがうまくいかない場合は、まずエラーメッセージを確認して下さい。errorという文字列が含まれる行中のメッセージから、エラー原因が容易に特定できる場合も少なくありません。

また、クリーン(objs_??? フォルダにある中間ファイルの削除)を行い、ビルドを再実行してみてください。(他の環境でビルドした中間ファイルが残っているとmake cleanを含めすべての操作が失敗します)

コマンドラインでのビルド

コマンドライン環境でのビルドについて補足します。

コマンドライン(bash)についての利用の知識が必要です。

OS環境によっては各実行プログラムの動作時にセキュリティ警告が出る場合があります。警告を抑制する設定が必要になります。(警告を抑制してプログラムを動作する運用を行うかは、お客自身またはシステム管理者に相談の上、ご判断ください)

Linux, macOS 環境

コマンドラインでのビルドは、bash (または他のシェル)が動作するウインドウでmakeを実行します。事前に環境変数MWSDK_ROOTが正しく設定されていることを確認してください。例えば/work/MWSDKにインストールした場合は ~/.profile に以下のような設定を行います。

MWSDK_ROOT=/work/MWSDK
export MWSDK_ROOT

コマンドライン(bash)よりmakeを実行します。makeがない場合はパッケージをインストールする必要があります。

$ make

Command 'make' not found, but can be installed with:

sudo apt install make
sudo apt install make-guile

$ sudo apt install make
...
  • Linux環境ではmakeまたはbuild-essentialパッケージをインストールします。

  • macOS環境ではXcodeでCommand Line Toolsをインストールします。

Windows 環境

Windowsでは {MWSTAGE SDK インストール}/MWSDK/WIN_BASH.cmd を実行します。 環境変数や make ユーティリティが設定済みです。

ビルド

ビルドは以下のようになります。

$ cd $MWSDK_ROOT
$ cd Act_samples/PingPong/build
$ pwd
/mnt/c/MWSDK/Act_samples/PingPong/build

$ ls
... ファイル一覧の表示

$ rm -rfv objs_*
... 念のため中間ファイルを削除

$ make TWELITE=BLUE
... BLUE用に通常ビルド

$ make -j8 TWELITE=BLUE
... BLUE用にパラレルビルド(同時に8プロセス)

コマンド例

詳細はMakefileの解説をご覧ください。

コマンド例
解説

make TWELITE=BLUE

TWELITE BLUE用にビルド

make TWELITE=RED

TWELITE RED用にビルド

make cleanall

中間ファイルの削除

中間ファイルについて

ビルドが行われると objs_??? フォルダが作成され、その中に中間ファイルが生成されます。このファイルはコンパイルした環境に依存しているため、他の環境のファイルが残っているとmakeがエラーとなりビルドが失敗します。

直接objs_???フォルダを削除するとmakeのエラーが解消する場合があります。

新しいプロジェクトの作成

新しいプロジェクトの作成

新しいプロジェクトの作成は、すでにあるサンプルアクトのフォルダを別の名前でコピーし、ファイル名の編集を行います。

コピー先のフォルダは MWSDK 配下のフォルダでなくても構いません。ただし、フォルダ名に空白文字や日本語名が含まれてはいけません。

プロジェクトのファイル構造は以下のようになっています(ここでは PingPong を例に挙げます)。

Act_samples
  +-PingPong
    +-PingPong.cpp   : アクトファイル
    +-build          : ビルドフォルダ
    +-.vscode        : VSCode 用の設定ファイル    

この PingPong フォルダを別の場所(ただしフォルダ名に日本語や空白が含まない)にコピーします。

SomeDir
  +-AlphaBravo
    +-PingPong.cpp -> AplhaBravo.cpp ※ファイル名を変更
    +-build          : ビルドフォルダ
    +-.vscode        : VSCode 用の設定ファイル

編集の必要があるのは、PingPong.cpp のファイル名です。これをフォルダ名と同じAlphaBravo.cppに変更します。

build\build-BLUE.cmd を実行してBINファイルが生成されれば完了です(Windows10)。

Linux/WSL/macOS ではmake TWELITE=BLUEを実行して、ビルドが成功するか確認します。

ビルド定義の編集

ビルド対象のファイルを追加する場合は build/Makefile を編集します。プロジェクト直下にある .c .cpp ファイルは自動で追加されますが、それ以外のファイルについては編集が必要です。

編集方法は Makefile の解説をご覧ください。

VSCode用の設定

VSCode を利用する場合は、必要に応じて .vscode 以下の定義を編集してください。

TWELITE STAGE SDK に含まれるサンプルの多くは、以下のようになっています。

  • TWELITE STAGE SDK ライブラリのソースコードは ${env:MWSDK_TWENET_LIBSRC}/include/** ${env:MWSDK_TWENET_LIBSRC}/src/** を引用する。この環境変数 MWSDK_TWENET_LIBSRC は TWELITE STAGE アプリから VSCode でプロジェクトを開いた場合には自動で設定されます。

  • ビルドタスクについては、デフォルトで -D などの追加的なオプション等は設定されていない。

VSCodeのインストール

VSCodeのインストール

TWELTIE STAGE SDK では、アクト(ソースコード)記述をより容易に行うため、VisualStudio Code(VSCode)を紹介しています。添付のアクトには、VSCodeで適切にコード解釈が行われるように設定したファイルが含まれます。

VSCodeはソースファイルやヘッダファイルを読み込み、ソースコードを解釈し、これによりソースコードの記述の助けとなる関数定義情報や、関数・メソッド名の補完などを行います。C言語の開発に比べて、MWXライブラリでは読み込まれるヘッダファイルの分量が多くなります。環境によってはエディタの動作が重く感じる場合があります。

ソースコードの解析や VSCode からのビルドを行うために、ライブラリソースコードが格納されるフォルダの情報などの情報が必要になります。これらの情報は TWELITE STAGE アプリから VSCode を呼び出すことによって反映されます。(具体的には適切な環境変数を設定して VSCode を始動します。プロジェクトの設定は環境変数を参照しています)

VSCode のインストール

当サポートでは VSCode のインストール方法、使用方法のお問い合わせについては対応いたしません。一般で得られる情報を参照ください。

環境によっては、インストールのためにセキュリティ設定などが必要になる場合があります。インストールの可否はシステム管理者にご確認の上、手順は配布元や一般の情報を参考にしてください。

VSCode では、以下のことができます。

  • ソースコードの編集

  • ソースコード解釈に基づく intellisense(*全ての定義が正確に解釈されることを保証するわけではありません)

VSCode はリンク先より入手してください。

https://code.visualstudio.comcode.visualstudio.com

プラグインの導入

Visual Studio Code が C/C++ 言語の記述を解釈できるようにするために、プラグインをインストールします。

  • C/C++ for Visual Studio Code

各OSでの特記事項

TWELITE STAGE から VSCode を呼び出すために、code コマンドが有効になっている必要があります。

以下は code.visualstudio.com の情報です。

  • macOS - code コマンドを実行できるように PATH 設定が必要です。

  • Windows

  • Linux

注記事項

MWXライブラリのサンプルには .vscode の定義を含めています。この定義は MWSDK_ROOT 環境変数を用い、ライブラリのソースコード({MWSDK_ROOT}/TWENET/current以下)を特定しています。

TWELITE STAGEからVSCodeを始動した場合、上記の環境変数などを設定します。既に始動済みであるような場合など、設定が反映されない場合もあります。

VSCode のソースコードの解釈はコンパイラでの解釈とは完全には一致しません。またソースコードの編集状況によっては解釈がより不完全な状態になる場合もあります。

ビルド定義 Makefile

ビルド定義 Makefile

Makefileはbuild/Makefileに格納されています。makeコマンドを実行することで、アクトをビルドするよう予め定義されています。

MWSDK 2020-04 では、プロジェクトフォルダ中の .cpp ファイルを自動で検出するため、通常は Makefile の修正は不要です。

ソースファイルをサブフォルダに格納するような場合は、編集が必要になります。

MWSDK 2019-12では、.cpp ファイルが複数ある場合は、Makefile の編集が必要です。

プロジェクトフォルダを他の環境からコピーしたあとには、必ずbuild/objs_???フォルダを削除してください。他の環境での中間ファイルが残っているとmakeがエラーになります。

(MWSDK 2020-04) USE_APPDEPS=0 を付加して clean してから、改めて make コマンドを実行することでエラーを回避できます。

$ make USE_APPDEPS=0 TWELITE=BLUE clean ... $ make TWELITE=BLUE

``

makeのパラメータ

TWELITE=

ビルド対象をBLUEまたはREDで指定します。TWELITE BLUEならmake TWELITE=BLUEと指定します。

all

ビルドを実行します。通常は省略してmake TWELITE=BLUEのように実行します。

clean

ビルドの中間ファイルを削除します。make TWELITE=BLUE cleanのように実行します。

cleanall

すべての中間ファイルを削除します。make cleanallのように実行します。buildフォルダのobjs_???フォルダをすべて削除するのと同じです。

USE_APPDEPS=0 または 1

1 (デフォルト) を設定すると、ファイルの依存関係をもとに、ビルドファイルを決定します。例えば、ヘッダファイルに変更があった場合に関連するソースファイルが再コンパイル対象となります。

0 では依存関係を評価しません。0 に設定した場合、矛盾ある中間ファイルが残っていても makefile がエラーになりません。

Makefile 定義

アクトの規模に応じて、また、ビヘイビアの定義をする場合には、通常はソースファイルを分割してビルドします。

ビルドファイルの一つは{プロジェクトフォルダ名.cpp}です。

他にファイルを定義する場合は、プロジェクトフォルダのbuild/Makefileを編集します。

##############################################################################
# Copyright (C) 2019 Mono Wireless Inc. All Rights Reserved.
# Released under MW-SLA-*J,*E (MONO WIRELESS SOFTWARE LICENSE
# AGREEMENT). 
##############################################################################
# USER PROJECT BUILD DEFINITION.
##############################################################################

#####################################################################
### set TWELITE model
TWELITE ?= BLUE
#TWELITE = RED

#####################################################################
### set application version (MUST SET THIS.)
VERSION_MAIN = 0
VERSION_SUB  = 1
VERSION_VAR  = 0

#####################################################################
### set an additional source file
###   the default file name is dirname.

### for C++ files compiled with g++ (must have .cpp suffix)
APPSRC_CXX += myAppBhvParent.cpp
APPSRC_CXX += myAppBhvParent-handlers.cpp
APPSRC_CXX += myAppBhvChild.cpp
APPSRC_CXX += myAppBhvChild-handlers.cpp

### for C files compiled with gcc (must have .c suffix)
#APPSRC += my_c_file.c

### Additional Src/Include Path
# if set, find source files from given dirs.
#
APP_COMMON_SRC_DIR_ADD1 = ../Parent
APP_COMMON_SRC_DIR_ADD2 = ../Child
#APP_COMMON_SRC_DIR_ADD3 = 
#APP_COMMON_SRC_DIR_ADD4 =

#####################################################################
### set misc option for compiler

### C++ flags passed to g++
# e.g. CXXFLAGS += -DMY_DEFS
#CXXFLAGS +=

### C++/C flags passed to g++/gcc
# e.g. CFLAGS += -DMY_DEFS
#CFLAGS +=

### include opts
# e.g. INCFLAGS += -I../my_common_src/
#INCFLAGS +=

### optimize flag (default is -Os, normally no need to change)
#OPTFLAG=-O2

#####################################################################
### must include mwx.mk (the makefile body part.)
MWSDK_PATH?=$(realpath $(MWSDK_ROOT))
include $(MWSDK_PATH)/MkFiles/mwx.mk
#####################################################################

上記はサンプルPAL_AMB-bihaviorでのMakefileの例です。

VERSION_???

### set application version (MUST SET THIS.)
VERSION_MAIN = 0
VERSION_SUB  = 1
VERSION_VAR  = 0

バージョン番号を指定します。ビルド結果ファイル名に反映されます。

コンパイル中は -DVERSION_MAIN=0 -DVERSION_SUB=1 -DVERSION_VAR=0のように定義として渡されます。

ソースファイルの追加

(MWSDK 2020-04) サブフォルダにファイルを配置しない場合は、追加指定は不要になりました。プロジェクトファイルにある .c .cpp ファイルがすべて追加されます。

ソースファイルを追加する際に必要なのはAPPSRC_CXXとAPP_COMMON_SRC_DIR_ADD?です。

サブフォルダにソースファイルを配置する場合は必ずフォルダ APP_COMMON_SRC_DIR_ADD? の指定が必要です。

ソースファイル名をAPPSRC_CXXに追記します。このファイル名にはフォルダ名が含まれてはいけません。サブフォルダにあるものもフォルダなしで指定します(つまり同じファイル名がサブフォルダにある場合は、ビルドが失敗します)

APPSRC_CXX += myAppBhvParent.cpp
APPSRC_CXX += myAppBhvParent-handlers.cpp
APPSRC_CXX += myAppBhvChild.cpp
APPSRC_CXX += myAppBhvChild-handlers.cpp

次にソースファイルがプロジェクトフォルダ以外の場所に格納されている場合の検索パスを指定します。最大4つまで設定できます。

APP_COMMON_SRC_DIR_ADD1 = ../Parent
APP_COMMON_SRC_DIR_ADD2 = ../Child

フォルダの指定はMakefileからの相対パスになります。

コンパイル・リンカオプション

その他にもいくつかのオプションをコンパイラ・リンカに渡すことができます。

指定
内容

CXXFLAGS

C++ソースファイルに対してコンパイルオプションを指定します。

CFLAGS

C/C++ソースファイルに対してコンパイルオプションを指定します。

INCFLAGS

ヘッダファイルのインクルードファイル指定をします。

OPTFLAGS

特別な理由があって-Os以外のコンパイルオプションを適用したい場合に定義します。

LDFLAGS

リンカオプションを指定します。(上記Makefileのコメントには記述はありませんが指定は可能です)

他のプラットフォーム

他のプラットフォーム

他のプラットフォームでも一部の機能(serparser, pktparser, コンソール用Serialオブジェクト)をビルドできるように、ビルド定義を用意しています。必要なファイルのみを切り出しています。

ビルド定義は{mwxライブラリ格納}/stdioフォルダに格納しています。ビルド方法はREADME.md(リンクはGitHub上)を参照してください。

  • C++11でのコンパイルが出来ること。

  • C++11の標準ライブラリヘッダが利用できること (utility, algorithm, functional, iteratorなど)

  • new/delete/virtualは使用しません。

  • newによるメモリ確保は例外的に使用する場合があります。

    • serparser/pktparserでnew演算子を利用するalloc_heapではdeleteによる処理を行っています。

    • (参考) ただしmwxライブラリとしてはdeleteについては考慮しない前提で設計されている部分もあります。