PSoC 4 LINS_Start() が Error を返す場合 - KBA229137- Community Translated (JA)

Version 1

    Community Translated by  MoTa_728816          Version: **

     

    LINS_Start() API 関数は PSoC® 4 LIN Slave コンポーネント API  関数の一つで、当該コンポーネントを起動するものです。この API 関数の返り値は以下の通りです

    • ゼロ初期化に成功した場合。
    • ゼロ以外: 初期化に失敗した場合。

     

    もし LINS_Start() 0以外の値、即ちエラーを返した場合、LIN Slave コンポーネントの初期化に失敗しています。実際の LIN Slave コンポーネントの初期化は、LINS_Start() 中で起動される 1_ifc_init_LINS() 関数で行われます

    1_ifc_init_LINS() 関数は初期化に失敗すると 0 以外の値を返します。初期化の結果は LINS_TimerEnableInt()  関数内で  LIN のコールバック関数 1_ifc_aux_LINS() SysTick タイマスロットに登録することが出来たか否かによります

    LINS_TImerEnableInt() 関数は 1_ifc_init_LINS() 関数から起動されることにご注意ください

    LIN Slave コンポーネントは定期的に LIN バスの休止状態を監視してスリープ遅延を測定します。SysTick タイマはこの定期的な処理に使用されます、そしてこの定期的な処理は SysTick タイマ割込みで起動されるコールバック関数として SysTick タイマスロットに登録されます

    LIN のコールバック関数 1_ifc_aux_LINS() SysTick タイマスロットに登録できない原因は以下のようなものがあります

    • 必要な数のタイマスロットが用意されていない。
    • SysTick タイマスロットに既に他のコンポーネント、例えば CapSense等、のコールバックが登録されていて空きスロットが無い

     

    結論として、これらの原因によって LINS_Start() API はゼロではない値を返し、それは LIN Slave コンポーネントの初期化に失敗したことを意味します