メインコンテンツ

STMicroelectronics の STM32 プロセッサ ベースのボードの PIL によるコードの検証と妥当性確認

この例では、プロセッサインザループ (PIL) を使用したコードの検証と妥当性確認に Embedded Coder® Support Package for STMicroelectronics® STM32 Processors を使用する方法を示します。

はじめに

この例では、プロセッサインザループ (PIL) を実行するための Simulink® モデルの構成方法を学習します。PIL シミュレーションでは、STM32 プロセッサ ベースのボードで生成コードが実行されます。PIL シミュレーションの結果が Simulink に転送され、シミュレーションとコード生成の結果の数値的等価性が検証されます。PIL 検証プロセスは、開発サイクルの重要な部分であり、展開コードの動作が設計と一致することを確認します。

この例では、STM32 プロセッサ ベースのボードで PIL シミュレーションを実行するための Simulink® モデルの構成方法を示し、Simulink® のコード生成と検証のワークフローについて紹介します。

前提条件

以下のチュートリアルを完了します。

必要なハードウェア

  • STMicroelectronics NUCLEO-F429ZI ボード

  • マイクロ USB ケーブル

タスク 1 - STM32 プロセッサ ベースのボード用に PIL を構成する

STM32 プロセッサ ベースのボードでは、PIL 用にシリアル通信インターフェイスがサポートされています。

1. stm32_pil_block モデルを開きます。

2. "Ctrl+E" を押して [コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。[ハードウェア実行][ハードウェア ボード][Target hardware resources][Connectivity] に移動し、"COM ポート""USART" を指定します。

この例では、USART を "USART3" に設定します。

メモ: コンピューターで利用可能な "COM ポート" の一覧を確認するには、[スタート][コントロール パネル][デバイス マネージャー][ポート (COM と LPT)] を選択します。

3. 同じ "USART3" を STM32CubeMX プロジェクトで構成します。詳細については、STM32 プロセッサベースのボードの監視と調整および PIL のためのシリアル構成を参照してください。

タスク 2 - PIL ブロックを使用してサブシステムの生成コードを検証する

このタスクでは、PIL ブロックを使用してサブシステムの生成コードを検証する方法を示します。このアプローチを使用すると、次のことが可能になります。

  • サブシステムの生成コードを検証できます。

  • テスト ベクトルまたはスティミュラスの入力を提供するためにテスト ハーネス モデルを提供する必要があります。

  • 元のサブシステムを生成された PIL ブロックと入れ替える必要があります。元のサブシステムが削除されるため、この状態でモデルを保存しないでください。

1. stm32_pil_block モデルを開きます。このモデルは STM32 プロセッサ ベースのボードをターゲットとして構成されています。

このモデルでは、後に STM32 プロセッサ ベースのボードで実行する "Controller" サブシステムから PIL ブロックが作成されます。

2. タスク 1 の手順を完了して PIL 通信インターフェイスを構成します。

3. Code Verification and Validation with PILの例のタスク 1 の手順 2 を完了して PIL を有効にします。

4. Code Verification and Validation with PILの例のタスク 1 の手順 3 を完了して "Controller" サブシステムの PIL ブロックを作成します。

5. Code Verification and Validation with PILの例のタスク 1 の手順 4 を完了して PIL シミュレーションを実行します。

6. "Manual Switch" ブロックをダブルクリックして、元のサブシステムと PIL ブロックのサブシステムを切り替えることができます。"Numerical Differences" ブロックをダブルクリックすると、シミュレートされた "Controller" サブシステムと STM32 プロセッサ ベースのボードで実行中の PIL ブロックの違いが表示されます。

タスク 3 - PIL を使用して参照モデルのコードを検証する

このタスクでは、PIL シミュレーションを実行して参照モデルの生成コードを検証する方法を示します。このアプローチを使用すると、次のことが可能になります。

  • 参照モデルの生成コードを検証できます。

  • テスト ベクトルまたはスティミュラスの入力を提供するためにテスト ハーネス モデルを提供する必要があります。

  • Model ブロックをノーマル モードと PIL シミュレーション モードの間で簡単に切り替えることができます。

1. stm32_model_pil_block モデルを開きます。このモデルは STM32 プロセッサ ベースのボードをターゲットとして構成されています。Model ブロックの 1 つを PIL シミュレーション モードで実行し、それ以外をノーマル モードで実行するように構成します。

2. タスク 1 の手順を完了して PIL 通信インターフェイスを構成します。

3. Code Verification and Validation with PILの例のタスクの手順 2 を完了し、"CounterA" Model ブロックを構成して PIL シミュレーション モードで実行します。

4. モデルの実行が始まると、"Scope1" に STM32 プロセッサ ベースのボードで実行中の PIL シミュレーションの出力が表示され、"Scope2" にノーマル モード シミュレーションの出力が表示されます。

タスク 4 - PIL を使用して最上位モデルのコードを検証する

このタスクでは、PIL シミュレーションを実行してモデルの生成コードを検証する方法を示します。このアプローチを使用すると、次のことが可能になります。

  • 最上位モデルの生成コードを検証できます。

  • MATLAB™ ワークスペースからテスト ベクトルまたはスティミュラスの入力を読み込むようにモデルを構成する必要があります。

  • モデル全体をノーマル モードと PIL シミュレーション モードの間で簡単に切り替えることができます。

1. stm32_top_model_pil モデルを開きます。このモデルは STM32 プロセッサ ベースのボードをターゲットとして構成されています。

2. タスク 1 の手順を完了して PIL 通信インターフェイスを構成します。

3. Code Verification and Validation with PILの例のタスク 3 の手順 2 を完了して最上位モデルの PIL シミュレーションを実行します。

4. PIL シミュレーションが完了すると、ベース ワークスペースに "logsOut" 変数が作成されます。"logsOut" のデータに PIL シミュレーションの結果が格納されます。以下のコマンドを使用して、信号 "count_a""count_b" についてログ記録されたデータにアクセスできます。

  • count_a = get(logsOut,'count_a');

  • count_a.Values.Data

  • count_b = get(logsOut,'count_b');

  • count_b.Values.Data

詳細