Перейти к содержанию
    

Как скомпилировать исходники для NIOS?

Нужна "помощь клуба".

Есть "система на кристалле" с 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 файл. Исходники эти возможно компилировались под линуксом.

Чё делать-то? Подскажите, в какую сторону копать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На сколько я знаю без ptf файла IDE не будет делать каких либо телодвижений.

Не уверен, но по моему перед ниосом вроде у альтеры был Еxcalibur (могу ошибаться, потому как досконально не изучал этот вопрос) - он вроде как раз и делал файлы типа excalibur.h и excalibur.s

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кто-нибудь пользовался такой вещью SDK4NIOS ?

Похоже оно только под Linux.

Чем мог быть сделан excalibur.h ?

По информации из excalibur.h можно "родить обратно" .PTF ? Пусть даже в ручную. Чтобы запустить NiosII IDE.

 

 

Как я понял excalibur.h создавал древний вариант Nios IDE. Сейчас вместо него system.h отличия описаны в an350.

Остальные вопросы пока не прояснились. Что можно сделать без .ptf ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как я понял excalibur.h создавал древний вариант Nios IDE. Сейчас вместо него system.h отличия описаны в an350.

Остальные вопросы пока не прояснились. Что можно сделать без .ptf ?

А какая у Вас стои FPGA? Может там под Excalibur понимается то, что используются

FPGA в которых стоит аппаратный проц? Альтера потом не стала развивать эту ветку,

ограничилась развитием только софтовых ядер.

Если там аппаратное дро, то к Nios это всё имеет малое отношение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как я понял Excalibur это древнее семейство со встроенным аппаратным ядром ARM9. И еще во времена Nios 1 файл с описанием железа для компилятолра именовался excalibur.h Во время перехода с Nios на NiosII вместо excalibur.h появился system.h У меня Cyclone II и Nios наверно тоже 2.

Я так полагаю что niosII ide по информации из .ptf создаёт system.h в котором есть все дефайны на железные модули в системе. И дальше компилятор уже компилирует исходники по информации о железе из system.h А наверно можно сразу запустить компилятор без IDE?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот это не смотрели:

http://www.altera.com/literature/an/an350.pdf

"Upgrading Nios Processor Systems to the Nios II Processor"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот это не смотрели:

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 запустилась.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вручную ptf не создавал, но "обширно" редактировал - он текстовый, структура кажись где-то даже была описана. сделайте тестовую системку, и потом редактируйте ptf. если имеются ввиду c/asm исходники nios - то для компиляции ptf нафиг не нужен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вручную ptf не создавал, но "обширно" редактировал - он текстовый, структура кажись где-то даже была описана. сделайте тестовую системку, и потом редактируйте ptf. если имеются ввиду c/asm исходники nios - то для компиляции ptf нафиг не нужен.

Именно Си и asm исходники. Направьте на путь истинный, в какую сторону копать чтобы обойтись без ptf.

А то "Nios II Software Developer’s Handbook" имеет почти 500 страниц. Читаю, но пока не придумал план дальнейших действий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Именно Си и asm исходники. Направьте на путь истинный, в какую сторону копать чтобы обойтись без ptf.

А то "Nios II Software Developer’s Handbook" имеет почти 500 страниц. Читаю, но пока не придумал план дальнейших действий.

 

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

 

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

 

Но вас интересует именно скомпилировать исходники на "С" и ассемблере?

Систему тоже ведь нужно как-то компилировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Но вас интересует именно скомпилировать исходники на "С" и ассемблере?

Систему тоже ведь нужно как-то компилировать.

Если "система" это то железо которое собрано в FPGA, то мне его и не надо компилировать. Оно уже есть и не надо его менять. Надо поправить только Си и асм исходники для него. Очень бы хотелось чтобы можно было не только компилировать, но и еще и иметь возможность отладки Си кода в железе.

Пока что я вижу один вариант - глядя на excalibur.h создать в sops-builder похожую систему. Полностью восстановить её не возможно, нет HDL исходников custom периферии, но можно вставить затычки по занимаемым ей адресам и прерываниям. Так что в железе она не заработает, но это и не требуется. В результате должен получиться какой-то .ptf с нужным распределением адресов. С ним можно будет и компилироваь существующие исходники и отлаживать их в существующем железе. Этого было бы достаточно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для компиляции только исходников ptf не нужен, так как при генерации системы из ptf один раз создается excalibur.h с указателями на базовые адреса ключевых устройств. нужен makefile и набор CGT - nios-as/nios-gcc/nios-ld. Даже если boot область находится внутри чипа - можно тупо заменить MIF файл на этапе ассемблирования в квартусе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если "система" это то железо которое собрано в FPGA, то мне его и не надо компилировать. Оно уже есть и не надо его менять.

 

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

 

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

 

Тогда наверное можно попробовать, что то сделать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для компиляции только исходников 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 похоже тоже придётся делать.

 

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

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

Тогда наверное можно попробовать, что то сделать.

Да, система грузится из EPCS, дальше бутлоадер из внешней флэш AM29LV065 копирует в RAM основную программу и там уже она работает. Железо менять не надо. Надо только изменить основную программу на Си, исходники которой есть. Хранится она во внешней флэш и её даже можно апгрейдить через germs монитор. Но кроме Си исходников ничего нет. И не будет. К тому же там Nios (не NiosII). И еще хочется чтобы отладка из IDE работала. Наверно ptf придётся делать. Нашел описание его структуры в статьях И. Каршенбойм в КиТ за 2002 г.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мой Makefile для nios on-chip загрузчика можете посмотреть тут [http://electronix.ru/forum/index.php?act=Attach&type=post&id=19792] , главная c++ прога собиралась им же - так что должно подойти

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...