Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как скомпилировать исходники для NIOS?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
slog
Нужна "помощь клуба".
Есть "система на кристалле" с NIOS-ом. И есть для неё исходники, которые надо скомпилировать.
Проблема в том что нет .ptf файла от SOPC-builder с описанием этой системы.
А вместо .ptf есть какой-то excalibur.h и excalibur.s - это автоматически сгенерированные чем-то файлы и в них дефайны для компилятора Си.
Вот кусок excalibur.h

#define na_flash_8MByte ((void *) 0x00000000) // amd_avalon_am29lv065d_flash
#define na_flash_8MByte_base 0x00000000
#define na_flash_8MByte_end ((void *) 0x00800000)
#define na_flash_8MByte_size 0x00800000
#define na_cpu ((void *) 0x00000000) // altera_nios
#define na_cpu_base 0x00000000
#define na_sram_2MByte ((void *) 0x00800000) // altera_nios_dev_kit_stratix_edition_sram
#define na_sram_2MByte_base 0x00800000

Вообщем как-то надо скомпилировать эти исходники, но не понятно как и чем. Как подсунуть их NiosII IDE я не знаю, он требует .ptf файл. Исходники эти возможно компилировались под линуксом.
Чё делать-то? Подскажите, в какую сторону копать.
Kuzmi4
На сколько я знаю без ptf файла IDE не будет делать каких либо телодвижений.
Не уверен, но по моему перед ниосом вроде у альтеры был Еxcalibur (могу ошибаться, потому как досконально не изучал этот вопрос) - он вроде как раз и делал файлы типа excalibur.h и excalibur.s
slog
Кто-нибудь пользовался такой вещью SDK4NIOS ?
Похоже оно только под Linux.
Чем мог быть сделан excalibur.h ?
По информации из excalibur.h можно "родить обратно" .PTF ? Пусть даже в ручную. Чтобы запустить NiosII IDE.


Как я понял excalibur.h создавал древний вариант Nios IDE. Сейчас вместо него system.h отличия описаны в an350.
Остальные вопросы пока не прояснились. Что можно сделать без .ptf ?
Builder
Цитата(slog @ Oct 25 2008, 18:12) *
Как я понял excalibur.h создавал древний вариант Nios IDE. Сейчас вместо него system.h отличия описаны в an350.
Остальные вопросы пока не прояснились. Что можно сделать без .ptf ?

А какая у Вас стои FPGA? Может там под Excalibur понимается то, что используются
FPGA в которых стоит аппаратный проц? Альтера потом не стала развивать эту ветку,
ограничилась развитием только софтовых ядер.
Если там аппаратное дро, то к Nios это всё имеет малое отношение.
slog
Как я понял Excalibur это древнее семейство со встроенным аппаратным ядром ARM9. И еще во времена Nios 1 файл с описанием железа для компилятолра именовался excalibur.h Во время перехода с Nios на NiosII вместо excalibur.h появился system.h У меня Cyclone II и Nios наверно тоже 2.
Я так полагаю что niosII ide по информации из .ptf создаёт system.h в котором есть все дефайны на железные модули в системе. И дальше компилятор уже компилирует исходники по информации о железе из system.h А наверно можно сразу запустить компилятор без IDE?
vadimuzzz
вот это не смотрели:
http://www.altera.com/literature/an/an350.pdf
"Upgrading Nios Processor Systems to the Nios II Processor"
slog
Цитата(vadimuzzz @ Oct 27 2008, 05:59) *
вот это не смотрели:
http://www.altera.com/literature/an/an350.pdf
"Upgrading Nios Processor Systems to the Nios II Processor"

Смотрел. Выше в этой теме этот AN350 уже упоминал. Но там описан upgrade начиная с sopc-builder-а, в результате .pof файл все таки присутствует. У меня исходники уже апгрейделись, этот excalibur.h вложен в nios.h, в котором больше ничего нет. К тому же известно что исходники компилируют, вроде бы с помощью sdk4nios, но это вроде только под линукс. А мне хочется скомпилировать в NiosII IDE да еще бы чтобы отладка в железе потом работала.
Пока ковыряю два направления
1. запустить компилятор без IDE и .ptf
2. по информации из excalibur.h восстановить .ptf, хотя бы фиктивный, чтобы IDE запустилась.
Harbour
Вручную ptf не создавал, но "обширно" редактировал - он текстовый, структура кажись где-то даже была описана. сделайте тестовую системку, и потом редактируйте ptf. если имеются ввиду c/asm исходники nios - то для компиляции ptf нафиг не нужен.
slog
Цитата(Harbour @ Oct 27 2008, 10:51) *
Вручную ptf не создавал, но "обширно" редактировал - он текстовый, структура кажись где-то даже была описана. сделайте тестовую системку, и потом редактируйте ptf. если имеются ввиду c/asm исходники nios - то для компиляции ptf нафиг не нужен.

