LPC2478 SDRAM+IAR5.20 - Проблема. Имею борду с упомянутым камнем + 16Мх16 Самсунг SDRAM. Инициализирую как в многочисленных примерах от ИАРа и кейла. Тест из примера (где используется взятая из линкера константа SDRAM_BASE_ADDR в качестве указателя) отрабатывает нормально по всей памяти. Жопа наступает когда обращаюсь к массиву помещенному в SDRAM или когда размещаю HEAP в SDRAM и пытаюсь работать с динамической памятью. Такое чувство это именно компилятор некорректно работает с переменными размещенными в SDRAM или с указателями (с адресом массива в SDRAM). В линкере прописываю:
define symbol __VRAM_size__ = 0x9600;
define symbol __SAVE_VRAM_size__ = 4 * __VRAM_size__;
define symbol __region_SDRAM_start__ = 0xA0000000;
define symbol __region_SDRAM_end__ = 0xA1FFFFFF;
define symbol __region_SDRAM_VRAM_start__ = __region_SDRAM_start__;
define symbol __region_SDRAM_VRAM_end__ = __region_SDRAM_VRAM_start__+__VRAM_size__ - 1;
define symbol __region_SDRAM_SAVE_VRAM_start__ = __region_SDRAM_VRAM_end__ + 1;
define symbol __region_SDRAM_SAVE_VRAM_end__ = __region_SDRAM_SAVE_VRAM_start__+__SAVE_VRAM_size__-1;
define symbol __region_SDRAM_APPL_start__ = __region_SDRAM_SAVE_VRAM_end__+1;
define symbol __region_SDRAM_APPL_end__ = __region_SDRAM_end__;
define region vramRgn = mem:[from __region_SDRAM_VRAM_start__ to __region_SDRAM_VRAM_end__];
place at start of vramRgn {section VRAM_RGN_SECTION};
define region vramSaveRgn = mem:[from __region_SDRAM_SAVE_VRAM_start__+__VRAM_size__ to __region_SDRAM_SAVE_VRAM_end__];
place at start of vramSaveRgn {section VRAM_SAVE_RGN_SECTION};
define region externalMemory_region= mem:[from __region_SDRAM_APPL_start__ to __region_SDRAM_APPL_end__];
place at start of externalMemory_region {section EXT_MEMORY_SECTION};
define exported symbol SDRAM_BASE_ADDR = __region_SDRAM_start__;
define exported symbol SDRAM_CAPACITY = __region_SDRAM_end__ - __region_SDRAM_start__ + 1;
define exported symbol SDRAM_VRAM_ADDR = __region_SDRAM_VRAM_start__;
define exported symbol SDRAM_SAVE_VRAM_ADDR = __region_SDRAM_SAVE_VRAM_start__;
place in externalMemory_region { block HEAP };
-
- При обращении к переменным лежащим в SDRAM или по указателю с адресом массива в SDRAM все виснет - отладки нет. - ipruzhinin(25.10.2009 15:15, )
- Дык в отладке что видно? Вместо нужного указателя что адресуется? - Vladimir Ljaschko(23.10.2009 19:17)