- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,Communites, I want to translate the following KBA235505 into Japanese.
Best Regards,
Hideki Takeichi
Solved! Go to Solution.
- Labels:
-
KBA235505
- Tags:
- KBA235505 AURIX
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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>
図2は、C構造で表現されたAURIX™ TC3xx MCMCANを使用し、CAN(Controller Area Network)を例に、グループ化構造の使用方法を示したもので、シングルソフトウェアイメージのシナリオを示しています。ここでは、CANの各ノード(サブブロック)をサブ構造体としてインスタンス化しています。
<図2>
CANノードを制御するには、次の例のようにSFRへのポインタを引数に取るAPIを1つ開発すれば十分です。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
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シリーズ
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Hideki Takeichi san,
Confirm to work on this KBA.
Thanks,
Bindu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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>
図2は、C構造で表現されたAURIX™ TC3xx MCMCANを使用し、CAN(Controller Area Network)を例に、グループ化構造の使用方法を示したもので、シングルソフトウェアイメージのシナリオを示しています。ここでは、CANの各ノード(サブブロック)をサブ構造体としてインスタンス化しています。
<図2>
CANノードを制御するには、次の例のようにSFRへのポインタを引数に取るAPIを1つ開発すれば十分です。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
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シリーズ
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Hideki Takeichi san
Confirmed to receive this KBA.
Thank you for your contribution.
Thanks,
Bindu