DA1458xソフトウェアプラットフォームのメモリ構成

1。概要

Bluetoothプロファイル及びカスタムアプリケーションコードを格納するための埋め込まれたタイム・プログラマブル(OTP)メモリを含むDA1458x。専用の低消費電力ROMに記憶されたBluetooth(登録商標)プロトコルスタック。RAMは、機密性の高いデータとのリンク情報を格納するためのディープスリープモードで低リークのために予約しました。次のようにメモリブロックのサイズは、次のとおりです。
●ROM 84キロバイト。ブートROMコードおよびBluetooth低エネルギープロトコル関連のコードが含まれています。
●32 KB-タイムプログラマブル(OTP)。DA1458xのパワーアップまたはリセット、マスターブートコード(ROMコード)OTPメモリがプログラムされているか確認してくださいは、プログラムされている場合、システムは、OTP RAMにミラーリングし、コードを実行されるとき。
●128キロバイトのフラッシュメモリ(のみDA14583は持っています)。パワーアップまたはDA14583をリセットし、マスターブートコード(ROMコード)ブートローダ補助負荷(またはOTPメモリFLASHから)、及び補助ブートローダは、システムRAM及びFLASH・プログラムの実行に画像をコピーし続ける場合。
システム●42 kBのSRAM。
●8キロバイトのSRAMを禁じます。

2.Memory地図

BLEカーネルは「為替メモリー」制御構造という名前のストレージ・スペースにアクセスするために、フレームバッファを格納する必要があります。レジスタフィールドGP_CONTROL_REG [EM_MAPPING]コントロールを介して、アドレス空間マッピングシステムバスにBLEカーネルアドレス空間。
応用例としては、SDKには、ケース23を選択して、プログラムはファイルレジスタSDKの\プラットフォーム\であるアーチ\ブート\ RVDS \ system_ARMCM0.c 中:
SetBits32(GP_CONTROL_REG、EM_MAP、23);
なお、必要初期化ファイルのSDK \ common_project_files \その他\ Keil社(J-リンク)デバッガへsysram_case23.iniメモリマップ選択は、デバッガが正しいメモリ・マッピングに使用されてもよいです。この文書では、以下の情報は、このラインを提供する:
E = 0x2Eロング0x50003308
図で23は、その場合、すべてのSDKのアプリケーションの例のアドレスマッピングの場合を示しています。
ここに画像を挿入説明
上記のように、0x1FFFFFFFに0x0の領域0x7FFFFと0x83000が予約されており、使用することができません。RAMに位置0x80000は0x81FFFに留保しました。その上、0x82FFFに0x82000で4キロバイトのRAM容量、チップがディープスリープモードに入るとき、RAMスペースが保存されていないがあります。
0x200097FFに0x20000000から、38キロバイトのRAMスペース(SysRAM)があります。収納スペースの一部の地域では、ユーザーが使用することはできません、予約されています。これらは以下のとおりです。
●ベクタテーブル、0x20000000を置きました。
0x20000160中●ジャンプテーブル。
0x200002C0位置●タイムアウトテーブル、。
0x20000340に位置●NVDS店、。
●ROMコードデータ、0x20009000を設置。
残りの記憶スペース(〜37 KB)でアプリケーションコードとデータ内に配置することができます。なお、サイズコードと32 kBのOTPのサイズ制限によって初期化データ。0x82FFF 0x80000で、さらにデータを格納するための空き領域を残すために。

3.ARMスキャッタファイル

スキャッタファイルのスキャッタファイルを置き、コードとデータにリンカに指示します。この実行領域の記述子とローディングエリアの記述子。
ローディングリンカー領域は、ローディング及び初期化コードのためのコード及びデータは、コードとデータを配置する場所を示します。arch_main.c main_func()のコードに到達する前に、初期化コードを実行します。初期化中に、必要に応じて、実行領域にロード領域から負荷コードとデータ。フラッシュメモリに格納されたコードとデータを使用する場合、例えば、このアーキテクチャは、シームレスに、コード領域とシステムRAMにデータを転送することを可能にします。
OTPからコピーされたのでDA1458xため、この機能は、システムの電源投入時またはディープスリープモードを終了すると、ブートROMコードによって行われ、このプロセスは、アプリケーションコードに対して完全に透過的である時に、必要とされません。したがって、ローディングエリアDA1458x分散文書及び少なくとも0x200097FFに一致するようにメモリ範囲0x20000000は、それぞれの領域を行っ。
ローディングエリアの残りの部分はゼロ初期化データが含まれている必要があります。0x80000領域は初期化されていないデータ(UNINIT)の必要性を含んでい0x82FFFに宣言する必要があります。ゼロで初期化されたデータはここに配置することができるので、チップので、領域ゼロを可能にします。すべてのエリアは、データ圧縮を無効にする必要があります。
スキャッタファイルには、SDK \ common_project_files \スキャッタ内のサンプルアプリケーションで見つけることができます。

公開された19元の記事 ウォンの賞賛4 ビュー1680

おすすめ

転載: blog.csdn.net/ydgd118/article/details/104467459