dsPIC 30F4013で、未定義のトラップが原因でコントローラーがリセットされた2つのケースを見てきました。そもそもなぜこれらのtrapが発生したのかは謎のままですが、それは私の直接の質問ではありません。トラップが決して発生しない場合でも、すべてのトラップを常に定義することは良いプログラミング手法だと考え始めているので、ランダムリセットの代わりに少なくとも明確なエラーメッセージが表示されます。これは私が知らない標準的な慣習ですか?このプラクティスに不利な点はありますか?
4
あなたの質問に対する答えではありませんが、私は少し前にdsPICおよびPIC24システムでこの種の症状に苦しみました。私の場合、トラップは16ビット値へのポインタを逆参照しているコードのビットに起因し、これらのポインタ自体は奇数の(偶数ではない)値を持ちました。 16ビット値が奇数または偶数の境界で始まるかどうかを知る方法。XC16コンパイラは、ここでのハードウェアのハングアップからあなたを保護しません。最終的に、2つの8ビットポインター逆参照を強制するこれらの関数のラッパーマクロを作成しました。
—
ブランス