c - 我想了解 '__attribute__((space(dma)));'的语法

标签 c xcode microchip

我必须为以下内容编写 stub :

extern ECAN1MSGBUF  ecan1msgBuf __attribute__((space(dma)));

有人可以向我解释一下这个调用的原因、它是如何工作的以及如何为测试程序编写/使用 stub 吗?我家里没有硬件,必须编写测试,但 XCode 发出警告:忽略未知属性空间。除此之外,我还使用 MPLabX 编译器/调试器来访问硬件。当然,这不是问题。

最佳答案

dspics 上的 DMA 空间是双端口 RAM,可以在不与 ALU(实际 CPU)竞争内存带宽的情况下进行访问。

但是,在某些 dspicE (*) 中,DMA 空间超出了 32kb 标记,需要 EDS 寻址。如果是这样,您可能想查看我在 http://www.microchip.com/forums/m790729.aspx#792226 发布的有关 dspice CAN 的示例代码

请注意,您也可以使用非 dma 空间内存,dma 空间内存更为优化。

(*)56k内存的,一般是GP、MU系列的512KB flash部分。

关于c - 我想了解 '__attribute__((space(dma)));'的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44557408/

相关文章:

ios - 如何在不使用多个 webview 的情况下更改 webview 的 url

c - Microchip 射频调制器问题

microcontroller - 什么是振荡器频率?它与系统时钟频率有何不同?

c - 在c中随机选择5行

c - 取消引用强制转换

c++ - 仅当达到虚拟限制时内存不足?

ios - Xcode Jenkins 构建失败以下构建命令失败 : CompileSwift normal arm64

c - 在 C 中将 malloc 与结构一起使用

ios - swift 中推送到新 View Controller 的方法

c - Microchip PIC led flash OR 操作罕见行为