Kostochkin
Aug 28 2015, 09:03
Здравствуйте,
У меня есть плата sockit cyclone 5 teracic.
Режим bare-metal.
Я собрал preloader и загрузил его через debug в кристалл, работает.
Поверх загрузил свое приложение через debug, работает, правда если сделать цикл while(1), то программа куда-то вылетает... не понятно...
Вопрос, а как сделать, чтобы preloader и мое приложение при старте загружались из флеш?
Какие файлы загружать во флеш?
От preloader у меня есть файлы:
preloader-mkpimage.bin,
u-boot-spl.bin.
От приложения есть файл main.axf
Спасибо.
vadimuzzz
Aug 28 2015, 13:48
какой конкретно flash? если qspi, то через quartus_hps; если microsd - разметить через fdisk и записать при помощи dd
Kostochkin
Aug 28 2015, 18:10
В QSPI.
Я правильно понял, что надо через command shell вызвать команду записи файла в QSPI?
Могли бы вы привести пример команды.
И какой файл загружать? preloader-mkpimage.bin?
vadimuzzz
Aug 28 2015, 22:54
да, в embedded_command_shell выполнить что-то типа:
quartus_hps -c 1 -o PV -a 0x0000 /path/to/file/preloader-mkpimage.bin
плата, естественно, д.б. сконфигурирована для загрузки с QSPI, этоже относится и к прелоадеру
Kostochkin
Aug 29 2015, 05:11
Спасибо.
А как на счет моего приложения, надо тоже какой файл загрузить в qspi?
У меня есть только axf... И надо ли как-то настраивать preloader под этот файл?
Kostochkin
Aug 29 2015, 07:12
Можно ли из axf файла сделать bin?
vadimuzzz
Aug 29 2015, 13:38
Цитата(Kostochkin @ Aug 29 2015, 13:12)

Можно ли из axf файла сделать bin?
используйте
mkimageсмещение бинарника можно настроить в bsp
Kostochkin
Aug 29 2015, 16:41
Спасибо большое
Kostochkin
Aug 31 2015, 07:45
Цитата(vadimuzzz @ Aug 29 2015, 17:38)

используйте mkimage
смещение бинарника можно настроить в bsp
mkimage делает из bin файла img файл,
а как же мне из axf файла сделать bin?
vadimuzzz
Aug 31 2015, 09:19
objcopy:
Код
arm-altera-eabi-objcopy -O binary filename.axf filename.bin
Kostochkin
Aug 31 2015, 12:30
Загрузил, но при подаче питания стартует только preloader, моя программа не стартует...
В bsp задал смещение, и записал по этому смещению в qspi bin файл своего приложения, приложение не запускается.
И еще при нажатии кнопки hps_reset загрузка из qspi не происходит...
vadimuzzz
Sep 1 2015, 02:08
Только что проверил, все работает. Настройки 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
Sep 1 2015, 07:17
Я делал аналогично.
Сейчас попробую опять.
А как вы делали bin файл приложения?
Я создал новое приложение в eclipse DS5, собрал, сделал debug. У меня появился файл axf.
Командой arm-altera-eabi-objcopy перевел его в bin и записал в QSPI.
vadimuzzz
Sep 1 2015, 09:44
Цитата(Kostochkin @ Sep 1 2015, 13:17)

А как вы делали bin файл приложения?
руками Makefile поправил и собрал make`ом (в embedded command shell). еклипс вроде умеет проект из мейкфайла создавать
En_Serg
Sep 2 2015, 05:22
Во вложенном Вами архиве есть
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
Sep 2 2015, 07:46
Цитата(Kostochkin @ Sep 1 2015, 13:17)

Командой arm-altera-eabi-objcopy перевел его в bin и записал в QSPI.
забыли
mkimage сделать
Kostochkin
Sep 3 2015, 05:42
Цитата(vadimuzzz @ Sep 2 2015, 11:46)

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

Поверх загрузил свое приложение через debug, работает, правда если сделать цикл while(1), то программа куда-то вылетает... не понятно...
А как вы загрузили приложение поверх прилодера для отладки?
Делали ли что-нибудь, помимо установки галочки в дебаггере напротив "debug from symbol"?
Нажмите для просмотра прикрепленного файла
Kostochkin
Sep 4 2015, 07:54
Да, во вкладке Files, в target conf добавил свой файл *.axf
И в Files добавил папку soc_system\synthesis из проекта quartus.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.