Я пытаюсь выполнить простую отправку ECAN с использованием dsPIC33FJ128GP802 и встроенного DMA. Проблема, с которой я сталкиваюсь, заключается в том, что все примеры кода в документации используют встроенную функцию __builtin_dmaoffset()
для установки регистра буфера начала DMA DMA1STA
, но мой компилятор постоянно говорит мне:
unable to resolve built-in identifier __builtin_dmaoffse
Код, который я использую:
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#include <ADCConfig.h>
#include <ECANConfig.h>
int main(void) {
oscConfig();
initADC1();
initDMA0();
initECAN1();
initDMA1();
initDMA2();
...
unsigned int ecan1MsgBuf[32][8] __attribute__((space(dma)));
DMA1STA=__builtin_dmaoffset(ecan1MsgBuf);
...
}
Как мне заставить работать встроенную функцию?