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

 
 
> Cyclone V HPS: сборка preloader'a, загрузка приложения, поддержка FAT и другие вкусности...
serjj
сообщение Jan 22 2015, 13:27
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Всем доброго времени суток rolleyes.gif . Тема является продолжением и развитием FPGA Boot. Собственно на днях вопрос с FPGA Boot потерял актуальность, т.к. загрузиться получилось. Теперь уже не помню, из-за какой настройки preloader не стартовал в этом режиме boot'a, но в итоге получилось собрать так, чтобы заработало. Список необходимого:

- Руководствовался инструкцией FPGA Boot 14.0
- Использовался Квартус 14.1 и сопутствующий ему EDS
- Простейший QSys проект для примера для загрузки из FPGA (у меня под плату Arrow SoCkit) QSys
- Перед сборкой preloader лучше удалить папку spl_bsp и сгенерировать заново после первой сборки проекта
- Вот настройки preloader'a Прикрепленный файл  1.txt ( 1.43 килобайт ) Кол-во скачиваний: 323
, которые я использовал
(прим. если не выбран не один пункт загрузки, как в данном примере, preloader загружается, выполняется и висит в цикле, не пытаясь что либо делать дальше. при этом можно загружать и отлаживать приложение в SDRAM по JTAG через DS-5 debugger)
- В своем проекте я не завожу резет на FPGA часть, а на HPS Cold reset завожу сигнал, полученный по pll_locked. Как я понял, главное: резет на вход Cold (именно Cold) reset HPS должен прийти после того, как с FPGA части будет снят резет, т.е. FPGA часть будет гарантированно готова к загрузке проца. Мне кажется, что этот пункт меню имеет принципиальное значение.
- Итак, собираем preloader, делаем HEX, все как указано в доке с рокетбордов, подключаем UART к компу, в Putty задаем скорость 115200 бод, заливаем .sof файл и вуаля:
Прикрепленное изображение

- profit!

Preloader грузится из OCRAM FPGA, инициализирует DDR3 SDRAM и входит в цикл а-ля for(;;). При этом я могу по JTAG заливать в SDRAM приложение, как hosted так и unhosted (unhosted будет выводить текст в открытое Putty), так что все ок.

Надеюсь, что данная инструкция кому нибудь пригодится. Теперь собственно о текущей проблеме. Хотелось бы пойти дальше и сделать полностью автономную загрузку unhosted baremetal приложения. Preloader копирует код из некоторого хранилища в область SDRAM и передает управление с точки входа Entry point, откуда приложение и начинает выполняться (да простят меня истинные программеры, до этого только rtl дизайном занимался, поэтому может коряво об этом пишу). Сейчас рассматриваю вариант загрузки приложения из другой OCRAM на борту FPGA или из SD-MMC. В дальнейшем хочется загружаться из NAND (на Arrow её просто нет). Вариант с загрузкой приложения из FPGA не является стандартным, т.к. он даже не обозначен в гуи морде bsp-editor при настройке параметров сборки preloader'a. Однако такая возможность есть, т.к. см. Altera Wiki FPGA boot:
Цитата
Note that the Preloader is executed directly from the FPGA memory, while the bare-metal is first copied from the SD/MMC to SDRAM then executed.
It is possible to also store the bare-metal application in the FPGA image, but that memory is expensive and its usage should be minimized.

Возникает вопрос, как загрузить простейшее приложение из OCRAM FPGA?

Загрузка из SD-MMC предполагает форматирование флешки под какой-то А2 Partition, но при генерации preloader'a есть галочка "поддержка FAT". Как я понял опция как раз для виндовых машин. Ставим поддержку FAT и просто копируем на флешку .img образ приложения, которое хотим запускать. С поддержкой FAT при сборке preloader'a вылазит ошибка Makefile'a:
Прикрепленное изображение

Как я понял, загрузка с флешки самая распространенная пока. Кто как грузился? Кто нибудь пробовал загружать что либо кроме линуха с флешки? Мб кто то пробовал включать поддержку FAT?

И еще интересует вопрос, как собственно preloader осуществляет копирование кода приложения в SDRAM и передачу управления на entry point?

Возможно немного сумбурно, но на данный момент много вопросов, решил собрать их в одном месте. Если у кого-то есть идеи, велкам к обсуждению rolleyes.gif

Сообщение отредактировал serjj - Jan 22 2015, 13:31
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RadiatoR
сообщение Nov 5 2016, 13:56
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 270
Регистрация: 8-08-15
Из: Москва
Пользователь №: 87 901



А программатор куда грузит? В 60кб оперативки и стартует из нее?
Go to the top of the page
 
+Quote Post
sonycman
сообщение Nov 7 2016, 07:59
Сообщение #3


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(RadiatoR @ Nov 5 2016, 17:56) *
А программатор куда грузит? В 60кб оперативки и стартует из нее?

Как правило отладчик использует простой скрипт, в котором сначала в onchip память грузится прелоадер, запускается, делает всю необходимую инициализацию, а уже затем в DDR SDRAM грузится приложение.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- serjj   Cyclone V HPS: сборка preloader'a, загрузка приложения   Jan 22 2015, 13:27
- - WitFed   Эх, лучше бы ты итоговый рецепт загрузки из FPGA т...   Jan 27 2015, 16:41
- - vadimuzzz   Цитата(serjj @ Jan 22 2015, 19:27) Как я ...   Jan 28 2015, 04:49
- - serjj   Хочу на отладочной плате (Arrow) попробовать сдела...   Jan 28 2015, 13:24
|- - vadimuzzz   Цитата(serjj @ Jan 28 2015, 19:24) Я прав...   Jan 29 2015, 03:13
- - serjj   vadimuzzz, спасибо большое. Вот только все равно н...   Jan 29 2015, 11:03
- - vadimuzzz   вот таблица разделов: КодDisk /dev/sdc: 485,5 ...   Jan 30 2015, 02:44
- - serjj   Получилось загружать образ приложения preloader...   Feb 2 2015, 09:44
- - serjj   Разобрался с запуском приложения! Во первых ис...   Feb 2 2015, 12:58
- - WitFed   Нет, 64 байта первых -- это вектора прерываний. И ...   Feb 2 2015, 15:37
- - serjj   Да, ты прав в случае если это образ preloader...   Feb 2 2015, 15:48
- - RadiatoR   Всем доброго дня! Решил не создавать новую тем...   Nov 5 2016, 09:54
|- - Burenkov Sergey   Как раз недавно немного поковырял SOC... Цитата(R...   Nov 5 2016, 13:35
|- - Burenkov Sergey   Цитата(RadiatoR @ Nov 5 2016, 16:56) А п...   Nov 5 2016, 20:34
- - RadiatoR   Но ддр еще не инициализирована. Ее как раз и запус...   Nov 5 2016, 21:17
|- - vadimuzzz   Цитата(RadiatoR @ Nov 6 2016, 03:17) Но ...   Nov 6 2016, 09:47
|- - Burenkov Sergey   Цитата(RadiatoR @ Nov 6 2016, 00:17) Но ...   Nov 7 2016, 13:01
- - RadiatoR   Да, так я и думал. А может кто-нибудь сбросить при...   Nov 7 2016, 19:02
- - sonycman   Я работаю с DE1-SoC, с de0-nano-soc дела не имел, ...   Nov 7 2016, 20:38
- - vadimuzzz   Цитата(sonycman @ Nov 8 2016, 02:38) с GC...   Nov 8 2016, 05:58


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

 


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


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