[STM32F1] 请教香版STM32F103的DMA是否支持bitbanding访问

[复制链接]
 楼主| 楚天 发表于 2014-1-7 10:24 | 显示全部楼层 |阅读模式
如题
用ST的DMA库,发现DMA的设备地址或内存地址一旦设置位bitbanding别名时即出现TE错误。用正常的IO地址就没问题
我这个案子需要定时(100us)检测IO状态。如果用中断方式会耗费很多cpu时间,如果访问IO空间倒是可以实现,但是缓存开销太大,并且需要CPU进行判断。
 楼主| 楚天 发表于 2014-1-7 11:04 | 显示全部楼层
ST怎么回事呢?
放年假放到4号,打电话打出来个赛意法,偌大个公司没有技术支持部门……
grant_jx 发表于 2014-1-7 11:33 | 显示全部楼层
你打错了,赛意法不是ST!好像是深圳赛格集团与ST合作做IC封装的工厂,在深圳福田保税区。
你问MCU,应该搜意法半导体。

你在楼主位问的问题,我刚才也试了下代码,用别名出错了。
 楼主| 楚天 发表于 2014-1-7 12:25 | 显示全部楼层
是的。我用别名也是出错。怀疑DMA的总线译码不支持别名区。但是ARM的文档里边提到说别名区就像正常地址一样。
不甘心啊。
搜到意法的办事处也是不提供支持。只是让我去找销售商的支持。但是艾瑞的支持又跳槽到意法了。郁闷哦。这点事都拖了两个月了。
ST的巡讲那个ppt还把别名区转换的地址弄错了,可见他们根本没对代码做过测试。
我记得在坛子里有个帖子问的别的问题引出的bitband问题,香版回复说是支持的。不然我也就放弃这个用法了。
如果别名区能够实现,我只要用128bytes就可以搞定,cpu处理起来还很容易,要是用普通地址,需要1024byte,处理起来还麻烦。如果用中断查询,开销就太大了。
 楼主| 楚天 发表于 2014-1-7 13:26 | 显示全部楼层
ARM那边只能查到m3用的是pl230的DMA控制器,没有提及该DMAC支持的地址范围。也没有提及TE错误的产生机制。
 楼主| 楚天 发表于 2014-1-7 13:42 | 显示全部楼层
有这么一段关于TE的描述
When HIGH, it indicates that an ERROR has occurred on the AHB bus. When an ERROR occurs, the controller disables the active DMA channel by writing to the appropriate bit in the chnl_enable_set Register.
结合ST的RM0008中“读写一个保留的地址区域,将会产生DMA传输错误。”以及stm32f10x的地址空间分布来看,从0x4002 3400开始,更高的地址是出于reserved状态的。
由此,可以给出结论,STM32F10x的DMA无法访问任何别名区地址。因为别名区地址处于DMA访问的范围之外!!
lxh413458727 发表于 2015-6-26 16:36 | 显示全部楼层
我也是DMA操作位带别名区,折腾几天了。
直接给位带别名区地址赋值是可行的,但DMA操作无效。
找了几天相关资料及应用,今天看到楼主的贴子,看来是不行的了。
598330983 发表于 2015-6-26 20:28 | 显示全部楼层
没用过这个方法,应该不行吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

58

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

3

主题

58

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部