よくある質問(FAQ)

【ARM Cortex】シミュレーション実行中に「システム命令を実行しました」エラーが発生しました。

シミュレーションエラーの回避策について

質問

【ARM Cortex 固有】
シミュレーション実行中に「システム命令を実行しました」エラーが発生しました。原因と解決方法を教えてください。

■エラー内容
%XTPC-E, SX-E:[HSN-AT7-000021] システム命令を実行しました.(pc=0xXXXXXXXX)

回答

本エラーは、 MSR(又はMRS)命令がシステムモードで実行されていることが原因です。これらの命令は特権(スーパバイザ)モード以外のモードでは実行することができません。

特権モードは、一般的にプログラムの初期化処理(スタートアッププログラム等)で設定しています。特権モードに設定されていない状態で、MSR(又はMRS)命令が実行されたということは、プログラムの初期化処理が正しく実行されていない可能性がありますので、初期化処理 (スタートアップルーチン等) が実行されているか否か の確認が必要です。

あえて、初期化処理 (スタートアップルーチン等) を実行していない場合は、スタートアップコマンドファイル (SS_STARTUP.txt) に、下記コマンドを追記することで 特権(スーパバイザ)モードへ設定することができます。

■追記するコマンド
set reg CPSR = 0x13