PDL 2.1.0 の Dstc_ClearDreqenbBit() 関数が DREQENB レジスタビットをクリアせずにセットしてしまいます - KBA218861 - Community Translated (JA)

Version 1

    Community Translated by  MoTa_728816          Version: **

     

    Translation - English: Dstc_ClearDreqenbBit() function in PDL 2.1.0 sets DREQENB register bit instead of clearing it - KBA218861

     

    質問:

    ペリフェラル ドライバ ライブラリ (PDL) 2.1.0 の Dstc_ClearDreqenbBit() 関数が DREQENB レジスタビットをクリアせずにセットしてしまいます。この問題は PDL 2.1.0 の DSTC を使用した場合に FM0+ と FM4 ファミリで再現可能です。ワークアラウンドはありますか?

     

    回答:

    PDL のソースを手動で変更することが必要ですが、下記ワークアラウンドがあります。

     

    /drivers/dstc/dstc.c というファイルを開いて、Dstc_ClearDreqenbBit() 関数を特定してください。

     

    下記の行を

     

    *(uint32_t*)(uint32_t)(((uint32_t)(&FM_DSTC->DREQENB0)) + ((4ul * (uint32_t)u8WordPos))) |= u32BitPosRelative;

     

    下記の行に変更してください。

     

    *(uint32_t*)(uint32_t)(((uint32_t)(&FM_DSTC->DREQENB0)) + ((4ul * (uint32_t)u8WordPos))) &= ~(u32BitPosRelative);

     

    この問題は PDL 2.x の次のリリースで修正される予定です。ファームウェア アップデートの予定および DREQENB レジスタの使用方法に関するご質問は Cypress 技術サポート (www.cypress.com/mycases) までお問合せください。