реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Reset Vector и FLASH
vilary
сообщение Feb 24 2011, 19:07
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 19-10-09
Пользователь №: 53 053



Имеется собственноручно написанный модуль для Serial Flash, который подключен к Nios. В данной памяти будет хранится программный код для процессора. Поэтому необходимо данный модуль подключить к процессору как Reset Vector.
Возможно ли сделать чтобы данный компонент (Serial Flash) определялся как память и была возможность использовать его в качестве reset vector?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Feb 24 2011, 23:48
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(vilary @ Feb 25 2011, 01:07) *
В данной памяти будет хранится программный код для процессора.

только храниться или еще и исполняться?
если первое, то компонент epcs controller из билдера состоит из 2 модулей: on-chip ram и контроллер spi. когда вектор сброса устанавливается "на epcs controller", то фактически он указывает на начало on-chip ram, где располагается код бутлодера.
если второе, то компонент со стороны, подключенной к процессору должен выглядеть как память большого объема. внутри это опять таки контроллер spi, небольшое буферное ОЗУ, откуда фактически исполняется программа, ну и логика, реализующая "подкачку" данных из epcs в ОЗУ. Эта тема уже обсуждалась на форуме, была даже рабочая реализация.
Go to the top of the page
 
+Quote Post
vilary
сообщение Feb 25 2011, 07:08
Сообщение #3





Группа: Новичок
Сообщений: 6
Регистрация: 19-10-09
Пользователь №: 53 053



Цитата(vilary @ Feb 24 2011, 22:07) *
В данной памяти будет хранится программный код для процессора.


Здесь подразумевается, что конфигурация плис хранится в epcs, но т.к. с объемом памяти изначально не подрасчитали, то исполняющий код для процессора будет хранится во флэш. Т.е. после того как плис была сконфигурирована данными из epcs (.sof файл), плис должна загрузить софт для Nios из флэш.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Feb 25 2011, 07:12
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(vilary @ Feb 25 2011, 13:08) *
Здесь подразумевается, что конфигурация плис хранится в epcs, но т.к. с объемом памяти изначально не подрасчитали, то исполняющий код для процессора будет хранится во флэш. Т.е. после того как плис была сконфигурирована данными из epcs (.sof файл), плис должна загрузить софт для Nios из флэш.

т.е. к FPGA поключены 2 флешки, одна с sof, вторая с программой ниоса? нет проблем, ставьте epcs контроллер и цепляйте его ко второй флешке.
Go to the top of the page
 
+Quote Post
vilary
сообщение Feb 25 2011, 07:51
Сообщение #5





Группа: Новичок
Сообщений: 6
Регистрация: 19-10-09
Пользователь №: 53 053



Цитата(vadimuzzz @ Feb 25 2011, 10:12) *
т.е. к FPGA поключены 2 флешки, одна с sof, вторая с программой ниоса? нет проблем, ставьте epcs контроллер и цепляйте его ко второй флешке.


А как быть с тем, что epcs и флэш имеют разные командные слова? Т.е. когда система уже сконфигурирована полностью, то значения командных слов можно изменит в самом драйвере. А при начальной загрузке, когда программа для ниоса еще не загружена, как будет происходить обращение к самой флэш? Используются ли там командные слова для чтения с флэш (epcs controller)?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Feb 25 2011, 08:02
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(vilary @ Feb 25 2011, 13:51) *
А как быть с тем, что epcs и флэш имеют разные командные слова? Т.е. когда система уже сконфигурирована полностью, то значения командных слов можно изменит в самом драйвере. А при начальной загрузке, когда программа для ниоса еще не загружена, как будет происходить обращение к самой флэш? Используются ли там командные слова для чтения с флэш (epcs controller)?

вы так интересно пишете - один момент прояснится, другой затуманится sm.gif давайте ближе к телу, что за ПЛИС, какие флешки?

касаемо загрузки: sof грузится не epcs-контроллером, его тянет сама ПЛИС, если настроена на AS-mode. Загрузка программы ниоса происходит в юзерспейсе, когда кристалл уже сконфигурирован, конфликта не будет.
Go to the top of the page
 
+Quote Post
vilary
сообщение Feb 25 2011, 08:17
Сообщение #7





Группа: Новичок
Сообщений: 6
Регистрация: 19-10-09
Пользователь №: 53 053



Цитата(vadimuzzz @ Feb 25 2011, 11:02) *
вы так интересно пишете - один момент прояснится, другой затуманится sm.gif давайте ближе к телу, что за ПЛИС, какие флешки?

касаемо загрузки: sof грузится не epcs-контроллером, его тянет сама ПЛИС, если настроена на AS-mode. Загрузка программы ниоса происходит в юзерспейсе, когда кристалл уже сконфигурирован, конфликта не будет.



Плис - Cyclone, epcs2, flash - at45. Сама флэш аналогична epcs4, но командные слова для работы с данной флэш отличаются от командных слов epcs (это если смотреть драйвер на epcs controller). Во флэшке хранятся код для ниоса и некоторые данные, которые потом будут использоваться в процессе работы устройства. В случае, когда epcs установлен в качестве reset vector, как происходит чтение данных с нее? Учитываются ли там командные слова для epcs?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Feb 25 2011, 08:25
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(vilary @ Feb 25 2011, 14:17) *
В случае, когда epcs установлен в качестве reset vector, как происходит чтение данных с нее? Учитываются ли там командные слова для epcs?

читается в буфер, потом из буфера в заданное ОЗУ переносится. когда все программы скопирована, управление передается на ОЗУ.
можете посмотреть код загрузчика, вам надо соорудить нечто подобное с учетом специфики флешки:
ip/altera/nios2_ip/altera_nios2/boot_loader_sources

и да, использовать готовый компонент epcs-контроллера не получится, первый циклон не позволяет назначить его ноги в произвольное место. придется делать свой компонент.
Go to the top of the page
 
+Quote Post
barabek
сообщение Feb 25 2011, 23:38
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(vilary @ Feb 25 2011, 19:17) *
Плис - Cyclone, epcs2, flash - at45. Сама флэш аналогична epcs4, но командные слова для работы с данной флэш отличаются от командных слов epcs

Добавлю к уже сказанному. Прежде всего почитайте альтеровский "an458 alternative nios boot". У меня немного другая была проблема. Опишу мои действия, может помогут. Копировал папку с родным бутлоадером (только у меня в 9,0 путь другой altera\90\nios2eds\components\altera_nios2\boot_loader_sources) Там в папке уже имеется makefile. Редактировал родной бут под свои нужды. Запустил commandshell и выполнял команду make в папке с редактируемым исходнимом. Далее полученый бутлоадер с расширением srec нужно перевести в HEX формат командой nios-elf-objcopy –O ihex –I srec <мой_бутлоадер>.srec <мой_бутлоадер>.hex .Либо спрятать это в сам makefile

Код
%.hex : $(OBJ)/%.elf $(OBJ)
    $(E) Creating MY HEX file $@
    $(S) elf2hex --base=0x000 --end=0x7ff --width=32 --input=$< --output-target=$@
    $(S) cp $@ <мой_бутлоадер>.hex

При этом нужно в этом же makefile добавить свой hex-файл в качестве таргета:
Код
SRECS = \...(старые таргеты)….. \<мой_бутлоадер>.hex

Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.0146 секунд с 7
ELECTRONIX ©2004-2016