Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

以下の手順は事前準備 - 付属資料の配置&初期設定を既に設定済みであることを前提に進めています。
そのため、事前準備の章をまだ実施していない場合は、先にそちらの実施をお願いいたします。

Table of Contents

DockerfileからDockerイメージ作成

  1. <付属資料ディレクトリ>直下のdockerfileディレクトリへ移動します。

  2. Dockerfileをエディタで開き、PATH設定においてC/C++testインストールディレクトリを実際の環境にあわせて変更します。
    ※C/C++testインストールディレクトリ以外の記述は変更不要です。

...

Code Block
$ docker images

...

Dockerコンテナを起動してサンプルプロジェクトをビルド

作成したDockerイメージからコンテナを作成する際にホスト上のファイルシステムをマウントして、コンテナ内からアクセスできるようにしてコンテナを起動します。

...

以降、2.と3.の手順は、コンテナ内のクロスコンパイラ(arm-none-eabi-gcc)を用いてサンプルプロジェクトのビルドが可能であることを確認するための手順であり、必須の手順ではありません。
不要な場合はC/C++testプロジェクトの作成から進めてください。

...

Code Block
$ cd FlowAnalysis/
$ make

...

C/C++testプロジェクトの作成

ビルドデータファイル(BDF)の作成

C/C++testには、cpptesttraceというトレーサーがあります。このトレーサーにてプロジェクトのビルド情報を収集し、その収集情報からC/C++testへプロジェクトをインポートすることができます。

...

Code Block
$ ls ../../FlowAnalysis/

...

C/C++testプロジェクトへインポート

作成したBDFを基にホスト上のC/C++testでプロジェクトをインポートします。

  1. start_cpptest.shを実行し、C/C++testを起動します。

Code Block
languagebash
$ ./start_cpptest.sh
  1. [ファイル]>[新規]>[プロジェクト]を選択します。

  2. [C/C++test]>[ビルド データ ファイルからプロジェクトを作成]を選択し、[次へ]をクリックします。

  3. [ビルド データ ファイル]>[参照]からビルドデータファイル(BDF)の作成の成果物であるcpptestscan.bdfを選択します。

  4. 以下のダイアログが表示されるので、[OK]を選択してください。

    Image RemovedImage Added
  5. [コンパイラ設定]>[種類]よりarm-none-eabi-gcc 9.x(x86_64)を選択します。
    ※プルダウンリストの一番上に表示されます。

  6. 以下のダイアログが表示されるので、[はい]を選択してください。

    Image RemovedImage Added
  7. 以下のように、C コンパイラとC++ コンパイラ、リンカーがそれぞれ事前準備で<C/C++testインストールディレクトリ>/integration/dockerremote-arm-none-eabi-gcc(g++)が正しく指定されることを確認し、[終了]を選択します。


    事前準備 - 付属資料の配置&初期設定の手順4.を実施していない場合、C/C++testインストールディレクトリが異なっていることがあります。その場合、直接正しいC/C++testインストールディレクトリに変更してください。

C/C++testプロジェクトの作成はSensorプロジェクトでも同様の手順でプロジェクト作成が可能です。FlowAnalysisをSensorに読み替えて実施してください。Sensorプロジェクトは単体テスト向けに実装が不完全(いくつかの関数が未実装)のサンプルプロジェクトです。make時にシンボル未定義のリンクエラーが発生しますが、BDF作成およびプロジェクトインポートには影響ありません。単体テスト時に、未定義の関数に対してスタブを作成することでテストを行うことが可能です。

以上でテスト環境の構築が完了となります。静的解析を実施する場合は静的解析の実行 (ARM GCC)、単体テストの場合は単体テストの実行 (ARM GCC)をご参照ください。