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)


