3. Atmel Studio 7 を使って SAM L11 アプリケーションを開発する方法
3.2. 非セキュア プロジェクトの作成と設定(Customer B)
Customer Bによる開発は、DAL1で保護されたセキュア アプリケーションと定義済み veneerがプログ
ラミングされたSAM L11デバイスを使って開始します。
Customer A は、非セキュア リソース属性と NSC (Non- Secure callable)関数 API に関する情報を
Customer Bに提供する必要があります。
Customer AからCustomer Bに非セキュア プロジェクト テンプレートを提供するのが理想的です。
以下では、DAL1で保護されたセキュア アプリケーションがプログラミングされたSAM L11デバイス上 で非セキュア プロジェクトを作成および設定する方法を説明します。
3.2.1 プロジェクトの作成
プロジェクトの作成手順は以下の通りです。
1. 新しいAtmel Studio 7インスタンスを開きます。
AN5365
Atmel Studio 7 を使って SAM L11 アプリケーションを開発する方法
3. [New Project]ウィンドウ内で、以下の手順により新規プロジェクトを作成します。
3.1. [C/C++]タブを開きます。
3.2. [GCC C Executable Project]を選択します。
3.3. [Name]、[Location]、[Solution]、[Solution name]に詳細を入力します。
3.4. [OK]をクリックします。
図3-24. AS7を使ってSAM L11上でスタンドアロン非セキュアプロジェクトを作成する
4. [Device Selection]ウィンドウ内で ATSAML11E16A デバイスを選択してから[OK]をクリックします。
AN5365
Atmel Studio 7 を使って SAM L11 アプリケーションを開発する方法
図3-25. 新しいスタンドアロン非セキュアプロジェクト向けにSAM L11デバイスを選択する
Atmel Studio IDE内に非セキュア プロジェクトが表示されます(下図参照)。
図3-26. AS7内のスタンドアロンSAM L11非セキュア プロジェクト
AN5365
Atmel Studio 7 を使って SAM L11 アプリケーションを開発する方法
3.2.2 プロジェクト コンフィグレーション
SAM L11で非セキュア プロジェクトの開発を始める前に、以下の手順が必要です。
• Customer A が定義したセキュアおよび非セキュアメモリ属性にリンカファイルを整合させる事に
より、プロジェクトを設定します。
• SG (Secure Gateway)ライブラリと veneer ファイルを追加し、それらをプロジェクトにリンクし
ます。
3.2.2.1 SAM L11非セキュアメモリ属性にプロジェクト リンカファイルを整合させる
以下では、下図に示すセキュアおよび非セキュアメモリ空間に従って非セキュア ソリューション プロジ ェクト リンカファイルを変更する方法を説明します。
非セキュア ソリューション プロジェクトの変更手順は以下の通りです。
1. プロジェクト リンカファイル Device Startup/saml11e16a_flash.ld を開きます。
AN5365
Atmel Studio 7 を使って SAM L11 アプリケーションを開発する方法
図3-27. 非セキュア プロジェクト リンカファイルの位置
2. SAM L11非セキュアメモリ属性に従ってリンカファイルのメモリ空間定義を変更します。
/* Memory Spaces Definitions */
MEMORY {
rom (rx) : ORIGIN = 0x00008000, LENGTH = 0x00008000 ram (rwx) : ORIGIN = 0x20002000, LENGTH = 0x00002000 }
AN5365
Atmel Studio 7 を使って SAM L11 アプリケーションを開発する方法
図3-28. 非セキュアメモリのアドレスとサイズの定義
3.2.2.2 非セキュア プロジェクトにSG (Secure Gateway)ライブラリを追加してリンクする
以下の手順により、非セキュア プロジェクトにSG (Secure Gateway)ライブラリを追加してリンクしま す。
1. セキュア プロジェクトのimplibファイルを非セキュア プロジェクト内にコピーします。
図3-29. 非セキュア プロジェクト ソースにセキュア ゲートウェイ ライブラリ ファイルを追加する
2. Atmel Studio 7上で非セキュア プロジェクトを右クリックし、[Properties]を選択します。
AN5365
Atmel Studio 7 を使って SAM L11 アプリケーションを開発する方法
図3-30. 非セキュア プロジェクトの[Properties]にアクセスする
3. Toolchain > ARM/GNU Linker > Libraries を選択し、アイテム追加ボタン(下図の赤枠内)をクリックす る事により、セキュア プロジェクト ライブラリを追加します。
図3-31. リンク オプションに新しいライブラリを追加する
4. ライブラリ名を入力します。
AN5365
Atmel Studio 7 を使って SAM L11 アプリケーションを開発する方法
図3-32. SG (Secure Gateway)ライブラリ名の入力
5. Toolchain > ARM/GNU Linker を選択し、アイテム追加ボタン(下図の赤枠内)をクリックする事によ
り、SG (Secure Gateway)ライブラリのパスを追加します。
図3-33. 新しいライブラリ検索パスを追加する
6. […]ボタンをクリックし、ブラウザからセキュア プロジェクト implib ファイルの位置を選択します。
プロジェクトの移植性を確保するため、[Relative Path]チェックボックスをONにします。
図3-34. SG (Secure Gateway) ライブラリへの相対パスを入力する
AN5365
Atmel Studio 7 を使って SAM L11 アプリケーションを開発する方法
7. リンカライブラリのプロパティは下図の通りに表示される必要があります。
図3-35. 非セキュア プロジェクト リンカライブラリのコンフィグレーション
8. (保存ボタン)をクリックしてプロジェクト設定を保存します。
3.2.2.3 SG (Secure Gateway)ヘッダファイルを追加する
以下の手順により、SG (Secure Gateway) ヘッダファイルを追加して含めます。
1. SG (Secure Gateway) ヘッダファイルをセキュア プロジェクトから非セキュア プロジェクトにコ ピーします。
図3-36. 非セキュアプロジェクトソースにSG (Secure Gateway)ヘッダファイルを追加する
2. [Solution Explorer]内の[Non-Secure project]を右クリックし、Add > Existing Item を選択します。
AN5365
Atmel Studio 7 を使って SAM L11 アプリケーションを開発する方法
図3-37. AS7 Solution Explorer内でSG (Secure Gateway)ヘッダファイルを含める
3. SG (Secure Gateway)ヘッダファイルを選択してから[Add]をクリックします。
図3-38. 非セキュア プロジェクトにSG (Secure Gateway)ヘッダファイルを含める
4. [Solution Explorer] 内の[Non-Secure project] を右クリックし、[Properties]を選択します。
AN5365
Atmel Studio 7 を使って SAM L11 アプリケーションを開発する方法
図3-39. AS7内で非セキュア プロジェクトのプロパティにアクセスする
5. [Non-Secure project property] ウィンドウ内でToolchain > ARM/GNU C Compiler > Directories を選 択してから、アイテム追加ボタン(下図の赤枠内)クリックします。
図3-40. 非セキュア プロジェクトに新しいコンパイラ ディレクトリを追加する
6. […]ボタンをクリックし、ブラウザから veneer.h ファイルの位置を選択します。プロジェクトの
移植性を確保するため、[Relative Path]チェックボックスをONにし、[OK]をクリックします。
AN5365
Atmel Studio 7 を使って SAM L11 アプリケーションを開発する方法
図3-41. コンパイラ ディレクトリにセキュア ゲートウェイ ライブラリ パスを含める
7. コンパイラ ディレクトリのプロパティが下図の通りに表示されます。
図3-42. 非セキュア プロジェクトのコンパイラ ディレクトリ パラメータ
8. (保存ボタン)をクリックしてプロジェクト設定を保存します。
AN5365
Atmel Studio 7 を使って SAM L11 アプリケーションを開発する方法
9. SG (Secure Gateway)ライブラリをインクルードするために、main.c ファイルの冒頭に下図の行を
追加します。
図3-43. 非セキュア プロジェクトmain.cファイルでveneer.hをインクルードする
10. (保存ボタン)をクリックして、変更したmein.cファイルを保存します。
11. (プロジェクト ビルド ボタン)をクリックします。
12. ビルドプロセスから問題が報告されない事を確認します。
13. デバッグ セッションを起動し、正常に動作する事を確認します。
重要: これには、Customer Aから提供されたセキュア アプリケーションが動作する
必要があります。そうではない場合、アプリケーションはハングアップし、非セキュ ア アプリケーションへジャンプしません。
図3-44. ビルドに成功した非セキュア プロジェクト
AN5365
Atmel Studio 7 を使って SAM L11 アプリケーションを開発する方法
重要: 非セキュア プロジェクトをデバッグするには、非セキュア実行を適切に設定し て開始できるセキュア アプリケーションがデバイスにプログラミング済みである事が 必要です。デバイス上にこのセキュア アプリケーションが存在しない場合、デバッグ プロセスはハングアップします。