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

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

cross mob
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

Hi,

I'd like to translate KBA218861 into Japanese.

Please confirm to my work.

moto

Original KBA: KBA218861

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

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

Hello, Tanaka-san

yes, confirm to work for KBA.

Thanks,

Jenna

Jenna Jo
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

Original KBA: KBA218861

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

Translated by: MoTa_728816

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

タイトル: PDL 2.1.0 の Dstc_ClearDreqenbBit() 関数が DREQENB レジスタビットをクリアせずにセットしてしまいます - 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) までお問合せください。

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

25-May-2020

moto

0 Likes