Именно Си и asm исходники. Направьте на путь истинный, в какую сторону копать чтобы обойтись без ptf.
А то "Nios II Software Developer’s Handbook" имеет почти 500 страниц. Читаю, но пока не придумал план дальнейших действий.
misyachniy
Цитата(slog @ Oct 27 2008, 10:54) *
Именно Си и asm исходники. Направьте на путь истинный, в какую сторону копать чтобы обойтись без ptf.
А то "Nios II Software Developer’s Handbook" имеет почти 500 страниц. Читаю, но пока не придумал план дальнейших действий.


ptf файл описывает какие устройства и по каким базовым адресам расположены. Какие уровни прерываний выделены.

по excalibur.h систему можно собрать.

Но вас интересует именно скомпилировать исходники на "С" и ассемблере?
Систему тоже ведь нужно как-то компилировать.
slog
Цитата(misyachniy @ Oct 27 2008, 18:31) *
по excalibur.h систему можно собрать.
Но вас интересует именно скомпилировать исходники на "С" и ассемблере?
Систему тоже ведь нужно как-то компилировать.

Если "система" это то железо которое собрано в FPGA, то мне его и не надо компилировать. Оно уже есть и не надо его менять. Надо поправить только Си и асм исходники для него. Очень бы хотелось чтобы можно было не только компилировать, но и еще и иметь возможность отладки Си кода в железе.
Пока что я вижу один вариант - глядя на excalibur.h создать в sops-builder похожую систему. Полностью восстановить её не возможно, нет HDL исходников custom периферии, но можно вставить затычки по занимаемым ей адресам и прерываниям. Так что в железе она не заработает, но это и не требуется. В результате должен получиться какой-то .ptf с нужным распределением адресов. С ним можно будет и компилироваь существующие исходники и отлаживать их в существующем железе. Этого было бы достаточно.
Harbour
Для компиляции только исходников ptf не нужен, так как при генерации системы из ptf один раз создается excalibur.h с указателями на базовые адреса ключевых устройств. нужен makefile и набор CGT - nios-as/nios-gcc/nios-ld. Даже если boot область находится внутри чипа - можно тупо заменить MIF файл на этапе ассемблирования в квартусе.
misyachniy
Цитата(slog @ Oct 27 2008, 20:30) *
Если "система" это то железо которое собрано в FPGA, то мне его и не надо компилировать. Оно уже есть и не надо его менять.


Систему нужно загрузить в FPGA.

У вас система загружается отдельно из конфигурациолнной ПЗУ, а затем бут-лоадер загружает рабочую программу?

Тогда наверное можно попробовать, что то сделать.
slog
Цитата(Harbour @ Oct 28 2008, 10:30) *
Для компиляции только исходников ptf не нужен, так как при генерации системы из ptf один раз создается excalibur.h с указателями на базовые адреса ключевых устройств. нужен makefile и набор CGT - nios-as/nios-gcc/nios-ld. Даже если boot область находится внутри чипа - можно тупо заменить MIF файл на этапе ассемблирования в квартусе.

makefile пока не нашел. Точнее есть один, вроде не тянет на то чтобы всё скомпилировать.
Вот он весь:
germs_up: germs_up.c
gcc germs_up.c -o germs_up
all: germs_up

makefile похоже тоже придётся делать.

Цитата(misyachniy @ Oct 28 2008, 11:35) *
Систему нужно загрузить в FPGA.
У вас система загружается отдельно из конфигурациолнной ПЗУ, а затем бут-лоадер загружает рабочую программу?
Тогда наверное можно попробовать, что то сделать.

Да, система грузится из EPCS, дальше бутлоадер из внешней флэш AM29LV065 копирует в RAM основную программу и там уже она работает. Железо менять не надо. Надо только изменить основную программу на Си, исходники которой есть. Хранится она во внешней флэш и её даже можно апгрейдить через germs монитор. Но кроме Си исходников ничего нет. И не будет. К тому же там Nios (не NiosII). И еще хочется чтобы отладка из IDE работала. Наверно ptf придётся делать. Нашел описание его структуры в статьях И. Каршенбойм в КиТ за 2002 г.
Harbour
Мой Makefile для nios on-chip загрузчика можете посмотреть тут [http://electronix.ru/forum/index.php?act=Attach&type=post&id=19792] , главная c++ прога собиралась им же - так что должно подойти
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.