Microchip
直播中

张丽华

7年用户 168经验值
私信 关注
[问答]

是否有可能避免使用这两个内置宏dmapage和dmaoffset?

是否有可能避免使用这两个内置宏“dmapage”/“dmaoffset”,并通过使用内联组装或模拟来实现相同的目的?从SIP1DRV.C

回帖(9)

李维嘉

2019-9-5 08:46:39
您可以找到这些函数驻留的库,使用库工具将函数提取到.obj反汇编,然后在asm中重新编写。它们必须非常小。
举报

康辅佑

2019-9-5 08:59:03
该函数不是库函数。实际上,它们是汇编操作符。
举报

薄坤坤

2019-9-5 09:04:51
MCU需要具有专用DMA子集的存储器。在这些设备上,DMA模块假设地址为零,基于DMA存储器的偏移量开始。这些宏为您省去了计算DMA存储器的起始地址对于特定设备的麻烦(如果希望更改为具有完全不同的存储器布局的不同设备,则非常有用)和计算实际偏移量。对于整个RAM,它们什么也不做——使用它们没有坏处,但是它是不必要的。因此,您需要读取数据表并查看DMA内存是如何实现的。
举报

王莹

2019-9-5 09:16:16
我首先尝试了模拟方法Bosco,这意味着提取libpic30.zip并搜索那些文件,没有命中,接下来我在这个源文档中进行了搜索,我在这里找到了acmebfdelf32-pic30.c,但是它似乎使用了来自链接器的信息,比如dma base和vma逐页计算dmaoffset或dma page,t因此,我认为很难避免使用这些内置程序,因为涉及到链接器的当前状态,因此dma基础(在链接器文件中定义)可以在代码中使用,由外部void.*_DMA_BASE使用,并使用&_DMA_BASE作为起点或接下来使用useDMA_ENDand.…如果在代码透视图中是可能的,那么我注意到这个位于数据表Susan./.esiny空间中的数据存储器映射处的“特殊的”DMA双端口RAM块
举报

更多回帖

发帖
×
20
完善资料,
赚取积分