【i.MXRT1050】 キャッシュをイネーブルして、デバッグする時の設定


キャッシュをイネーブルしてデバッグ(ステップ実行)すると、上手くデバッグ出来ない、デバッグが止まってしまいます。キャッシュを使わない時や、TCM(Tightly Coupled Memory)のメモリーだけを使っている時は、キャッシュは使用されないので、ステップ実行は問題なく実行出来ます。

キャッシュが働いている時に、デバッグを開始すると、止まってしまうんです。これは、デバッガーの設定がキャッシュを使用するように設定されていないからです。

今回は、i.MXRT1050-EVKBのオンボードICE機能を使うときの設定方法をご紹介します。

特に、Quad SPI フラッシュROMから直接実行したり、OC-RAMやSDRAMを使う時で、キャッシュをイネーブルにしている時は、この設定をして見てください。

デバッグコンフィグレーション設定

デバッグコンフィグレーション
デバッグコンフィグレーション
デバッガー設定
デバッガー設定

このデバッガー設定内に”Additional options”という項目があると思います。

このオプション設定には、通常、

–no-packed –cachelib libm7_cache.so

となっていると思いますが、IDEのバージョンやサンプルコード、スクラッチから開発している場合には、2つ目のcacheオプションが設定されていないことがあります。

その場合には、–cachelib libm7_cache.soを付け足してください。

Addtional options設定
Addtional options設定

はい、これだけです。

デバッガーのキャッシュ処理に関連したデバッガー用のライブラリを設定します。最新のMCUXpresso IDEのサンプルでは、設定されているかと思います。

ただ、キャッシュを使用しない場合は、この設定を外しておいた方が、デバッグ処理が幾分かは軽快に動作するはずです。

キャッシュを使用しない場合、この設定で動作が重くなってしまいます。

まとめ

i.MXRT1050のデバッグ時に、キャッシュを使用している場合には、デバッガー設定内でキャッシュ処理に関連したライブラリを追加設定してあげる必要があります。

キャッシュを使用しない場合には、要らない設定です。