2 Replies Latest reply on May 26, 2020 2:45 PM by NoTa_4591161

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

    NoTa_4591161

      Hi,

       

      I would like to translate KBA229085 into Japanese.

      Please confirm to my work.

       

      Thanks,

      Kenshow

        • 2. Re: Community Translation - Incorrect Definition of Enumerator “en_mfs_mode” in PDL 2.1.0 - KBA229085
          NoTa_4591161

          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