Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: NIOS + ELF
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
DASM
Насколько я понимаю, в EPCS flash loader прошивает вначале SOF системы, и СРАЗУ после него ELF (c boot-ом или без как понимаю). Одна беда - у меня несколько Альтер в цепочке, поэтому мне надо, чтобы все 3 SOF лежали друг за другом, а boot+ELF - после них. Такое возможно ?
vadimuzzz
по идее, да. там есть ключ --after, с ним пробуйте. я так понимаю, sof с ниосом и прога, должны лежать в конце
DASM
у меня уже так запаяно, что NIOS первый в цепи =( А как несколько SOF слить в один ? Я понимаю как их например в один JIC слить, но flash programmer хочет SOF ... или шить 3 раза нестирая ?
vadimuzzz
Цитата(DASM @ Oct 15 2010, 15:39) *
или шить 3 раза нестирая ?

ну да. первый зашили, а остальные sof`ы, да и elf с ключом after.

upd: хотя вру, after есть только у elf2flash. тогда другой вариант: сделать 3 раза sof2flash и слить их в один
DASM
маленький вопрос - а как скриптик простенький написать ? Достало длиннющие команды печатать в консоли
PS вопрос снят
DASM
Гм, а как эти flash файлы (srec) в один сшить ? sof2flash всегда их привязывает как стартующие с нулевого адреса, для EPCS всякие offset-ы указывать нельзя...
vadimuzzz
Цитата(DASM @ Oct 15 2010, 17:59) *
Гм, а как эти flash файлы (srec) в один сшить ?

я вот этой тулзой пользуюсь:
http://srecord.sourceforge.net/download.html
DASM
А вот такой дурацкий вопрос.. Вот ставим мы вектор сброса NIOS процессору на базовый адрем EPCS и смещение 0. Как он собственно находит, где кончается конфигурационный файл и начинается boot+апликуха ? А если я сотворю то, что сотворю, то есть помещу boot не сразу после конфигурационного файла, а после всех 3 - то тем более - как он его найдет ?
vadimuzzz
вы задаете отличные вопросы smile.gif
Цитата
Вот ставим мы вектор сброса NIOS процессору на базовый адрем EPCS и смещение 0. Как он собственно находит, где кончается конфигурационный файл и начинается boot+апликуха ?

можно посмотреть код загрузчика, правда, там асм.
Цитата
А если я сотворю то, что сотворю, то есть помещу boot не сразу после конфигурационного файла, а после всех 3 - то тем более - как он его найдет ?

скорее всего загрузчику достаточно знать адрес. а какие у вас ПЛИС?
DASM
EP3C16+EP3C16+EP1AGX (Arria GX). Код загрузчика это конечно хорошо, но там мало что понятно. А может при сборке ядра когда я ставлю EPCS контроллер оно (ядро) уже знает, что смещение будет как раз базовый адрес EPCS + длина прошивки ? Тады вообще ой sad.gif.
UPD - поглядел boot ... В EPCS контроллере лежит таки длина прошивки :-( и по ней он и определяет, что boot должен быть сразу после прошивы... sad.gif

А нельзя ли какой-нить код сразу в onchip memory инициализированную залить, чтобы оно прямо в SOF было, и не возиться с этим бутлоадером ?
vadimuzzz
Цитата(DASM @ Oct 15 2010, 19:29) *
EP3C16+EP3C16+EP1AGX (Arria GX). Код загрузчика это конечно хорошо, но там мало что понятно. А может при сборке ядра когда я ставлю EPCS контроллер оно (ядро) уже знает, что смещение будет как раз базовый адрес EPCS + длина прошивки ? Тады вообще ой sad.gif.
UPD - поглядел boot ... В EPCS контроллере лежит таки длина прошивки :-( и по ней он и определяет, что boot должен быть сразу после прошивы... sad.gif

ну и нормально, пусть первым идет ниос, потом его прога, потом еще 2 sof`а. хотя есть одна тонкость: не взведется ли nCEO сразу после первого sof? тогда будет плохо. но можно свой загрузчик написать, чтоб с фиксированного адреса прогу располагал, где она никому не мешает.

Цитата(DASM @ Oct 15 2010, 20:09) *
А нельзя ли какой-нить код сразу в onchip memory инициализированную залить, чтобы оно прямо в SOF было, и не возиться с этим бутлоадером ?

можно, конечно. ресет на он-чип, слинковать туда же.
DASM
Ессно взведется после первого SOF и второй чип начнет всякой мурой грузиться (то бишь моим бутом и апликухой), что ему не понравится и он начнет процедуру сброса всей цепи и все заново-вечно (что я и наблюдаю). С фиксированного не могу - мы компрессим файлы, а то не лезет все в EPCS

А как линковать на on-chip memory - в упор что-то файла линкера не нашел
vadimuzzz
Цитата
компрессим файлы, а то не лезет все в EPCS

поставить EPCS побольше?
Цитата
А как линковать на on-chip memory - в упор что-то файла линкера не нашел

в настройках BSP (эклипс) или System Library (ниос-иде), смотря чем пользуетесь
DASM
Цитата(vadimuzzz @ Oct 15 2010, 17:39) *
поставить EPCS побольше?

в настройках BSP (эклипс) или System Library (ниос-иде), смотря чем пользуетесь

System Library тока позволяет указать типы памяти в которые сегменты писать.... кажется так (ну если памятей много всяких)
Правда она позволяет использовать custom linker script. Примерчик не дадите такого ? Понимаю, что все в инете можно найти, но некогда =(
vadimuzzz
Цитата(DASM @ Oct 15 2010, 20:46) *
System Library тока позволяет указать типы памяти в которые сегменты писать....

вот, это оно и есть. закиньте все в он-чип. а, чуть не забыл. при таком раскладе после каждой сборки программы придется запускать компиляцию в квартусе (хотя м.б. достаточно ассемблер)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.