cgsl_0411: 不揮発性メモリへのアクセス
ID: タイトル | cgsl_0411: 不揮発性メモリへのアクセス | |
---|---|---|
説明 | ターゲット プラットフォームの不揮発性メモリにアクセスするには、次のいずれかの方法を使用します。 | |
A | 非同期的または同期的なメモリ アクセスに対して、永続性サービス インターフェイスを使用します。
| |
B | 同期的なメモリ アクセスに対して、Initialize Function ブロックおよび Terminate Function ブロックと [Direct Access] データ通信方法を使用します。
| |
メモ | 永続性サービス インターフェイスを使用したメモリ アクセス ターゲット環境で提供されるサービスを使用して不揮発性メモリにアクセスするには、内部の状態とデータ ストアを永続データの測定サービス インターフェイスにマッピングします。詳細については、cgsl_0414: コンポーネント モデル用のサービス インターフェイスの構成を参照してください。 あるいは、サービス インターフェイスのモデル化にクライアント/サーバー インターフェイスのアプローチを使用できます。このアプローチでは、不揮発性メモリへのアクセスを提供するターゲット環境のサービスを Simulink Function ブロックを使用して表現し、そのサービスに Function Caller ブロックを使用してアクセスします。詳細については、Nonvolatile Memory Interfaces (Embedded Coder)を参照してください。 Initialize Function ブロックと Terminate Function ブロックを使用したメモリ アクセス 関数の実行中の不揮発性メモリへの同期アクセスについては、ガイドラインcgsl_0406: コンポーネント展開用のデータ送信およびcgsl_0405: コンポーネント展開用のデータ受信を参照してください。 | |
根拠 | A | 永続性サービス インターフェイスを使用したメモリ アクセス:
|
B | Initialize Function ブロックと Terminate Function ブロックを使用したメモリ アクセス:
| |
モデル アドバイザー チェック | このガイドラインについてのモデル アドバイザー チェックは提供されていません。 | |
例 | 永続性サービス インターフェイスを使用したメモリ アクセス 生成される #include "PersistencyServiceExample_types.h" #include "services.h" . . . /* Storage class 'PersistentMemory' */ extern double DiscreteIntegrator; . . . の例:#include "PersistencyServiceExample.h" /* Storage class 'PersistentMemory' */ double DiscreteIntegrator; /* '<Root>/Discrete Integrator' */ . . . void PersistencyServiceExample_step(void) { double EstimatedPosition; EstimatedPosition = DiscreteIntegrator; DiscreteIntegrator++; . . . } Initialize Function ブロックと Terminate Function ブロックを使用したメモリ アクセス 生成される void CD_initialize(void) . . . &(get_CD_initialize_input())[0] . . . void CD_terminate(void) { memcpy(&(getref_CD_terminate_OutBus_NVM()))[0]... } |
参考
Code Interfaces and Code Interface Specification (Embedded Coder)
Service Interfaces (Embedded Coder)
Client-Server Interface (Embedded Coder)