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

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

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

GeethaP_31
Employee
Employee

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

Community Translated by  MoTa_728816          Version: **

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

質問:

ペリフェラル ドライバ ライブラリ (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) までお問合せください。

0 Likes
166 Views
Contributors