ページ 11

Hard Faultになってしまう。

Posted: 2014年4月24日(木) 14:36
by eForce技術担当
対象:
μC3/Compact、μC3/Standard

質問:
Hard Faultになってしまいます。

回答:
HardFaultになってしまう場合、以下のケースが考えられます。
1)スタックサイズがオーバーフローしている
2)管理外割り込みから、OSのAPIを使用した

回避方法
<μC3/Compactの場合>
1)の場合、コンフィグレーターを使用し、該当タスクのスタックサイズを現在の指定値より、大きなサイズを指定してください。
2)の場合、管理外割り込みから使用できるAPIはvloc_cpu()、vulc_cpu()のみです。それ以外のAPIは使用できませんので、グローバル変数を使用するなどの、方法を選択してください。

<μC3/Standardの場合>
1)の場合、タスク定義のコンフィグレーション記述部のスタックサイズを現在の指定値より、大きなサイズを指定してください。
2)の場合、管理外割り込みから使用できるAPIはvloc_cpu()、vulc_cpu()のみです。それ以外のAPIは使用できませんので、グローバル変数を使用するなどの、方法を選択してください。

コード: 全て選択

/* サンプルコード例 */
void hoge(void) {
    
}