Я пытаюсь переместить каждое объявление следующего макроса в другой сегмент памяти.Работает нормально без атрибута section.Любые идеи о том, почему я не могу использовать это здесь, и как я мог бы заставить это работать?
#define RINGBUFFER_DECLARE_MEMB(var, sz) \ uint8_t var ## __buf[sz] __attribute__((section(".rambss"))); \ struct ring_buffer var __attribute__((section(".rambss")))
device.h: 91: 29: ошибка: атрибут раздела не разрешен для '__iso_buf__buf' RINGBUFFER_DECLARE_MEMB (__ iso_buf, BUF_SIZE_ISOLATED);
Глупо, проблема была в том, что макрос использовался в определении структуры:
struct a { RINGBUFFER_DECLARE_MEMB(umama, 3); };
Что, конечно, не разрешено