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

 
 
 
Reply to this topicStart new topic
> CycloneV GIC baremetal пример, как загрузить проект из SD/MMC ?
Alligator75
сообщение May 12 2016, 08:26
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 174
Регистрация: 8-01-11
Из: Москва, СВАО
Пользователь №: 62 092



Всем привет, проведите ликбез плиз.

Собственно в чем вопрос - переношу пример из UNIVERSITY PROGRAM GIC_Example в DS-5. Все работает при условии, если выполняю последовательность (SD карта отсутствует в слоте):

1. Заливаю прошивку в FPGA.
2.
Код
quartus_hps --cable="DE-SoC [USB-1]" -o GDBSERVER --gdbport0=2827 --preloader=C:/altera/15.1/University_Program/Monitor_Program/arm_tools/u-boot-spl.srec --preloaderaddr=0xffff1398 --source=C:/altera/15.1/University_Program/Monitor_Program/blank.srec

3. Через DS-5 заливаю код. Код компилируется с настройками линкера:
Код
-T "C:\DS-5 Workspace\TestGCC\altera-socfpga-hosted-with-vectors.ld" -Wl,--defsym -Wl,arm_program_mem=0x40 -Wl,--defsym -Wl,arm_available_mem_size=0x3fffffbc -Wl,--defsym -Wl,__cs3_stack=0x3ffffffc -Wl,--section-start -Wl,.vectors=0x0


А как все это настроить на автоматический запуск из SD/MMC? - тупик. Стандартные приемы у меня не дали результата.

Прикрепленный файл  TestGCC.zip ( 50.24 килобайт ) Кол-во скачиваний: 34




--------------------
vk.com/ok.automation
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение May 12 2016, 23:42
Сообщение #2


Гуру
******

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



а плата какая?
Go to the top of the page
 
+Quote Post
Alligator75
сообщение May 13 2016, 05:38
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 174
Регистрация: 8-01-11
Из: Москва, СВАО
Пользователь №: 62 092



Цитата(vadimuzzz @ May 13 2016, 02:42) *
а плата какая?

DE0-Nano-SoC


--------------------
vk.com/ok.automation
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение May 13 2016, 09:46
Сообщение #4


Гуру
******

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



Цитата(Alligator75 @ May 13 2016, 11:38) *
DE0-Nano-SoC

посмотрите тут: https://rocketboards.org/foswiki/view/Docum...lopmentPlatform

вам надо собрать свой preloader, за основу можно взять тот, что грузит линукс в примерах. там надо будет заменить в bsp-настройках предзагрузчика имя бинарника (в примерах это u-boot, который в свою очередь грузит линуксовое ядро). для бинарника своей программы не забудьте сделать mkimage (в make-файле для предзагрузчика можно посмотреть с какими параметрами вызывается mkimage)
Go to the top of the page
 
+Quote Post
Alligator75
сообщение May 13 2016, 12:57
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 174
Регистрация: 8-01-11
Из: Москва, СВАО
Пользователь №: 62 092



Цитата(vadimuzzz @ May 13 2016, 12:46) *
вам надо собрать свой preloader, за основу можно взять тот, что грузит линукс в примерах. там надо будет заменить в bsp-настройках предзагрузчика имя бинарника (в примерах это u-boot, который в свою очередь грузит линуксовое ядро). для бинарника своей программы не забудьте сделать mkimage (в make-файле для предзагрузчика можно посмотреть с какими параметрами вызывается mkimage)

Так это первое, что я сделал. Программа не работает, в данном случае не ловит прерывание от кнопок плис. Работает через загрузку в DS-5, если предварительно были загружены прелоадер и пустышка:
Прикрепленное изображение



--------------------
vk.com/ok.automation
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение May 13 2016, 13:44
Сообщение #6


Гуру
******

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



покажите выхлоп в консоль от предзагрузчика при запуске с карточки
Go to the top of the page
 
+Quote Post
Alligator75
сообщение May 13 2016, 16:13
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 174
Регистрация: 8-01-11
Из: Москва, СВАО
Пользователь №: 62 092



Это в консоли:
Код
U-Boot SPL 2013.01.01 (May 13 2016 - 19:00:50)
BOARD : Altera SOCFPGA Cyclone V Board
CLOCK: EOSC1 clock 25000 KHz
CLOCK: EOSC2 clock 25000 KHz
CLOCK: F2S_SDR_REF clock 0 KHz
CLOCK: F2S_PER_REF clock 0 KHz
CLOCK: MPU clock 925 MHz
CLOCK: DDR clock 400 MHz
CLOCK: UART clock 100000 KHz
CLOCK: MMC clock 50000 KHz
CLOCK: QSPI clock 3613 KHz
RESET: COLD
SDRAM: Initializing MMR registers
SDRAM: Calibrating PHY
SEQ.C: Preparing to start memory calibration
SEQ.C: CALIBRATION PASSED
SDRAM: 1024 MiB
ALTERA DWMMC: 0
reading u-boot.img
reading u-boot.img


U-Boot 2013.01.01 (May 13 2016 - 11:47:37)

CPU   : Altera SOCFPGA Platform
BOARD : Altera SOCFPGA Cyclone V Board
I2C:   ready
DRAM:  1 GiB
MMC:   ALTERA DWMMC: 0
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Skipped ethaddr assignment due to invalid EMAC address in EEPROM
Net:   mii0
Warning: failed to set MAC address

