[an error occurred while processing this directive]
|
Есть Altera, ACEX EP1k30, ее конфигурирование производит контроллер ATmega103L. Прошивка занимает примерно 59кб и расположена в програмной памяти.
Проблема заключается в следующем, если прошивка лежит на границе страниц, то альтера не грузиться :(
Вот основные моменты загрузчика
;готовим указатель на "файл" данных
ldi ZH,High(2*ALTERA_data)
ldi ZL,Low(2*ALTERA_data)
ldi tmp,byte3(2*ALTERA_data)
out RAMPZ,tmp
_a_next_byte:
wdr
elpm
.... пропущено как несущественное
;увеличиваем адрес указателя на массив данных
adiw ZL,1
brcc _a_next_byte ;проверяем не перешагнули ли границу в 64к
ldi tmp,1 ;перешагнули
out RAMPZ,tmp ;выставляем вторую страницу
rjmp _a_next_byte ;продолжаем загрузку
.... пропущено как несущественное
;загрузка закончена
Что здесь неправильно?
В симуляторе байты на границе страниц читаются правильно.
E-mail: info@telesys.ru