Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cyclone 5 bare-metal Как загрузить preloader во флеш?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Kostochkin
Здравствуйте,
У меня есть плата sockit cyclone 5 teracic.
Режим bare-metal.
Я собрал preloader и загрузил его через debug в кристалл, работает.
Поверх загрузил свое приложение через debug, работает, правда если сделать цикл while(1), то программа куда-то вылетает... не понятно...
Вопрос, а как сделать, чтобы preloader и мое приложение при старте загружались из флеш?
Какие файлы загружать во флеш?
От preloader у меня есть файлы:
preloader-mkpimage.bin,
u-boot-spl.bin.
От приложения есть файл main.axf
Спасибо.
vadimuzzz
какой конкретно flash? если qspi, то через quartus_hps; если microsd - разметить через fdisk и записать при помощи dd
Kostochkin
В QSPI.
Я правильно понял, что надо через command shell вызвать команду записи файла в QSPI?
Могли бы вы привести пример команды.
И какой файл загружать? preloader-mkpimage.bin?
vadimuzzz
да, в embedded_command_shell выполнить что-то типа:
quartus_hps -c 1 -o PV -a 0x0000 /path/to/file/preloader-mkpimage.bin
плата, естественно, д.б. сконфигурирована для загрузки с QSPI, этоже относится и к прелоадеру
Kostochkin
Спасибо.
А как на счет моего приложения, надо тоже какой файл загрузить в qspi?
У меня есть только axf... И надо ли как-то настраивать preloader под этот файл?
Kostochkin
Можно ли из axf файла сделать bin?
vadimuzzz
Цитата(Kostochkin @ Aug 29 2015, 13:12) *
Можно ли из axf файла сделать bin?

используйте mkimage
смещение бинарника можно настроить в bsp
Kostochkin
Спасибо большое
Kostochkin
Цитата(vadimuzzz @ Aug 29 2015, 17:38) *
используйте mkimage
смещение бинарника можно настроить в bsp


mkimage делает из bin файла img файл,
а как же мне из axf файла сделать bin?
vadimuzzz
objcopy:
Код
arm-altera-eabi-objcopy -O binary filename.axf filename.bin
Kostochkin
Загрузил, но при подаче питания стартует только preloader, моя программа не стартует...
В bsp задал смещение, и записал по этому смещению в qspi bin файл своего приложения, приложение не запускается.
И еще при нажатии кнопки hps_reset загрузка из qspi не происходит...
vadimuzzz
Только что проверил, все работает. Настройки bsp и пример проекта (образ загрузчика туда же сунул) в аттаче. Шил так:
Код
quartus_hps -c 1 -o PV -a 0x0000 preloader-mkpimage.bin
quartus_hps -c 1 -o PV -a 0x60000 hwlib-mkimage.bin
. Bootsel=111
Kostochkin
Я делал аналогично.
Сейчас попробую опять.
А как вы делали bin файл приложения?
Я создал новое приложение в eclipse DS5, собрал, сделал debug. У меня появился файл axf.
Командой arm-altera-eabi-objcopy перевел его в bin и записал в QSPI.
vadimuzzz
Цитата(Kostochkin @ Sep 1 2015, 13:17) *
А как вы делали bin файл приложения?

руками Makefile поправил и собрал make`ом (в embedded command shell). еклипс вроде умеет проект из мейкфайла создавать
En_Serg
Во вложенном Вами архиве есть
hwlib.bin и hwlib-mkimage.bin,
а вы указали утилиту одну:
- для создания
arm-altera-eabi-objcopy -O binary filename.axf filename.bin
- для qspi
quartus_hps -c 1 -o PV -a 0x60000 hwlib-mkimage.bin

Есть еще что-то, преобразующее
hwlib.bin в hwlib-mkimage.bin, типа mkimage ?

И еще, простите за тупой вопрос,
в вашем make есть строка

SPL := u-boot-spl.axf

Получается, что этот u-boot-spl.axf каким то
образом участвует в сборке?
Так у него размер 450к а у получающегося hwlib.bin всего 112к.

Если Вам не трудно, напишите мне в почту encov@mail.ru,
хотелось бы с вами еще пообщаться.
Спасибо.

vadimuzzz
Цитата(Kostochkin @ Sep 1 2015, 13:17) *
Командой arm-altera-eabi-objcopy перевел его в bin и записал в QSPI.

забыли mkimage сделать
Kostochkin
Цитата(vadimuzzz @ Sep 2 2015, 11:46) *
забыли mkimage сделать


Сделал утилитой mkimage файл *-mkimage.bin,
загрузил, все без изменений, грузится только preloader, приложение не грузится...
Ваш пример работает.
Попробую собрать приложение как вы, make файлом.
verali
Цитата(Kostochkin @ Aug 28 2015, 09:03) *
Поверх загрузил свое приложение через debug, работает, правда если сделать цикл while(1), то программа куда-то вылетает... не понятно...

А как вы загрузили приложение поверх прилодера для отладки?
Делали ли что-нибудь, помимо установки галочки в дебаггере напротив "debug from symbol"?
Нажмите для просмотра прикрепленного файла
Kostochkin
Да, во вкладке Files, в target conf добавил свой файл *.axf
И в Files добавил папку soc_system\synthesis из проекта quartus.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.