Community Translation - Modifying the Default Memory Map in FX3, CX3, FX3S, SD3, FX2G2, and SD2 - KBA229114

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Kenshow
Level 8
Level 8
Distributor - Marubun (Japan)
50 solutions authored 25 solutions authored 10 solutions authored

Hi,

I would like to translate KBA229114 into Japanese.

Please confirm to my work.

Thanks,

Kenshow

0 Likes
2 Replies
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello, Kenshow-san

Confirm to work this KBA.

Thanks,

Jenna

Jenna Jo
0 Likes
Kenshow
Level 8
Level 8
Distributor - Marubun (Japan)
50 solutions authored 25 solutions authored 10 solutions authored

Hi Jenna-san,

Japanese translation was over.
Please check below.

Original KBA:

Modifying the Default Memory Map in FX3, CX3, FX3S, SD3, FX2G2, and SD2 - KBA229114

Thanks.

Kenshow

==============================

タイトル: FX3、CX3、FX3S、SD3、FX2G2、およびSD2のデフォルトのメモリマップの変更 - KBA229114

バージョン:**

質問: FX3CX3FX3SSD3FX2G2、およびSD2のリンカスクリプトファイルを変更するにはどうすればよろしいでしょうか?

回答: Cypress FX3ファミリチップは、256 KB512 KB2つのSRAMサイズで利用できます。各SRAMサイズのチップには、リンカスクリプトファイル(.ldファイル)を通じて提供される独自のメモリマッピングがあります。リンカスクリプトファイルに加えて、すべてのプロジェクトのプロジェクトディレクトリにcyfxtx.cファイルが必要です。cyfxtx.cファイルは、アプリケーション固有の例外ハンドラとメモリ割り当てルーチンを提供します。リンカスクリプトファイルは、Eclipse統合開発環境(IDE)のリンカステージで使用され、実行可能およびリンク可能な形式(.elf)ファイルを構築します。cyfxtx.c定義されたマクロは、ドライバーヒープとDMAバッファのメモリ領域を割り当てるために実行時に使用されます。

デフォルトのリンカスクリプトファイル(.ldファイル)およびcyfxtx.cファイルで提供されるメモリマッピングが要件と競合する場合があります。 たとえば、212 KBのコード領域サイズが必要な場合でも、リンカスクリプトファイルではデフォルトのコードサイズが180 KBに設定されています。 このナレッジベースの記事(KBA)は、そのような問題に対処し、512 KB SRAMチップのリンカスクリプトファイルとcyfxtx.cファイルを変更する手順を提供します。 このKBAを参照して、256 KB SRAMチップを変更することもできます。

デフォルトのリンカスクリプトファイル

512 KB SRAMチップのデフォルトのリンカスクリプトファイル(fx3.ld)は、FX3 SDKのデフォルトパスであるC:\Program Files(x86)\Cypress\EZ-USB FX3 SDK\1.3\fw_build\fx3_fwにあります。

リンカスクリプトファイルは、Tightly-Coupledメモリ(ITCM)セクションおよびシステムメモリとデータメモリにメモリを割り当てます。

ITCMは、例外ベクターと割り込みサービスルーチン(ISR)コードを保持するための16 KBの専用スペースです。これは、ARM® CPUからITCMメモリ領域に読み書きすることは可能である間は、DMA転送のための転送先としてこのメモリ領域を使用することは不可能です。ITCM512 KBSRAMメモリ空間の一部ではないことに注意してください。

システムメモリ空間は、アプリケーションコードを格納するために使用され、コード領域とも呼ばれます。

データメモリ空間は、初期化されたデータとBSSデータ(初期化されていないグローバルデータ)を格納するために使用されます。

512 KB SRAMのデフォルトメモリマップ

1に、512 KB FX3ファミリチップのデフォルトのアプリケーションメモリマップを示します。512 KB SRAMのアドレスは0x40000000で始まり、0x4007FFFFで終わることに注意してください。

1. 512 KB FX3ファミリチップのデフォルトメモリマップ

ベースアドレス

サイズ(KB

ディスクリプタ領域

0x40000000

12

コードエリア

0x40003000

180

データエリア

0x40030000

32

ドライバーエリア

0x40038000

32

バッファ領域

0x40040000

224

セカンドステージブートエリア

0x40078000

32

:第2段階のブート領域はオプションです(アプリケーションが永続的なメモリ内ブートローダーを使用する場合にのみ必要です)。このブート領域が使用されていない場合、cyfxtx.cCY_U3P_SYS_MEM_TOP0x40080000に変更することにより、このセグメント用に予約されている32 KBをバッファ領域とマージできます。

上記のメモリマッピングは、すべてのFX3ファミリサンプルプロジェクトのcyfxtx.cファイルに記載されてます。

リンカスクリプトファイルとcyfxtx.cファイルの変更

ユーザーアプリケーションに次の要件があるとします。

  • コードサイズ212 KB
  • 224 KBDMAバッファスペースを維持する

DMAバッファサイズを224 KBに維持しながらコードサイズを32 KB増やすには、第2ステージのブートローダー領域の割り当てを解除する必要があります。

要件に従ってメモリスペースを調整するには、リンカスクリプトファイルのデフォルトのメモリマッピングと、cyfxtx.cファイルで定義されたMACROSを変更します。

リンカスクリプトファイルを変更するには、次の手順に従います。

1. SYS_MEMスペースの長さを0x35000212 KBに相当)に変更します。

SYS_MEM : ORIGIN = 0x40003000    LENGTH = 0x35000

2. DATAスペースのORIGIN0x40038000に調整します(つまり、0x40003000 + 0x35000

DATA  : ORIGIN = 0x40038000    LENGTH = 0x8000

リンカスクリプトファイルを変更した後、cyfxtx.cファイルのMACROSを変更します。

1. ヒープベースを0x40040000に変更します

#define CY_U3P_MEM_HEAP_BASE0x40040000

2. SYS_MEM_TOP0x40080000に変更します

#define CY_U3P_SYS_MEM_TOP0x40080000

RAMの最後の32 KBは、第2段階のブート操作用に予約されていることに注意してください。SYS_MEM_TOP値は0x40080000に変更されています。これは、アプリケーションに第2ステージのブート領域が必要ないためです。

2では、デフォルトのメモリマップと変更されたメモリマップを比較しています。

2. デフォルトのメモリマップと変更されたメモリマップの比較

デフォルトのメモリマップ

変更されたメモリマップ

ベースアドレス

サイズ(KB

ベースアドレス

サイズ(KB

ディスクリプタ領域

0x40000000

12

0x40000000

12

コードエリア

0x40003000

180

0x40003000

212

データエリア

0x40030000

32

0x40038000

32

ドライバーエリア

0x40038000

32

0x40040000

32

バッファ領域

0x40040000

224

0x40048000

224

セカンドステージブートエリア

0x40078000

32

0x40080000

0

変更されたリンカスクリプトファイルとcyfxtx.cファイルは、参照用にこのKBAに添付されています。

==============================

25-May-2020

Kenshow

0 Likes