Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

親愛 なる

フラッシュを読み出し、フラッシュを読み取るためのマクロ MEM(アドレス) を定義します。

#define MEM(アドレス) *((uint32 *)(アドレス))

aa = MEM(0xa0008000 );
bb=aaです。

しかし、フラッシュアドレスは読み取ることができません。 例:0xA0004000は読み込めるが、0xA0008000読み込むと以下のようなエラーになる。

フラッシュアクセスに関する提案やアプリケーションノートはありますか?

seanwu_0-1699260178895.png

感謝。

ブラジル、

ショーンウー

 

 

0 件の賞賛
1 解決策
Translation_Bot
Community Manager
Community Manager
Community Manager

https://github.com/Infineon/AURIX_code_examples/blob/master/code_examples/Flash_Programming_1_KIT_TC...

https://www.infineon.com/dgdl/Infineon-AURIX_Flash_Programming_1_KIT_TC297_TFT-Training-v01_01-EN.pd...

提供されているデモコードを参照して、プログラムフラッシュメモリを消去して書き込むことができます。このコードには、 データが書き込まれるプログラムフラッシュメモリの開始アドレスを指定するPFLASH_STARTING_ADDRESSの定義が含まれています。このコードは、特定の要件や目的に合わせて変更できます。

 

 

#define PFLASH_STARTING_ADDRESS     0xA00E0000                  /* Address of the PFLASH where the data is written  */

 

 

 

元の投稿で解決策を見る

0 件の賞賛
4 返答(返信)
Translation_Bot
Community Manager
Community Manager
Community Manager

これはクラス 4 で、ID 2 では、「trapInfo」を監視してトラップに関する情報を取得できます。

私のコード内には、アドレス 'a00f0000'は960キロバイトに対応しており、トラップはありませんが、アドレス 'a0300300'は3MBに対応し、トラップをトリガーします。

#define MEM(address)       *((uint32 *)(address))
int aa,bb,c;
void core0_main(void)
{
    aa = MEM(0xa00f0000 );
    bb=aa;
    if(bb>1)bb=1;
    aa = MEM(0xa0300300 );
    bb=aa;
    if(bb>1)bb=1;
...
}
したがって、.lslを確認してください リンカ ファイル (例: my .lsl) file define 3M は pfls0 用です。 そのため、0xa0300300アドレスにアクセスできません。

memory pfls0
{
mau = 8;
size = 3M;
type = rom;
map cached (dest=bus:sri, dest_offset=0x80000000, size=3M);
map not_cached (dest=bus:sri, dest_offset=0xa0000000, reserved, size=3M);
}

memory pfls1
{
mau = 8;
size = 3M;
type = rom;
map cached (dest=bus:sri, dest_offset=0x80300000, size=3M);
map not_cached (dest=bus:sri, dest_offset=0xa0300000, reserved, size=3M);
}

 

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

親愛 なる

私はあなたの手段がわかりません。 何が正しくて、何が間違っているのか、説明していただけますか? それとも、やってみませんか?

感謝。

ブラジル、

ショーン

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

親愛 なる

お返事ありがとうございます。

私のpfls0サイズは256KBなので、0xa0008000(0xa0040000)の範囲にあります。

seanwu_2-1699335805156.png

また、エラーアドレスが「消去されたフラッシュ」であることもわかりましたが、アドレスにデータを書き込むとエラーは発生しません。

 

フラッシュアクセスに関するドキュメントはありますか?

感謝。

ブラジル、

ショーン・ウー

 

 

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

https://github.com/Infineon/AURIX_code_examples/blob/master/code_examples/Flash_Programming_1_KIT_TC...

https://www.infineon.com/dgdl/Infineon-AURIX_Flash_Programming_1_KIT_TC297_TFT-Training-v01_01-EN.pd...

提供されているデモコードを参照して、プログラムフラッシュメモリを消去して書き込むことができます。このコードには、 データが書き込まれるプログラムフラッシュメモリの開始アドレスを指定するPFLASH_STARTING_ADDRESSの定義が含まれています。このコードは、特定の要件や目的に合わせて変更できます。

 

 

#define PFLASH_STARTING_ADDRESS     0xA00E0000                  /* Address of the PFLASH where the data is written  */

 

 

 

0 件の賞賛