Community Translation - Incorrect Definition of Enumerator “en_mfs_mode” in PDL 2.1.0 - KBA229085

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

cross mob
Kenshow
Level 8
Level 8
Distributor - Marubun (Japan)
50 solutions authored 25 solutions authored 10 solutions authored

Hi,

I would like to translate KBA229085 into Japanese.

Please confirm to my work.

Thanks,

Kenshow

0 Likes
2 Replies
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello, Kenshow-san

Approve to work.

Thanks,

jenna

Jenna Jo
0 Likes
Kenshow
Level 8
Level 8
Distributor - Marubun (Japan)
50 solutions authored 25 solutions authored 10 solutions authored

Hi Jenna-san,

Japanese translation was over.
Please check below.

Original KBA:

Incorrect Definition of Enumerator “en_mfs_mode” in PDL 2.1.0 - KBA229085

Thanks.

Kenshow

==============================

タイトル: PDL 2.1.0での列挙型「en_mfs_mode」の誤った定義-KBA229085

バージョン:*A

PDL 2.1.0の列挙型「en_mfs_mode」は次のように定義されています。

<PDLインストールディレクトリ>\drivers\mfs\mfs.h

/// MFSモード

typedef enum en_mfs_mode

{

    MfsInitMode = 0u/// <MFS初期モード

    MfsUartMode = 1u/// <MFS UARTモード

    MfsCsioMode = 2u/// <MFS CSIOモード

    MfsI2cMode = 3u/// <MFS I2Cモード

    MfsLinMode = 4u/// <MFS LINモード

} en_mfs_mode_t;

ただし、FM0 +ファミリのペリフェラルマニュアルコミュニケーションマクロパーツ(文書番号002-05024改訂版* C)によると、I2Cモードは「4」、LINモードは「3」です。

1.png  

したがって、PDL 2.1.0の列挙型「en_mfs_mode」の定義は正しくありません。列挙型「en_mfs_mode」の正しい定義は次のとおりです。

/// MFSモード

typedef enum en_mfs_mode

{

    MfsInitMode = 0u/// <MFS初期モード

    MfsUartMode = 1u/// <MFS UARTモード

    MfsCsioMode = 2u/// <MFS CSIOモード

    MfsLinMode = 3u/// <MFS LINモード

    MfsI2cMode = 4u/// <MFS I2Cモード

} en_mfs_mode_t;

さらに、MFSドライバーのインターフェイスモードは、列挙型「en_mfs_mode」を使用する代わりに、数値でハードコードされています。曖昧さを回避するために、MFSドライバーでは列挙型「en_mfs_mode」の定義を使用する必要があります。

次のPDL 2.1.0 mfs.cコードスニペットでは、赤の行はハードコーディングを示し、青の行は列挙型「en_mfs_mode」が使用されていることを示しています。

--- mfs.c.org 2017-12-23 01:29:26.000000000 +0900

+++ mfs.c       2019-11-25 15:07:50.429769700 +0900

@@ -1025,10 +1025,10 @@

switch (pstcConfig->enMode)

{

case UartNormal:

-     stcSMR.MD = 0u;   /* ノーマルモード */

+     stcSMR.MD = MfsInitMode;   /* ノーマルモード */

      break;

case UartMulti:

-     stcSMR.MD = 1u;    /* マルチプロセッサモード */

+     stcSMR.MD = MfsUartMode;   /* マルチプロセッサモード */

      break;

default:

      return (ErrorInvalidParameter);

@@ -2011,7 +2011,7 @@

pstcMfsInternData->enMode = MfsCsioMode;

/* CSIOモードを設定 */

-    stcSMR.MD = 2u;

+    stcSMR.MD = MfsCsioMode;

/* Sマスター/スレーブモードを設定 */

switch(pstcConfig->enMsMode)

@@ -3372,7 +3372,7 @@

{

case I2cMaster:

case I2cSlave:

-     stcSMR.MD = 4u;

+     stcSMR.MD = MfsLinMode;

break;

default:

return (ErrorInvalidParameter);

@@ -4424,7 +4424,7 @@

pstcLin->SCR_f.UPCL = TRUE;

/* LINモードをHWおよびプリセット変数に設定 */

-     stcSMR.MD = 3u;

+     stcSMR.MD = MfsI2cMode;

/* シリアル出力を有効にする */

stcSMR.SOE = TRUE;

==============================

27-May-2020

Kenshow

0 Likes