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

Nios II, вопросы от начинающего

Привет всем!

Пытаюсь последовательно сделать все, как описано в tt_nios2_hardware_tutorial.pdf (это на www.altera.com/literature/tt/tt_nios2_hardware_tutorial.pdf)

Пока старт-кита нет, по этому хочу выполнить программную симуляцию в Nios II 7.1 IDE. Выполнил все рекомендации, дошел до этапа симуляции. На стр.33 есть такая строка: 1. Right-click the count_binary_0 project, point to Run As, and then click Nios II Instruction Set Simulator.

Выполняю это действие, и выдается сообщение:

Warning : SOPC Builder system component led_pio is not supported by the simulator. Simulation may be incorrect if your software attempts to access it

Error! : Failed memory access in component cpu - Unable to write data 0x8804 to invalid memory address 0x4

Error! : Simulation failed in component cpu at instruction 3698 (PC=0x87ec instr=0x20800115).

Вопрос: в чем проблема, все сделал как описано (в SoPC опция "Simulation. Create project simulator files" установлена).

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


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

Нужно дизассемблировать (nios2-objdump -DS a.out) код и посмотреть что же там происходит по 0x87ec. Проще заваять тестовый проект с памятью внутри циклона - потренироваться, так сказать, "на кошках".

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


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

Нужно дизассемблировать (nios2-objdump -DS a.out) код и посмотреть что же там происходит по 0x87ec.
В каталоге проекта такого файла нет, нет и других файлов с расширением *.out. Почему именно этот файл, и чем его дизассемблировать?

 

Проще заваять тестовый проект с памятью внутри циклона - потренироваться, так сказать, "на кошках".
Пока здесь еще не все понятно (особенности Nios II C/C++), где найти пример?. Аналогичное предложение было в lab1.pdf (он прилагается), однако там программа на ассемблере (где взять транслятор пока не ясно), а писать на С/С++ в Nios II 7.1 IDE пока еще тяжело.

lab1.pdf

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


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

В каталоге проекта такого файла нет, нет и других файлов с расширением *.out. Почему именно этот файл, и чем его дизассемблировать?

Чем - nios-objdump

 

Как вариант: дизассемблировать elf

Что: count_binary_0 project/{Debug|Release}/count_binary_0 project.elf

Чем: altera/61/nios2eds/bin/nios2-gnutools/H-i686-pc-cygwin/bin/nios2-elf-objdump

Ключи те же.

 

Сам пример не смотрел.

 

ISS ругается на компонент, потому что не может его промоделировать. Это, все-таки, внешний по отношению к процессору модуль, и результат обращения в него не может быть предсказан.

 

Попробуйте промоделировать верилог.

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


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

Чем - nios-objdump
Спасибо за ответ! При запуске nios2-elf-objdump.exe выдается сообщение "Приложение не удалось запустить, поскольку cygwin1.dll не был найден...". Как "дешево & сердито" решить эту и подобные проблемы?

 

Это, все-таки, внешний по отношению к процессору модуль, и результат обращения в него не может быть предсказан.
Есть ли другие примеры, по которым можно было бы симулировать Nios II ? Мне действительно с ним приходится работать впервые.

 

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

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


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

Спасибо за ответ! При запуске nios2-elf-objdump.exe выдается сообщение "Приложение не удалось запустить, поскольку cygwin1.dll не был найден...". Как "дешево & сердито" решить эту и подобные проблемы?

Найти где находится cygwin1.dll и добавить путь к ней в PATH.

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


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

Спасибо за ответ! При запуске nios2-elf-objdump.exe выдается сообщение "Приложение не удалось запустить, поскольку cygwin1.dll не был найден...". Как "дешево & сердито" решить эту и подобные проблемы?
Ну правильно вам сказали, ищите длл. В состав квартуса входит некий урезанный cygwin (почему-то у вас пути к нему не прописаны).

Сам cygwin запускается батником altera\61\quartus\bin\cygwin\cygwin.bat

