• 文字サイズ変更
  • S
  • M
  • L
  • No : 11425
  • 公開日時 : 2022/04/13 18:14
  • 印刷

【NXP:i.MX RT】 i.MX RT1170 FlexRAMが割り当てされるアドレス

RT1170のFlexRAMは、バンクごとにITCM/DTCM/OCRAMのいずれかに割り当てできますが、各バンクがメモリマップのどこに割り当てされか教えてください。
例えば、リファレンスマニュアルのTable 39-2のように、Bank0~3をOCRAMに割り当てた場合、このOCRAMの領域はどのアドレスでアクセスできますか。
 
i.MX RT1170 Processor Reference Manual, Rev. 1, 05/2021
- 2825ページ:Table 39-2. FLEXRAM Partitioning Example
カテゴリー : 

回答

RT1170のFlexRAMモジュールは、512KBのFlexRAMと128KBのFlexRAM ECCの合計640KB分のメモリがあります。それぞれ16バンクあり、
- Bank0~15がFlexRAMで、1バンク(32KB)ごとにITCM/DTCM/OCRAMのいずれかへ割り当てるか設定できます。
- Bank16~31がFlexRAM ECCで、1バンク(8KB)でOCRAMとして使用するか、ECCを有効にした場合ユーザからアクセスできない領域になります。
 
ITCM/DTCM/OCRAMに割り当てられた領域のうち、最も小さいバンクから順に、リファレンスマニュアルのTable 3-1に記載されているメモリマップの小さいアドレスから順に詰めて連続して割り当てされます。
  • ITCM: 0x0000_0000
  • DTCM: 0x2000_0000
  • OCRAM: 0x2036_0000
なお、Table 3-1には0x2036_0000はORCAM M7 (FlexRAM ECC)で、0x2038_0000はORCAM M7 (FlexRAM)と記載されていますが間違いです。FlexRAMにOCRAMを割り当てた場合、0x2036_0000から割り当てられます。
 
- 45~46ページ:Table 3-1. System memory map (CM7)
 
 
例えば、リファレンスマニュアルのTable 39-2のITCMに割り当てられているのはBank4, 5, 12, 13のため、割当は下記の通りとなります。
  • 0x0000_0000 ~ 0x0000_7FFF    Bank4
  • 0x0000_8000 ~ 0x0000_FFFF    Bank5
  • 0x0001_0000 ~ 0x0001_7FFF    Bank12
  • 0x0001_8000 ~ 0x0001_FFFF    Bank13

同様にDTCMに割り当てられているのは、Bank6, 7, 14, 15のため、割当は下記の通りです。
  • 0x2000_0000 ~ 0x2000_7FFF    Bank6
  • 0x2000_8000 ~ 0x2000_FFFF    Bank7
  • 0x2001_0000 ~ 0x2001_7FFF    Bank14
  • 0x2001_8000 ~ 0x2001_FFFF    Bank15
 
最後に、OCRAMに割り当てられているのはBank0~3、8~11ですが、他にFlexRAM ECCのBank16~31もあるため、FlexRAMのOCRAMに続いてFlexRAM ECCが割り当てられ、下記の通りとなります。
  • 0x2036_0000 ~ 0x2036_7FFF    Bank0
  • 0x2036_8000 ~ 0x2036_FFFF    Bank1
  • 0x2037_0000 ~ 0x2037_7FFF    Bank2
  • 0x2037_8000 ~ 0x2037_FFFF    Bank3
  • 0x2038_0000 ~ 0x2038_7FFF    Bank8
  • 0x2038_8000 ~ 0x2038_FFFF    Bank9
  • 0x2039_0000 ~ 0x2039_7FFF    Bank10
  • 0x2039_8000 ~ 0x2039_FFFF    Bank11
  • 0x203A_0000 ~ 0x203A_1FFF    Bank16
  • 0x203A_2000 ~ 0x203A_3FFF    Bank17
  • 0x203A_4000 ~ 0x203A_5FFF    Bank18
  • 0x203A_6000 ~ 0x203A_7FFF    Bank19
  • 0x203A_8000 ~ 0x203A_9FFF    Bank20
  • 0x203A_A000 ~ 0x203A_BFFF    Bank21
  • 0x203A_C000 ~ 0x203A_DFFF    Bank22
  • 0x203A_E000 ~ 0x203A_FFFF    Bank23
  • 0x203B_0000 ~ 0x203B_1FFF    Bank24
  • 0x203B_2000 ~ 0x203B_FFFF    Bank25
  • 0x203B_4000 ~ 0x203B_3FFF    Bank26
  • 0x203B_6000 ~ 0x203B_5FFF    Bank27
  • 0x203B_8000 ~ 0x203B_7FFF    Bank28
  • 0x203B_A000 ~ 0x203B_9FFF    Bank29
  • 0x203B_C000 ~ 0x203B_BFFF    Bank30
  • 0x203B_E000 ~ 0x203B_DFFF    Bank31
 

アンケート:ご意見をお聞かせください

ご意見・ご感想をお寄せください お問い合わせを入力されましてもご返信はいたしかねます