[an error occurred while processing this directive]
|
(Nios II 5.1_)
Необходимо разбить программный код на части для размещения в разные устройства памяти (базовый кусок во внутреннюю память, остальное во внешнюю)
Предложенный в Nios II Software Developer’s Handbook (стр. 4-33) метод:
int foo __attribute__ ((section (".on_chip_memory.rwdata"))) = 0;
void bar __attribute__ ((section (".sdram.txt"))) (void)
{
foo++;
}
срабатывает только для размещения переменной, а в случае функции выводится сообщения об ошибке: " parse error before '(' token" и "storage size of 'ledowr' isn't known".
Мой вариант:
void ledowr __attribute__ ((section (".nv_ram.txt"))) (void)
{
led = (led ^ 0x1);
IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led);
}
В системе три блока памяти:
MEMORY
{
reset : ORIGIN = 0x00010000, LENGTH = 32
onchip_rom : ORIGIN = 0x00010020, LENGTH = 12256
onchip_ram : ORIGIN = 0x00014000, LENGTH = 4096
nv_ram : ORIGIN = 0x00000000, LENGTH = 65536
}
В свойствах System Library (.text) секция установлена в onchip_rom, остальные в onchip_ram.
Подскажите решение, если кто знает.
E-mail: info@telesys.ru