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

 
 
> Организация работы с памятями в NIOS`е
Kuzmi4
сообщение Apr 11 2008, 11:23
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Здравствуйте.

Собственно не вопрос а вопросы -

Ниос, я так понял имеет линейнное адресное пространство - правильно? (всмысле никакими хитросятими кроме программного метода (лапками банки переключать там) нельзя расширить больше чем на 4гб?).

Дальше хочется сделать такую вещь - имеем флеш память, SDRAM (например) и SD-card.
Память изначально находится во флеш. При старте в AS моде с EPCS подчитывается конфигурационный SOF-файл. Далее - когда сконфигурится FPGA(типа процессор уже создан) - у меня в on_chipmem cидит загрузчик который копирует(ну потестить сдрам надо обязательно + можно добавить тест другой периферии по желанию) с флеша в SDRAM программу (в процессе создания on_chipmem в SoPC Buildere указываем , что её инициализировать надо - вот тут первая непонятка - что и куда надо записывать будет дополнительно - ведь SOF -это только процессор ). Когда загрузчик закончит делать своё дело имем в SDRAMе нашу программу - и вот тут дальше вообсче для меня тёмный лес - как заставить ниос выполняться с скопированного кода в SDRAM ? smile3046.gif
Я дак думаю в выставить в этой опции - SDRAM
Прикрепленное изображение

По идее начнётся выполнение с 0 ячейки срама - так ?

Далее под Heap и Stack выделю отдельную область в on_chipmem (другая есссно чем для загрузчика)
А вот как быть с rodata и rwdata - это как понимать? Я так понимаю rwdata это как раз мои переменные. А rodata - что туда ложится wacko.gif ?

Далее вопрос касательно SD-Card - в результате просмотра документаций и всего прочего(в том числе примеров что идут к девкитам) пришёл к выводу что протокол обмена с карточкой реализовывается в ниосе - crying.gif - то есть нельзя карточку прикрутить к адресному пространству ?? Тобто можно пойти 2мя путями - или поррубить SPI -и сотворить как на мегах - фат там и все дела. А можно прост овлепить 4 лапы и софтварно наваять на ниосе драйвер обсчения по SD-шному протоколу ?
В принципе есчё можно порится на опенкоресах - но там есть
SD/MMC/SPIflash FPGA Config
SD/MMC Bootloader
Вроде не то ??
Посоветуйте как бы прикрутить SD-Card с наименьшими траблами.

Подскажите пожалуста правильно ли я мыслю и если нет , то где обшибся.
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kuzmi4
сообщение Apr 15 2008, 07:23
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 id_gene - спасибо за развёрнутые ответы, однако всё равно есть непонятки..

Значит касательно SOF - файла - а как мне засунуть в него инициализационный HEX для оnchip_mem написанный ручками (потому как загрузчик который сам с флеши перекладывает в сдрам хорошо, но хотелось бы сначала удостоверится что СДРАМ и другие прибамбасы на месте и не битые) ? И как передать управление коду что находится в срам( скопировался который) от загрузчика ? В принципе интуитивно догадываюсь что-то типа "jmp" инструкция, но хотелось бы услышать хоть какие либо подробности от людей делавших это..

Далее касательно загрузчика который IDE должен сам вставить - хотелось бы узнать последовательность действий - написал прогу в IDE, указал ресет-вектор на флеш, а расположение памяти в сдрам (в первом посте картинка), и тогда при заливке программы флеш лоадером IDE положит в начало программы загрузчик, так?

Ну и последний вопрос, только не бейте сильно - а где можно почитать как на асме кодить в NIOS II IDE ? smile3046.gif
Go to the top of the page
 
+Quote Post
id_gene
сообщение Apr 15 2008, 16:22
Сообщение #3


carpe manana
***

Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659



Цитата(Kuzmi4 @ Apr 15 2008, 11:23) *
Значит касательно SOF - файла - а как мне засунуть в него инициализационный HEX для оnchip_mem написанный ручками
Проще всего залезть в верилог этой памяти и посмотреть название файла "onchip_mem".hex в параметрах altsyncram. Ваш файл должен иметь такое же имя. Вообще-то hex должен появиться в папке xxx_sim.

Цитата
И как передать управление коду что находится в срам( скопировался который) от загрузчика ? В принципе интуитивно догадываюсь что-то типа "jmp" инструкция, но хотелось бы услышать хоть какие либо подробности от людей делавших это..
Я не делал. Альтеровский загрузчик делает, кажется, br.

Кстати, еще можно поставить всем функциям после загрузчика аттрибуты секций. Я, кстати, так как-то раз сделал, все работало (т.е. отдельные редко-востребованные функции лежали в медленной внешней СДРАМ), только не помню подробностей, как их загрузчик копировал.

Цитата
написал прогу в IDE, указал ресет-вектор на флеш, а расположение памяти в сдрам (в первом посте картинка), и тогда при заливке программы флеш лоадером IDE положит в начало программы загрузчик, так?
да
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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