'Arm Cortex G++ I am writing a edma serial driver for a cortex M7+ I am trying to use c++, want to know if it is possible

I am writing a cortex M7+ edma serial driver. I want to do it in c++ I have it working in c from the examples from the manufacturer. One of the problems I am having a few problems. I know how to call a static C++ function from the interrupt that is not the problem. The problem is that their driver requires that the ciruclar buffer for the edma transfer be located in non cacheable memory.

/* allocate ring buffer section. */
AT_NONCACHEABLE_SECTION_INIT(uint8_t _ringBuffer[RX_RING_BUFFER_SIZE]) = {0};
/* Allocate TCD memory poll with ring buffer used. */
AT_NONCACHEABLE_SECTION_ALIGN(static edma_tcd_t _tcdMemoryPoolPtr[1], 
sizeof(edma_tcd_t));

Is there a way to do this with class variables, or when I instantiate my class do I need to place the whole class in this area? Or should I just leave the darn thing in C??

Thanks



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source