Hello,
background: using Keil IDE, my own board that has a nRF52840 on it. My goal is to create automatic DMA transfers from SPIM3 peripheral.
I am setting up EasyDMA with an ArrayList on my nRF52840 and have the following questions:
1. Is this an acceptable way to declare the ArrayList? All of the examples I see have the buffer inside the structure using uint8_t as the data type
/* In my header file, I have the following code */ // ArrayList for EasyDMA typedef struct ArrayList { uint32_t buffer; } ArrayList_type; extern ArrayList_type gADAS1000_ArrayList[12]; //12 32-bit arrays /* In my C file, I have the following code */ ArrayList_type gADAS1000_ArrayList[12]; //12 32-bit arrays
2. In the documentation, the reader and writer buffer are given specific memory addresses as shown below
uint8_t readerBuffer[READERBUFFER_SIZE] __at__ 0x20000000; uint8_t writerBuffer[WRITERBUFFER_SIZE] __at__ 0x20000005;
I tried to use this "__at__" instruction but my compiler and or IDE has an issue with it, see below. Is this necessary? I am currently seeing some data corruption with SPI transfers without this statement..
Thank you very much in advance,
-E