SDK ver.1.71以前からSDK ver.1.80以降への開発環境移行手順
目次
- 1 目次
- 2 はじめに
- 3 SDK ver.1.71以前の環境で開発/作成していたambaCV2X用アプリの移行手順
- 3.1 SDK ver.1.71以前での移行準備
- 3.1.1 スクリプトファイルのバックアップ
- 3.1.2 移行するアプリフォルダのcleanとコピー
- 3.2 Makefileの修正
- 3.3 機種固有データ(AIモデル等)の対応
- 3.4 スクリプトファイルの対応
- 3.4.1 スクリプトファイルの対応:アプリ固有の処理を行ってない場合
- 3.4.1.1 スクリプトファイルの変更
- 3.4.1.2 setupフォルダの削除
- 3.4.2 スクリプトファイルの対応:アプリ固有の変更を行っている場合
- 3.4.2.1 スクリプトファイルの変更
- 3.4.2.2 configration.txtの編集
- 3.4.2.3 install.shの編集
- 3.4.2.4 update.shの編集
- 3.4.2.5 uninstall.shについて
- 3.4.1 スクリプトファイルの対応:アプリ固有の処理を行ってない場合
- 3.5 make方法
- 3.1 SDK ver.1.71以前での移行準備
- 4 SDK ver.1.80環境でambaCV5X用アプリの作成手順
- 4.1 ambaCV5X用toolchainの登録
- 4.2 機種固有データ(AIモデル等)の対応
- 4.3 外部ライブラリの対応
- 4.4 CV52用のPythonアプリの場合
- 4.5 make方法
はじめに
SDK ver.1.71以前は、ambaCV2X用のアプリのみ作成が可能でしたが、
SDK ver.1.80以降は、ambaCV2X用アプリに加えambaCV5X用アプリの作成が可能となります。
この機能拡張に伴い、アプリ内のフォルダ構成やスクリプトファイルが変更されています。
そのため、SDK ver.1.71以前のSDKで開発されたアプリをSDK ver.1.80以降でコンパイルするためには、
本ページで記す移行手順を実施して頂く必要があります。
このチュートリアルでは、SDK ver.1.71以前のインストールディレクトリを${SDK_DIR_ver.1.71}
とし、SDK ver.1.80以降のインストールディレクトリを${SDK_DIR_ver.1.80}
として記載します。
SDK ver.1.71以前の環境で開発/作成していたambaCV2X用アプリの移行手順
SDK ver.1.71以前の環境で開発/作成していたambaCV2X用アプリを、SDK ver.1.80以降の環境でambaCV2X用アプリを作成できるようにします。
SDK ver.1.71以前での移行準備
移行する前にSDK ver.1.71以前の環境で準備を行います。また、SDK ver.1.80は事前に取得しインストールを行っておいてください。
こちらのポータルからSDKをダウンロードしてください。
スクリプトファイルのバックアップ
setupフォルダに配置されているスクリプトファイル(install.sh など)に対し、アプリ固有の変更を施されている場合、変更したスクリプトファイルのバックアップを取得しておいてください。
移行するアプリフォルダのcleanとコピー
SDK ver.1.71以前の環境で、移行するアプリフォルダ内でmake cleanを実行してください。
SDK ver.1.71以前の環境で作製したアプリをhoge_app とした例を示します。
$ cd ${SDK_DIR_ver.1.71}/src/adamapp/hoge_app
$ make clean
[Example result]
CLEAN bin/HogeApp
CLEAN conf/profile.bin
CLEAN conf/applicense.bin
CLEAN conf/appConf.json
CLEAN conf/development.key
CLEAN HogeApp_V0_3_ambaCV2X.zip
CLEAN HogeSampleApp_V0_3_ambaCV2X.ext
CLEAN HogeSampleApp
cleanが完了したらアプリフォルダをSDK ver.1.80環境にコピーします。
${SDK_DIR_ver.1.80}
/src/adamapp/hoge_app
Makefileの修正
アプリフォルダ内のMakefileをエディタで開き、下記修正を行ってください。
変更前:BUILD_DIR=
変更後:BUILD_DIR= $(ADAM_OBJ_DIR)
通常は下記に格納されています。
${SDK_DIR_ver.1.80}
/src/adamapp/hoge_app/Makefile
機種固有データ(AIモデル等)の対応
AIモデル等の機種固有データを使用している場合、以下の対応が必要です。
※機種固有データを使用してない場合、次項へ進んでください。
新たにdata_CV2Xフォルダを作成し、dataフォルダ下に格納されている機種固有データを、フォルダ構成や属性などを変更せず、dataからdata_CV2Xに移動してください。
hoge_appの場合は下記になります。
変更前:
${SDK_DIR_ver.1.80}
/src/adamapp/hoge_app/data/cnn/sample.bin変更後:
${SDK_DIR_ver.1.80}
/src/adamapp/hoge_app/data_CV2X/cnn/sample.bin
今後、ambaCV2xとambaCV5xで、アプリが使用するデータ(ファイル)を切り替えたい、という場合、ambaCV2x用のデータ(ファイル)をdata_CV2Xフォルダに移動し、ambaCV5x用のデータ(ファイル)をdata_CV5Xに格納することで実現可能です。
ambaCV5x用のデータ(ファイル)格納先は、hoge_appの場合は下記となります。
${SDK_DIR_ver.1.80}/src/adamapp/hoge_app/data_CV5X/cnn/sample.bin
スクリプトファイルの対応
スクリプトファイルに「アプリ固有の処理を行ってない場合」と「アプリ固有の変更を行っている場合」の移行手順は異なります。いずれかの移行手順を実施してください。
まず、「アプリ固有の処理を行ってない場合」の移行手順を説明します。
スクリプトファイルの対応:アプリ固有の処理を行ってない場合
スクリプトファイルの変更
configuration.txtを編集します。hoge_appの場合は下記に格納されています。
${SDK_DIR_ver.1.80}
/src/adamapp/hoge_app/configuration.txt
Script files Informationの下記3項目を記載通りに編集してください。
INSTALLER install.sh
UPDATER update.sh
# UNINSTALLER uninstall.sh
INSTALLER install.sh
UPDATER update.sh
は有効化。
UNINSTALLER uninstall.sh
は無効化。
setupフォルダの削除
setupフォルダを削除します。hoge_appの場合は下記に格納されています。
${SDK_DIR_ver.1.80}
/src/adamapp/hoge_app/setup
スクリプトファイルの対応:アプリ固有の変更を行っている場合
スクリプトファイルの変更
SDK ver.1.80ではスクリプトファイル[install.sh/update.sh/modelSwitching.sh]が下記フォルダに格納されています。
[C/C++]
${SDK_DIR_ver.1.80}
/src/adamapp/.setup[Python]
${SDK_DIR_ver.1.80}
/src/adamapp-py/.setup
各アプリのsetupフォルダに[install.sh/update.sh/modelSwitching.sh]が存在しない場合、make時にコピーされることになります。そのため、登録時/更新時に実行されるスクリプトファイルのファイル名が[install.sh/update.sh]と異なる場合、このファイル名への変更をお願いします。
例えば、SDK ver.1.71以前で登録時スクリプトをtouroku.sh、更新時スクリプトをkoushin.shとしていた場合は下記の通りファイル名を変更してください。
[C/C++]
${SDK_DIR_ver.1.80}
/src/adamapp/[任意のサンプルアプリ]/setup/touroku.sh[Python]
${SDK_DIR_ver.1.80}
/src/adamapp-py/[任意のサンプルアプリ]/setup/koushin.sh↓
[C/C++]
${SDK_DIR_ver.1.80}
/src/adamapp/[任意のサンプルアプリ]/setup/install.sh[Python]
${SDK_DIR_ver.1.80}
/src/adamapp-py/[任意のサンプルアプリ]/setup/update.sh
また、${SDK_DIR_ver.1.80}
/src/adamapp-py/[任意のサンプルアプリ]/configration.txtの変更も実施してください。
INSTALLER touroku.sh
UPDATER koushin.sh↓
INSTALLER install.sh
UPDATER update.sh
configration.txtの編集
登録時/更新時のスクリプト実行が必須のため、下記のconfigration.txtファイルを編集します。
[C/C++]
${SDK_DIR_ver.1.80}
/src/adamapp/[任意のサンプルアプリ]/setup/touroku.sh[Python]
${SDK_DIR_ver.1.80}
/src/adamapp-py/[任意のサンプルアプリ]/setup/koushin.sh
下記の通り編集してください。
INSTALLER install.sh
UPDATER update.sh
#UNINSTALLER uninstall.sh
ただし、削除時に独自処理を実施している場合は下記のとおり#を削除してください。
INSTALLER install.sh
UPDATER update.sh
UNINSTALLER uninstall.sh
install.shの編集
install.shの先頭で、modelSwitching.shを呼ぶように編集してください。${SDK_DIR_ver.1.80}
/src/adamapp/.setup/install.sh を参考にしてください。
update.shの編集
update.shの先頭で、modelSwitching.shを呼ぶように編集してください。${SDK_DIR_ver.1.80}
/src/adamapp/.setup/update.sh を参考にしてください。
uninstall.shについて
削除時に必要な処理は特にありませんので、uninstall.shは削除してください。
独自処理を加えている場合は何も編集する必要はありません。
make方法
ambaCV2X用アプリのmake手順は、SDK ver.1.71以前から変更有りません。下記を参考に実施してください。
SDKパッケージの構造とビルド方法 | AdamApp のビルドとパッケージの生成
SDK ver.1.80環境でambaCV5X用アプリの作成手順
ここまでの手順で、SDK ver.1.71以前の環境で開発/作成していたambaCV2X用アプリをSDK ver.1.80環境で作成できるようになりました。続いて、SDK ver.1.71以前の環境で開発/作成していたアプリをambaCV5X用として作成できるようにします。
前準備として「SDK ver.1.71以前の環境で開発/作成していたambaCV2X用アプリの移行手順」を全て終えている必要があります。
ambaCV5X用toolchainの登録
i-pro の ambaCV5X モデル向けの AdamApp を作成するには、SDKに含まれている Ambarella_CortexA76_Toolchain_GCC12.1_202304 をインストールしてく ださい。toolchainは下記にあります。${SDK_DIR_ver.1.80}
/.devcontainer/Ambarella_CortexA76_Toolchain_GCC12.1_202304.tar.xz
ambaCV5X モデル以外の場合は適宜読み替えてください。
下記のようにファイルを実行して、クロスコンパイラをインストールし てください。
$ sudo apt-get install python3
$ cd ${SDK_DIR_ver.1.80}/.devcontainer
$ tar xvf Ambarella_CortexA76_Toolchain_GCC12.1_202304.tar.xz
$ cd Ambarella_CortexA76_Toolchain_GCC12.1_202304
$ sudo chmod +x ubuntuToolChain-linux5.15-202304
$ ./ubuntuToolChain-linux5.15-202304
機種固有データ(AIモデル等)の対応
AIモデル等の機種固有データを使用している場合は、本章で記載している手順に従って対応してください。機種固有データを使用していない場合は、対応不要ですので次項に進んでください。
事前に各自でambaCV5X用の機種固有データを準備しておいてください。
アプリフォルダに新たに[data_CV5X]フォルダを作成し、準備したambaCV5x用の固有データを格納してください。AIモデルの機種固有データ「***.bin」を例にすると、下記の構成になります。
[C/C++]
${SDK_DIR_ver.1.80}
/src/adamapp/[任意のサンプルアプリ]/data_CV5X/cnn/***.bin[Python]
${SDK_DIR_ver.1.80}
/src/adamapp-py/[任意のサンプルアプリ]/data_CV5X/cnn/***.bin
外部ライブラリの対応
外部ライブラリ「lib***.so」などを使用している場合は、本章で記載している手順に従って対応してください。外部ライブラリを使用していない場合は、対応不要ですので次項に進んでください。
事前にambaCV5X用外部ライブラリを準備し、「aarch64-linux-gnu」フォルダに格納してください。ambaCV2X用外部ライブラリをそのまま流用可能であれば、そのまま利用ください。
ambaCV5X用外部ライブラリのデータ「lib***.so」を例にすると、下記の構成になります。
[C/C++]
${SDK_DIR_ver.1.80}
/src/adamapp/[任意のサンプルアプリ]/external/lib/aarch64-linux-gnu/lib***.so[Python]
${SDK_DIR_ver.1.80}
/src/adamapp-py/[任意のサンプルアプリ]/external/lib/aarch64-linux-gnu/lib***.so
CV52用のPythonアプリの場合
SDK ver.1.80以前で開発したCV2x用のPythonアプリを、SDK ver.2.00以降でCV52用アプリを作成する場合、下記手順を実施いただく必要があります。Python版のみですので、C版は実施不要です。
ここではSDK ver.2.00以降のディレクトリを${SDK_DIR_ver2.00}
とします。
SDK ver.1.80以降で動作していた開発アプリ(hoge_sample_appとします)を下記のように移動します。
${SDK_DIR_ver2.00}
\src\adamapp-py\hoge_sample_app
SDK ver.2.00の下記フォルダをコピーします。
${SDK_DIR_ver2.00}
\src\adamapp-py\additional_info_sample_app\.c_cxx_src
下記構成になるように移行した開発アプリフォルダにペーストします。
${SDK_DIR_ver2.00}
\src\adamapp-py\hoge_sample_app\.c_cxx_src
移行が完了したらビルドして動作することを確認してください。
make方法
ambaCV5X用アプリのmake手順は、setup_env.shの引数を[ipro-ambaCV5X]に変更するだけで、他はambaCV2Xの場合と同じです。
$ cd ${SDK_DIR_ver.1.80}
$ source setup_env.sh ipro-ambaCV5X
makeの手順について詳細はこちらを参照ください。