请教关于V307 DMA地址越界的问题

我在用户手册上注意到如下说明:

注:DMA1 在使用时需注意,对于批号第五位小于 3,DMA1 所有通道的 DMA 访问地址不得超过 64K

边界,例如-CH32V307VCT6 配置 RAM 为 128K,此时配置 DAM1 需注意 DMA 源地址 + 传输数据

数目,或 DMA 目的地址 + 传输数据 只能在 0-64K,或 64K-128K 区域,不可出现 63K-65K 类似情

况。对于批号第五位大于等于 3,DAM1 通道 2,3,4,5,DMA 访问地址不得超过 128K 边界,DMA1 通

道 1,6,7DMA 访问地址依然不得超过 64K 边界。DMA2 使用上没有限制。
我的SPI数据大概有20K,RAM为128K。IDE为MounRiver。C++。
我该如何声明缓存数组和目的地址,或开辟内存空间,才能避免跨越64K的边界呢?

您好,可以参考一下附件文档介绍方法,后续若有问题,可邮箱(lzs@wch.cn)沟通。

icon_rar.gifDMA基地址寄存器溢出解决方案.zip



只有登录才能回复,可以选择微信账号登录