コンテキスト切り替えに関するインラインアセンブリ命令についてもう1つの質問があります。このコードはうまくいくかもしれませんが、私は100%ではわからないので、私はこのコードをstackoverflow ;-)のプロに提出します;アームインラインアセンブリを使用したコンテキストスイッチ
arm7TDMIのgcc(最適化なし)を使用してコンパイルします。ある時点で、コードはコンテキスト切り替えを行う必要があります。
/* Software Interrupt */
/* we must save lr in case it is called from SVC mode */
#define ngARMSwi(code) __asm__("SWI %0" : : "I"(code) : "lr")
// Note : code = 0x23
私がコンパイルされたコードをチェックすると、私はこの結果を得る:これをコード化された私の前に
svc 0x00000023
人は、「我々はLRを保存する必要があります」書いたが、コンパイルされたコードでは、私はしないでください保存されている痕跡を見てください。
私はそのコードが間違っていると思う理由は、リセット例外とコードが実行最後の1コンテキストスイッチがあるに行く前にいくつかの時間のために、プログラムの実行...