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

Первые шаги в прошивке программы для NIOS

Для программирования кристалла с использованием EPCS с заливкой внутри этой флэш-памяти программы для Nios II, необходимо выполнить следующие действия:

 

В Quartus II:

1. Создать проект, в который будет установлен системный модуль

2. Указать тип используемого устройства флэш-памяти (это необходимо сделать и при отсутствии Ниоса в проекте, для программирования кристалла, используя флэш-память).

 

В SOPC Builder нужно:

1. Создать требуемый системный модуль.

2. Установить контроллер EPCS памяти и указать его адреса и прерывание (автоматически).

3. Сгенерировать системный модуль.

 

В IDE:

1. Написать программу, которая будет выполняться процессором.

2. Откомпилировать проект.

 

В Quartus II:

1. Установить системный модуль в проект (через Мегавизор).

2. Выполнить полную компиляцию проекта и сгенерировать файл *.sof.

3. «Залить» проект в ПЛИС.

 

НЕ выключая плату.

 

В IDE:

1. Запустить Flash Programmer и создать новую сессию в нем.

2. Установить «галку» перед строкой «Program FPGA configuration data into hardware-image region of flash-memory».

3. Убедиться, что в строке «FPGA Configuration (SOF)» указан нужный файл. А в пункте «Memory» указан EPCS контроллер.

4. Запустить программатор.

5. Сбросить плату (выключить и включить питание).

 

 

Процедура проводилась в Quartus II v7.1 для DK на основании Cyclone и платы с Stratix II. Необходимо отметить, что в версии QII 7.1 отсутствует необходимость создавать «Описание платы». О предыдущих версиях квартуса, не знаю.

 

PS Если найдете неточности в описании, то пишите и я их исправлю.

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


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

Подскажите пожалуйста. Как научить Ниос2 грузить программу, скомпиленную в IDE, из EPCS?

В SOPC имеется связка проц<->onchip_ram<->epcs_controller...

делал так:

1. в квартусе создал проект со схемой и сопц компонентом.

2. в сопц прикрутил проц, рам, епцс контроллер и gpio. сгенерил все.

3. в ниос наваял простенький тестик. отбилдил.

4. в квартусе добавил получившийся символ , приассигнил пины и откомпилил.

5. залил в кристалл по джитагу.

Работает.

Не выключая питания платы открыл ниосовский флешпрограммер и залил это добро в епцс. передернул питание. грузанулось из епцс. работает.

ТЕПЕРЬ. Пытаюсь изменить сишный исходник. Билдюсь. Программером сливаю в епцс. сливается. передергиваю питание.И НОЛЬ РЕАКЦИИ НА ИЗМЕНЕНИЯ В ИСХОДНИКЕ.

Где собака зарыта? Откуда софт для проца грузится? из EPCS boot или

он жестко зашит в sof файле, который мне сгенерил квартус?

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


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

ТЕПЕРЬ. Пытаюсь изменить сишный исходник. Билдюсь. Программером сливаю в епцс. сливается. передергиваю питание.И НОЛЬ РЕАКЦИИ НА ИЗМЕНЕНИЯ В ИСХОДНИКЕ.

Где собака зарыта? Откуда софт для проца грузится? из EPCS boot или

он жестко зашит в sof файле, который мне сгенерил квартус?

 

Проверил на плате. Результат - все нормально.

 

Действия:

1. Запрограмил EPCS как было описано ранее.

2. Изменил сишник

3. Build-All

4. Залил флеш-программером

5. передернул питание

 

Все работает как и ожидалось.

 

Проверяйте свои действия. Попробуйте удалить и пересоздать сессию флеш-программера.

 

он жестко зашит в sof файле, который мне сгенерил квартус?

 

Для того, чтоб вопрос более не возникал. Поставьте Smart компиляцию в QII, проведите полную компиляцию проекта. Измените сишник, откомпилируйте программу. Попробуйте еще раз компильнуть весь проект. Ожидаемый результат: мгновенная компиляция (изменений в железе проекта нет).

 

Вопрос для размышления: представьте разделенную работу железячника и программера и проект заполняющий целиком весть камень (например EP2S180), а теперь представьте работу программера если ему прийдется перекомпилировать железячный проект каждый раз :biggrin: Вот я сам думаю, куда бы я послал тогда этот Ниос ;)

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


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

Проверил на плате. Результат - все нормально.

 

Действия:

1. Запрограмил EPCS как было описано ранее.

2. Изменил сишник

3. Build-All

4. Залил флеш-программером

5. передернул питание

 

Все работает как и ожидалось.

 

 

Да. Smart-компиляция идея хорошая. Без изменений в проекте - работает мнгновенно .

Я понял в чем у меня было дело :-). Переставил адрес ресета ниосовскому процессору с onchip_ram на epcs и ненадо никакой компиляции квартусом. достаточно откомпилить в ниосе и залить флаш программером. О минусах такого подхода: пока догадываюсь , что жрется ресурс epcs при отладке.

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


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

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

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

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

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

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

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

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

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

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