アプリケーションがスタンドアロンで動作しない時の対処

テクニカル・ノート 21904

アーキテクチャ:

Arm, Renesas Synergy

コンポーネント:

debugger

更新日:

2020/02/15 16:23

はじめに

アプリケーションが動作しない理由はさまざまです。このテクニカル ノートは以下の状況について説明します。

状況:

  • アプリケーションが C-SPYデバッガ を使用し、デバッガ・プローブと接続している場合のみ動作します。
  • アプリケーションがスタンドアロンモード(すなわち、ボードとの接続を切り離し、電源を入れ直した後)では動作しません。

背景

スタンドア ローンで実行する場合と、C-SPY デバッガを使用してアプリケーションを実行する場合は大きな違いがあります。

C-SPYデバッガを使用してアプリケーションをデバッグする場合、いくつかのSFRが以下によって設定されます:

  • フラッシュローダのソースコード
  • フラッシュローダが使用する mac ファイル
  • アプリケーションが使用する macファイル.

アプリケーションがスタンドアロンで実行されるとき、これらの SFR はアプリケーションのスタートアップ/初期化コードで設定する必要があります。

アプリケーションがスタンドアロンモードで動作しない理由の他の可能な説明があります。以下のソリューションを参照してください。

提案

  1. フラッシュローダが使用されているかどうか確認してください (Options -> Debugger -> Download)。フラッシュローダを設定している場合は、おそらく、フラッシュローダマクロファイルが使われていることを意味します。マクロファイル ".mac"を参照している".board" と ".flash" ファイルを確認してください。マクロファイルを開いて、何をしているか確認してください。アプリケーションのスタートアップ コードで実行する必要があるか検討します。フラッシュのローダーを無効化すると、原因がわかるかも知れません。
  2. アプリケーションが Setup マクロファイルを使用しているかどうか確認してください (Options -> Debugger -> Setup). マクロファイルを開いて、何をしているか確認してください。アプリケーションのスタートアップ コードで実行する必要があるか検討します。Setup マクロ を無効化すると、原因がわかるかも知れません。
  3. アプリケーションコードで printf() を使用すると、デバッガが接続されていない場合、プロジェクト設定によっては、永遠にアプリケーションハングすることがあります。printf() の使用をチェックする方法は、Options -> General Options -> Library Configuration -> 'Library low-level interface' を 'None'に設定する。
    ARM Cortexでは、printf() の呼び出しを継続することができます。その場合、Options -> General Options -> Library Configuration -> stdout/stderr が 'Via SWO'となっていることを確認してください。
  4. Options -> General Options -> Library Configuration -> stdout/stderr -> 'Via Semihosting'を無効にしないと、アプリケーションがBKPT命令で停止する原因となる可能性があります。これらの BKPTは、セミホスティングのためのSWI 割り込みを送信するときにセミホスティング システムによって使用されます。 (Options -> General Options -> Library Configuration -> 'Library low-level interface' を 'None'に設定してください。)

  5. ターゲットデバイス上の特定のハードウェアは、初期化に時間がかかることがあります(PLLなど)。 アプリケーションがこれらの種類の初期化待たないと、問題が発生する可能性があります。デバッガーで実行する時、多くの場合アプリケーションは main() で停止します。これは初期化に時間を与えることになりますが、スタンドアロンでデバイスを実行する時は、このような余分な遅延はありません。これを調べるには、main() の最初に長時間の遅延ループを追加します。もし、これで動作が正常になる場合、デバイスの初期化を待機するコードを追加する必要性があることを意味しています。

 全ての製品名は、それぞれの所有者の商標または登録商標です

 

申し訳ございませんが、弊社サイトではInternet Explorerをサポートしていません。サイトをより快適にご利用いただくために、Chrome、Edge、Firefoxなどの最新ブラウザをお使いいただきますようお願いいたします。