Здравствуйте. Пытаюсь реализовать запуск Nios из внешней SSRAM.
Есть загрузчик, который инициализирует On-Chip Memory. Вектор сброса указан на эту память, вектор исключений на внешнюю срам.
#define LOAD_ADR 0x0007315D
#define START_ADR 0x002001BC
#define FLASH_SECTOR_SIZE 65536
#define FLASH_SECTOR_READ 6
#define FLASH_ADR FLASH_BASE + FLASH_REGISTER_OFFSET
void (*AppStartP)();
void *SSRAM_p;
int main()
{
SSRAM_p = (void *)SSRAM_BASE;
while (1)
{
AppStartP = (void *)START_ADR;
SSRAM_p = (void *)SSRAM_BASE;
epcs_read_buffer(FLASH_ADR, LOAD_ADR, (alt_u8 *)(SSRAM_p + 0x20), FLASH_SECTOR_SIZE*FLASH_SECTOR_READ - 0x20, 0);
alt_dcache_flush_all ();
alt_icache_flush_all ();
alt_irq_disable_all ();
AppStartP();
}
return 0;
}
LOAD_ADR - адрес начала программы ниоса
START_ADR - адрес старта из objdump
sof и elf объединяю друг за другом и преобразую в бинарник, который зашиваю во флешку
После сброса питания загружается только аппаратная часть, ниос не хочет стартовать. Где мог накосячить или чего не дописать?
Проект запускается, если зашивать его на прямую в срам