Hit any key to stop autoboot:  0
reading u-boot.scr
** Unable to read file u-boot.scr **
Optional boot script not found. Continuing to boot normally
reading zImage
** Unable to read file zImage **
reading socfpga.dtb
** Unable to read file socfpga.dtb **
Bad Linux ARM zImage magic!
SOCFPGA_CYCLONE5 # <INTERRUPT>
SOCFPGA_CYCLONE5 #


Это в DS-5:
Код
Stopping running target Altera - Cyclone V SoC (Dual Core) on TCP:localhost on connection
Connected to running target Altera - Cyclone V SoC (Dual Core) on TCP:localhost
Execution stopped at: S:0x3FF8D954
source /v "C:\altera\15.1\embedded\ds-5\sw\debugger\configdb\Scripts\altera_target_check.py"
S:0x3FF8D954   B        {pc}-0xc; 0x3ff8d948

No SYSID registers could be found. Has a peripheral description file been supplied?

loadfile "C:\DS-5 Workspace\TestGCC\Debug\TestGCC.axf"
Loaded section .vectors: S:0x00000000 ~ S:0x0000003F (size 0x40)
Loaded section .text: S:0x00000040 ~ S:0x000007FB (size 0x7BC)
Loaded section .eh_frame: S:0x000007FC ~ S:0x000007FF (size 0x4)
Loaded section .rodata: S:0x00000800 ~ S:0x00000857 (size 0x58)
Loaded section .data: S:0x00000858 ~ S:0x00000C97 (size 0x440)
Loaded section .bss: S:0x00000C98 ~ S:0x00000CB7 (size 0x20)
Entry point S:0x00000120
cd "C:\DS-5 Workspace"
Working directory "C:\DS-5 Workspace"
set debug-from main
start
Starting target with image C:\DS-5 Workspace\TestGCC\Debug\TestGCC.axf
Running from entry point
wait
Execution stopped at breakpoint 1: S:0x00000398
In interrupt_example.c
S:0x00000398   17,0   {
Deleted temporary breakpoint: 1
wait
continue


После старта программа вываливается в:
Код
void __attribute__ ((interrupt)) __cs3_reset (void)
{
    volatile int * LED_ptr = (int *) LED_BASE;
    *LED_ptr=0b10000000;

    while(1);
}


--------------------
vk.com/ok.automation
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение May 13 2016, 16:16
Сообщение #8


Гуру
******

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



а u-boot зачем? грузите сразу свой бинарник
Go to the top of the page
 
+Quote Post
Alligator75
сообщение May 13 2016, 16:55
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 174
Регистрация: 8-01-11
Из: Москва, СВАО
Пользователь №: 62 092



Цитата(vadimuzzz @ May 13 2016, 19:16) *
а u-boot зачем? грузите сразу свой бинарник

что с юбутом, что без юбута ...


--------------------
vk.com/ok.automation
Go to the top of the page
 
+Quote Post
Alligator75
сообщение May 14 2016, 06:59
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 174
Регистрация: 8-01-11
Из: Москва, СВАО
Пользователь №: 62 092



Все ли я делаю правильно :
Код
Stopping running target Altera - Cyclone V SoC (Dual Core) on TCP:localhost on connection
Connected to running target Altera - Cyclone V SoC (Dual Core) on TCP:localhost
Execution stopped at: S:0xFFFF03C4
source /v "C:\altera\15.1\embedded\ds-5\sw\debugger\configdb\Scripts\altera_target_check.py"
S:0xFFFF03C4   B        {pc}; 0xffff03c4

No SYSID registers could be found. Has a peripheral description file been supplied?

load "C:\DS-5-Workspace\TestGCC\Debug\TestGCC.axf"
Loaded section .vectors: S:0xFFFF0000 ~ S:0xFFFF003F (size 0x40)
Loaded section .text: S:0xFFFF0040 ~ S:0xFFFF07FB (size 0x7BC)
Loaded section .eh_frame: S:0xFFFF07FC ~ S:0xFFFF07FF (size 0x4)
Loaded section .rodata: S:0xFFFF0800 ~ S:0xFFFF0857 (size 0x58)
Loaded section .data: S:0xFFFF0858 ~ S:0xFFFF0C97 (size 0x440)
Loaded section .bss: S:0xFFFF0C98 ~ S:0xFFFF0CB7 (size 0x20)
Entry point S:0xFFFF0120
cd "C:\DS-5 Workspace"
Working directory "C:\DS-5 Workspace"
set debug-from *$ENTRYPOINT
start
Starting target with no symbolic information loaded
wait
Execution stopped at: S:0xFFFF0120
S:0xFFFF0120   LDR      sp,[pc,#-0]
wait
continue


Прикрепленное изображение


при запуске с sd карты не работает, при запуске из ds-5 работает 8-((. Такое ощущение, что с точкой входа что то не так


Сообщение отредактировал Alligator75 - May 14 2016, 07:01


--------------------
vk.com/ok.automation
Go to the top of the page
 
+Quote Post
Alligator75
сообщение May 17 2016, 18:45
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 174
Регистрация: 8-01-11
Из: Москва, СВАО
Пользователь №: 62 092



Вопрос решен. Как говорится - дело было не в бобине )


--------------------
vk.com/ok.automation
Go to the top of the page
 
+Quote Post

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

 


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


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