我必须为以下内容编写 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/