Не ясно как. В частности, как быть с рабочей программой. Уточните, если можно.

Там же на кнопке Run as Modelsim.

При компиляции проекта создается папка ***_sim, в которую кладется содержимое памятей - файлы *.dat, при моделировании памят инициализируется из этих файлов.

Вообще там практически все автоматизировано, если интересно - поковыряйте скрипты для моделсима setup_sim.do

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


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

Найти где находится cygwin1.dll и добавить путь к ней в PATH.
Спасибо! Нашел cygwin1.dll. А где находится сам PATH? Пожалуйста, подробней, т.к. нигде и ничего по этому поводу не освещается.

Еще, как распорядиться с QuartusPatch (т.е. как он относится к PATH), он в приложении. Но нужен, как понял, на 7.1, а этот только для 6.0

QuartusPatch.zip

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


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

из словаря:

patch - это заплатка;

path - путь.

 

В данном случае $PATH - это переменная среды операционной системы. Никак не связано с патчем.

 

Кратко: программе нужен файл (cygwin1.dll). Вопрос: где его искать?

Ответы:

а) во всех папках в компьютере - очень долго;

b) за шкафом - очень пыльно;

с) только в некоторых местах; места указаны в переменной $PATH.

 

Править в виндах: свойства системы/дополнительно/переменные среды.

Если не охота возиться, скопируйте саму длл в рабочую папку (библиотека, вроде, небольшая).

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


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

Спасибо за ответ! При запуске nios2-elf-objdump.exe выдается сообщение "Приложение не удалось запустить, поскольку cygwin1.dll не был найден...". Как "дешево & сердито" решить эту и подобные проблемы?

не надо его нигде искать. просто запустите Nios II Command Shell.bat в директории nios2eds и получите настроенное окружение для работы с nios.

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


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

к id_gene

Спасибо большое!

Скопировал cygwin1.dll в директорий с nios2-elf-objdump.exe. Запустил в ком.строке nios2-elf-objdump.exe -D count_binary_0.elf, то есть с ключом -D что бы дизассемблировать все. Программа быстро пролистала в экране, а хотелось бы скопировать полученное в файл для детального изучения диз-асм. Как это выполнить? И еще есть ли в этой системе более продвинутые средства (пути) для изучения асм-кодов после их компиляции с С/С++?

Но мне все же, как начинающему, не хотелось бы пока вникать в такие глубины. Пока нужно просто симулировать простейшие программы с целью освоения Nios (старт-кита пока нет и пока еще ничего не просимулировано).

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


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

Опять же, это все вопросы ОС и ее оболочки.

Перенаправляйте вывод в файл с помощью, например, оператора ">", т.е.

...objdump -D -S foo.elf > my_output.txt

 

p.s. +1 к ответу Vetal :a14: , сам не догадался

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


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

Гм ... помнится когда брали nios кит, еще на C-1, то в комплекте шла кипа интегрированных сред для отладки оного, со всякими окнами дизассемблера и прочее. eval варианты но для Вас - это лучше чем ничего.

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


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

К Harbour

1. Посмотрел после дизассемблирования спорный адрес, вот он:

87ec: 20800115 stw r2,4(r4)

В общем ничего не ясно.

Может кто-то выполнит не получившийся тест из этого учебника - tt_nios2_hardware_tutorial.pdf.

 

2. Испробовал пару готовых примеров на Nios II в режиме симуляции (взяты из c:\altera\71\nios2eds\examples\verilog\). Они полностью прошли, и это радует.

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


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

Что ж тут непонятного : имеем r2 = 0x8804, r4 = 0 (реально пишется в 0x4), похоже на классическую попытку разименования нулевого указателя, в случае если код был на c/c++, к сожалению Вы не обратили внимания на указанную мной опцию -S к objdump - глядя в интерлист все было б намного понятней ;) Что в memory map значит область с 0 адреса ? RAM/ROM/undef ?

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


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

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

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

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

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

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

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

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

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

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