AURIX™ MCU: Using the AURIX™ Special Function Register Group definitions - KBA235505

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
NXTY_takeichi
Level 4
Level 4
Distributor - NEXTY (Japan)
10 likes given 5 likes given 10 questions asked

Hi,Communites, I want to translate the following KBA235505 into Japanese.

 

https://community.infineon.com/t5/Knowledge-Base-Articles/AURIX-MCU-Using-the-AURIX-Special-Function...

 

Best Regards,

Hideki Takeichi

0 Likes
1 Solution
NXTY_takeichi
Level 4
Level 4
Distributor - NEXTY (Japan)
10 likes given 5 likes given 10 questions asked

Thank you for your confirmation

I have translated this KBS to Japanese.

 

AURIX MCU: AURIX™ 特殊機能レジスタ(Special Function Register :SFR)グループの定義を使用する - KBA235505

 

ハードウェア(HW)機能ブロックやサブブロックインスタンスが複数回繰り返される場合、AURIX™特殊機能レジスタ(SFR)グループを使用します。

これにより、エラーのない、資源効率のよいソフトウェア開発が可能になります。このソフトウェア開発は結果として

 - 上記ブロックにアクセスするために開発されるドライバ・ソフトウェアのシングルイメージを実現します。

 - 上記ブロックを設定するための繰り返し(ループ)を可能にします。

提案の詳細として、AURIX SFR Cヘッダーファイルは、レジスタをレジスタグループとして、HWファンクションブロックと同じ階層に整理しています。

これにより、図1に示すように、ペリフェラルHWモジュール(HWカーネルレジスタマップのC構造表現)をカプセル化することができます。

<図1>

Screenshot (53).png

 

2は、C構造で表現されたAURIX TC3xx MCMCANを使用し、CANController Area Network)を例に、グループ化構造の使用方法を示したもので、シングルソフトウェアイメージのシナリオを示しています。ここでは、CANの各ノード(サブブロック)をサブ構造体としてインスタンス化しています。

<図2>

Screenshot (54).png

CANノードを制御するには、次の例のようにSFRへのポインタを引数に取るAPI1つ開発すれば十分です。

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

void IfxCan_Node_setFrameMode(Ifx_CAN_N *node, IfxCan_FrameMode frameMode)
{
    switch (frameMode)
    {
    case IfxCan_FrameMode_standard:
        node->CCCR.B.FDOE = 0;
        node->CCCR.B.BRSE = 0;
        break;
    case IfxCan_FrameMode_fdLong:
        node->CCCR.B.FDOE = 1;
        node->CCCR.B.BRSE = 0;
        break;
    case IfxCan_FrameMode_fdLongAndFast:
        node->CCCR.B.FDOE = 1;
        node->CCCR.B.BRSE = 1;
        break;
    }
}

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

上のコードにあるように、IfxCan_Node_setFrameMode関数の最初のパラメーターはIfx_CAN_Nへのポインターです。

同じシグネチャと同じイメージでコードメモリに一度保存されたこのAPIは、利用可能なすべてのCANノードで使用することができます。

 

次のコードは、ノード0に対して上記のAPIを呼び出す方法を示しています。

IfxCan_Node_setFrameMode(&MODULE_CAN0.N[0], IfxCan_FrameMode_fdLong);

 

注)このKBAは、以下のAURIX MCUシリーズに適用されます。

 

AURIX TC2xxシリーズ

AURIX TC3xxシリーズ

 

View solution in original post

0 Likes
3 Replies
IFX_Publisher2
Community Manager
Community Manager
Community Manager
25 likes received 1000 replies posted First like given

Hi Hideki Takeichi san,

Confirm to work on this KBA.

Thanks,
Bindu

0 Likes
NXTY_takeichi
Level 4
Level 4
Distributor - NEXTY (Japan)
10 likes given 5 likes given 10 questions asked

Thank you for your confirmation

I have translated this KBS to Japanese.

 

AURIX MCU: AURIX™ 特殊機能レジスタ(Special Function Register :SFR)グループの定義を使用する - KBA235505

 

ハードウェア(HW)機能ブロックやサブブロックインスタンスが複数回繰り返される場合、AURIX™特殊機能レジスタ(SFR)グループを使用します。

これにより、エラーのない、資源効率のよいソフトウェア開発が可能になります。このソフトウェア開発は結果として

 - 上記ブロックにアクセスするために開発されるドライバ・ソフトウェアのシングルイメージを実現します。

 - 上記ブロックを設定するための繰り返し(ループ)を可能にします。

提案の詳細として、AURIX SFR Cヘッダーファイルは、レジスタをレジスタグループとして、HWファンクションブロックと同じ階層に整理しています。

これにより、図1に示すように、ペリフェラルHWモジュール(HWカーネルレジスタマップのC構造表現)をカプセル化することができます。

<図1>

Screenshot (53).png

 

2は、C構造で表現されたAURIX TC3xx MCMCANを使用し、CANController Area Network)を例に、グループ化構造の使用方法を示したもので、シングルソフトウェアイメージのシナリオを示しています。ここでは、CANの各ノード(サブブロック)をサブ構造体としてインスタンス化しています。

<図2>

Screenshot (54).png

CANノードを制御するには、次の例のようにSFRへのポインタを引数に取るAPI1つ開発すれば十分です。

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

void IfxCan_Node_setFrameMode(Ifx_CAN_N *node, IfxCan_FrameMode frameMode)
{
    switch (frameMode)
    {
    case IfxCan_FrameMode_standard:
        node->CCCR.B.FDOE = 0;
        node->CCCR.B.BRSE = 0;
        break;
    case IfxCan_FrameMode_fdLong:
        node->CCCR.B.FDOE = 1;
        node->CCCR.B.BRSE = 0;
        break;
    case IfxCan_FrameMode_fdLongAndFast:
        node->CCCR.B.FDOE = 1;
        node->CCCR.B.BRSE = 1;
        break;
    }
}

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

上のコードにあるように、IfxCan_Node_setFrameMode関数の最初のパラメーターはIfx_CAN_Nへのポインターです。

同じシグネチャと同じイメージでコードメモリに一度保存されたこのAPIは、利用可能なすべてのCANノードで使用することができます。

 

次のコードは、ノード0に対して上記のAPIを呼び出す方法を示しています。

IfxCan_Node_setFrameMode(&MODULE_CAN0.N[0], IfxCan_FrameMode_fdLong);

 

注)このKBAは、以下のAURIX MCUシリーズに適用されます。

 

AURIX TC2xxシリーズ

AURIX TC3xxシリーズ

 

0 Likes
IFX_Publisher2
Community Manager
Community Manager
Community Manager
25 likes received 1000 replies posted First like given

Hi  Hideki Takeichi san

Confirmed to receive this KBA.

Thank you for your contribution.

Thanks,
Bindu

0 Likes