Voloshchenko 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба Привет всем! Пытаюсь последовательно сделать все, как описано в 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" установлена). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbour 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба Нужно дизассемблировать (nios2-objdump -DS a.out) код и посмотреть что же там происходит по 0x87ec. Проще заваять тестовый проект с памятью внутри циклона - потренироваться, так сказать, "на кошках". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Voloshchenko 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба Нужно дизассемблировать (nios2-objdump -DS a.out) код и посмотреть что же там происходит по 0x87ec. В каталоге проекта такого файла нет, нет и других файлов с расширением *.out. Почему именно этот файл, и чем его дизассемблировать? Проще заваять тестовый проект с памятью внутри циклона - потренироваться, так сказать, "на кошках". Пока здесь еще не все понятно (особенности Nios II C/C++), где найти пример?. Аналогичное предложение было в lab1.pdf (он прилагается), однако там программа на ассемблере (где взять транслятор пока не ясно), а писать на С/С++ в Nios II 7.1 IDE пока еще тяжело.lab1.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
id_gene 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба В каталоге проекта такого файла нет, нет и других файлов с расширением *.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 ругается на компонент, потому что не может его промоделировать. Это, все-таки, внешний по отношению к процессору модуль, и результат обращения в него не может быть предсказан. Попробуйте промоделировать верилог. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Voloshchenko 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба Чем - nios-objdump Спасибо за ответ! При запуске nios2-elf-objdump.exe выдается сообщение "Приложение не удалось запустить, поскольку cygwin1.dll не был найден...". Как "дешево & сердито" решить эту и подобные проблемы? Это, все-таки, внешний по отношению к процессору модуль, и результат обращения в него не может быть предсказан. Есть ли другие примеры, по которым можно было бы симулировать Nios II ? Мне действительно с ним приходится работать впервые. Попробуйте промоделировать верилог. Не ясно как. В частности, как быть с рабочей программой. Уточните, если можно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amw 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба Спасибо за ответ! При запуске nios2-elf-objdump.exe выдается сообщение "Приложение не удалось запустить, поскольку cygwin1.dll не был найден...". Как "дешево & сердито" решить эту и подобные проблемы? Найти где находится cygwin1.dll и добавить путь к ней в PATH. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
id_gene 0 19 сентября, 2007 Опубликовано 19 сентября, 2007 · Жалоба Спасибо за ответ! При запуске nios2-elf-objdump.exe выдается сообщение "Приложение не удалось запустить, поскольку cygwin1.dll не был найден...". Как "дешево & сердито" решить эту и подобные проблемы?Ну правильно вам сказали, ищите длл. В состав квартуса входит некий урезанный cygwin (почему-то у вас пути к нему не прописаны). Сам cygwin запускается батником altera\61\quartus\bin\cygwin\cygwin.bat Не ясно как. В частности, как быть с рабочей программой. Уточните, если можно. Там же на кнопке Run as Modelsim. При компиляции проекта создается папка ***_sim, в которую кладется содержимое памятей - файлы *.dat, при моделировании памят инициализируется из этих файлов. Вообще там практически все автоматизировано, если интересно - поковыряйте скрипты для моделсима setup_sim.do Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Voloshchenko 0 20 сентября, 2007 Опубликовано 20 сентября, 2007 · Жалоба Найти где находится cygwin1.dll и добавить путь к ней в PATH.Спасибо! Нашел cygwin1.dll. А где находится сам PATH? Пожалуйста, подробней, т.к. нигде и ничего по этому поводу не освещается. Еще, как распорядиться с QuartusPatch (т.е. как он относится к PATH), он в приложении. Но нужен, как понял, на 7.1, а этот только для 6.0 QuartusPatch.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
id_gene 0 20 сентября, 2007 Опубликовано 20 сентября, 2007 · Жалоба из словаря: patch - это заплатка; path - путь. В данном случае $PATH - это переменная среды операционной системы. Никак не связано с патчем. Кратко: программе нужен файл (cygwin1.dll). Вопрос: где его искать? Ответы: а) во всех папках в компьютере - очень долго; b) за шкафом - очень пыльно; с) только в некоторых местах; места указаны в переменной $PATH. Править в виндах: свойства системы/дополнительно/переменные среды. Если не охота возиться, скопируйте саму длл в рабочую папку (библиотека, вроде, небольшая). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 20 сентября, 2007 Опубликовано 20 сентября, 2007 · Жалоба Спасибо за ответ! При запуске nios2-elf-objdump.exe выдается сообщение "Приложение не удалось запустить, поскольку cygwin1.dll не был найден...". Как "дешево & сердито" решить эту и подобные проблемы? не надо его нигде искать. просто запустите Nios II Command Shell.bat в директории nios2eds и получите настроенное окружение для работы с nios. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Voloshchenko 0 20 сентября, 2007 Опубликовано 20 сентября, 2007 · Жалоба к id_gene Спасибо большое! Скопировал cygwin1.dll в директорий с nios2-elf-objdump.exe. Запустил в ком.строке nios2-elf-objdump.exe -D count_binary_0.elf, то есть с ключом -D что бы дизассемблировать все. Программа быстро пролистала в экране, а хотелось бы скопировать полученное в файл для детального изучения диз-асм. Как это выполнить? И еще есть ли в этой системе более продвинутые средства (пути) для изучения асм-кодов после их компиляции с С/С++? Но мне все же, как начинающему, не хотелось бы пока вникать в такие глубины. Пока нужно просто симулировать простейшие программы с целью освоения Nios (старт-кита пока нет и пока еще ничего не просимулировано). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
id_gene 0 20 сентября, 2007 Опубликовано 20 сентября, 2007 · Жалоба Опять же, это все вопросы ОС и ее оболочки. Перенаправляйте вывод в файл с помощью, например, оператора ">", т.е. ...objdump -D -S foo.elf > my_output.txt p.s. +1 к ответу Vetal :a14: , сам не догадался Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbour 0 21 сентября, 2007 Опубликовано 21 сентября, 2007 · Жалоба Гм ... помнится когда брали nios кит, еще на C-1, то в комплекте шла кипа интегрированных сред для отладки оного, со всякими окнами дизассемблера и прочее. eval варианты но для Вас - это лучше чем ничего. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Voloshchenko 0 21 сентября, 2007 Опубликовано 21 сентября, 2007 · Жалоба К Harbour 1. Посмотрел после дизассемблирования спорный адрес, вот он: 87ec: 20800115 stw r2,4(r4) В общем ничего не ясно. Может кто-то выполнит не получившийся тест из этого учебника - tt_nios2_hardware_tutorial.pdf. 2. Испробовал пару готовых примеров на Nios II в режиме симуляции (взяты из c:\altera\71\nios2eds\examples\verilog\). Они полностью прошли, и это радует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbour 0 22 сентября, 2007 Опубликовано 22 сентября, 2007 · Жалоба Что ж тут непонятного : имеем r2 = 0x8804, r4 = 0 (реально пишется в 0x4), похоже на классическую попытку разименования нулевого указателя, в случае если код был на c/c++, к сожалению Вы не обратили внимания на указанную мной опцию -S к objdump - глядя в интерлист все было б намного понятней ;) Что в memory map значит область с 0 адреса ? RAM/ROM/undef ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться