eDMA from the bitband region on K20

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

eDMA from the bitband region on K20

跳至解决方案
1,807 次查看
jrychter
Contributor V

I am trying to perform DMA transfers from the bitband region (0x22000000) on the K20, but eDMA reports a bus error on a source read (SBE set in the DMA_ES register). The same code works fine if I access my source data placed in the SRAM_U region at 0x20000000 (e.g. the same code does not report a bus error if I change DMA_TCD2_SADDR from 0x22000000 to 0x20000000 with no other changes).

At first I thought it was because of byte accesses, but the bitband region should support all kinds of reads, besides then I also tried with word reads, same result.

Is there an undocumented limitation of the eDMA engine? Is it unable to access the bitband region? (if so, that would be extremely disappointing)

标签 (1)
标记 (4)
1 解答
1,588 次查看
egoodii
Senior Contributor III

I don't know precisely what chip you are using, but just looking at Table 4-1 "System Memory Map" of K1064M72SF1RM.pdf, access to the SRAM bitband says:

0x2200_0000–0x23FF_FFFF           Aliased to SRAM_U bitband           Cortex-M4 core only

so eDMA can't get to SRAM bitband.

在原帖中查看解决方案

0 项奖励
回复
2 回复数
1,589 次查看
egoodii
Senior Contributor III

I don't know precisely what chip you are using, but just looking at Table 4-1 "System Memory Map" of K1064M72SF1RM.pdf, access to the SRAM bitband says:

0x2200_0000–0x23FF_FFFF           Aliased to SRAM_U bitband           Cortex-M4 core only

so eDMA can't get to SRAM bitband.

0 项奖励
回复
1,588 次查看
jrychter
Contributor V

*Sigh* — so it is documented, just not in the eDMA section. Thanks for pointing that out.

It seems every time I discover a cool feature in the Kinetis line, it turns out that it is so limited that I can't use it for anything…