asseart関数・マクロC言語のコンパイラは、ソースコードが文法的に正しいかはチェックしてくれます。ソースコードの意味的な内容が正しいかまではチェックしてくれません。これは仕方のないことではあるのですが、関数の引数の使い方については、その関数の中で、引数が適正であるかをチェックするルーチンを設ければ、適正かどうかを確認できます。割り算を行う関数で、0で割ることを防止するために、引数が0の場合にはエラーを出して停止するといった具合です。C言語ではこのような引数のチェックのため、assert関数・マクロがよく利用されます。STM32のファームウェアでは、各関数の引数が適正であるかをチェックするために、各関数に予めassert関数と同様に機能する、引数のチェックルーチンが埋め込まれています。この機能を利用すると、例えば、USARTの初期設定でフロー制御の有無を設定すべきメンバに、誤ってパリティを設定してしまった場合には、これを検出することができます。ファームウェアでは、エラーを検出した際の通知方法はユーザーにゆだねています。本書の環境では、platform_config.hで指定したCOMポートに、エラーが発生したファームウェアのソースコードファイル名と行番号を送信して停止するように実装しています。このassert機能は初期状態では無効になっています。1をコメントを外してください。変更後はファームウェア全体の再コンパイルが必要です。計測器の利用このページはITと知的財産の法律情報「法務ネット」の管理人が制作・運営しています。