|
Что делать после получения директории handoff, Прошу пинка для дальнейшего движения. |
|
|
|
May 4 2017, 13:56
|

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

|
Какая у вас плата с циклоном? По поводу загрузки "голого" приложения (Bare Metal) смогу подсказать. В настройках HPS модуля не забудьте включить SD/MMC контроллер (для того, чтобы загрузиться с SD карты памяти). Также включите UART0, для вывода отладочной информации загрузчиками или своим приложением. По вашим вопросам: 1. Начальной загрузкой занимается первичный загрузчик, который находится в BootROM. Выбор устройства задаётся пинами BSEL (BOOTSEL), на отладочных платах для этого обычно ставят dip переключатель или жёстко распаивают режим загрузки - с карты памяти, например. 2. Из консоли SoC EDS Command Shell, например, для карты памяти - командой "alt-boot-disk-util -a write -p mpl_C5_s-mkpimage.bin -d k", где mpl_C5_s-mkpimage.bin - файл загрузчика и буква k - буква диска (кардридер с картой памяти). 3. В DDR ложится уже либо большой загрузчик - UBOOT для линукса, либо своё приложение baremetal. В первом случае не подскажу - пока не пробовал, а во втором без проблем - ниже. 4. Это задаётся настройками перед компиляцией прелоадера. После того, как Квартус сгенерировал папку hps_isw_handoff, в консоли SoC EDS Command Shell запустите редактор командой bsp-editor. В нём выбираете в меню New HPS BSP и указываете путь до файла hps.xml внутри hps_isw_handoff. Ставите нужные настройки и генерируете BSP. Далее надо собрать прелоадер. Для MPL загрузчика - исходники находятся в папке examples дистрибутива SoC EDS под именем Altera-SoCFPGA-HardwareLib-MPL.tar.gz Импортируйте его в DS-5, настройте и скомпилируйте. Он может также загружать и FPGA, что очень удобно - не надо с этим возиться самому. Вот страничка Bare Metal User Guide с полезной информацией. В моём случае получается так: на карте памяти в формате FAT лежат файлы приложения и прошивки для FPGA. MPL загрузчик грузит оба файла, конфигурирует FPGA и передаёт управление моему приложению. ЗЫ: карту памяти нужно несколько хитро отформатировать - на ней должно быть два раздела. Первый - это обычный FAT, а вот маленький второй - кастомный с типом раздела 0xA2, в котором лежит прелоадер.
|
|
|
|
|
May 4 2017, 14:24
|
Частый гость
 
Группа: Участник
Сообщений: 94
Регистрация: 24-11-10
Из: г.Зеленоград
Пользователь №: 61 141

|
У меня KIT: DK-DEV-5CSXC6N https://www.altera.com/products/boards_and_...lone-v-soc.htmlЗаказчик хочет тестировать AriaV на входном контроле. KIT на AriaV приедет только через 12 недель. Разбираюсь пока на ките CyclonV. В итоге мне нужно будет прийти к тому, что у вас. Чтобы процессор заливал зашивки в FPGA.
|
|
|
|
|
May 5 2017, 13:46
|
Частый гость
 
Группа: Участник
Сообщений: 94
Регистрация: 24-11-10
Из: г.Зеленоград
Пользователь №: 61 141

|
Видео сделано для среды версии 14.1 В видео ведущий редактирует файл config.mk При этом он меняет запись HANDOFF_BASE := $(SOCEDS_DEST_ROOT)\examples\hardware\cv_soc_devkit_ghrd на вот такую HANDOFF_BASE := С:\demo\cv_soc_devkit_ghrd Остальные записи ссылаются на $(HANDOFF_BASE)\. У меня среда версии 16.1 И в моем файле config.mk нет такой записи. Есть только такая SOCEDS_DEST_ROOT ?= $(SOCEDS_ROOT) Цитата # Must be set to either SDMMC, SDMMC_FAT, QSPI, or NAND BOOT_SOURCE := QSPI
# Must be set to either C5 (Cyclone5), A5 (Arria5), or A10 (Arria10) DEVICE := C5
# Set this to have MPL print status to serial out, or 0 for no status PRINTF_UART := 1
# Must be either ARM or GNU COMPILER := GNU
# Enable this to indicate that MPL should load the FPGA LOAD_FPGA := 1
# Enable the MPL to boot the HPS device from the FPGA BOOT_FROM_FPGA := 0
SOCEDS_DEST_ROOT ?= $(SOCEDS_ROOT) Что мне сделать, чтобы пример из видео заработал?
|
|
|
|
|
May 5 2017, 18:47
|

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

|
Цитата(nmurzin @ May 5 2017, 17:46)  Видео сделано для среды версии 14.1 В видео ведущий редактирует файл config.mk При этом он меняет запись HANDOFF_BASE := $(SOCEDS_DEST_ROOT)\examples\hardware\cv_soc_devkit_ghrd на вот такую HANDOFF_BASE := С:\demo\cv_soc_devkit_ghrd
Что мне сделать, чтобы пример из видео заработал? HANDOFF_BASE задаётся в файле Makefile, который лежит в одной папке с config.mk. Эта переменная должна указывать на директорию проекта с папкой hps_isw_handoff. А в config.mk задаются другие важные параметры загрузчика - выставьте их правильно. Цитата И еще, зачем они вызывают BSP Editor и генерируют BSP? В результате создается поддиректория <Директория проекта>\software\spl_bsp Но они дальше не пользуются содержимым поддиректории \software\spl_bsp Они работают только с Altera-SoCFPGA-HardwareLib-MPL. Затем, что файлы BSP непосредственно используются MPL при его компиляции, на них указывает другая переменная из Makefile: HANDOFF_DIR ?= $(HANDOFF_BASE)/software/spl_bsp/generatedЛюбому загрузчику необходима информация о сгенерированной системе, чтобы правильно её проинициализировать. Эти данные предоставляются с помощью BSP-Editor.
|
|
|
|
|
May 6 2017, 04:34
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
QUOTE (nmurzin @ May 5 2017, 20:46)  Что мне сделать, чтобы пример из видео заработал? Тут придётся поредактировать. QUOTE (nmurzin @ May 5 2017, 22:03)  И еще, зачем они вызывают BSP Editor и генерируют BSP? В результате создается поддиректория <Директория проекта>\software\spl_bsp Но они дальше не пользуются содержимым поддиректории \software\spl_bsp Они работают только с Altera-SoCFPGA-HardwareLib-MPL. Я тоже ковырял эту тему, в конце зафиксировал результат, посмотрите, может быть вам что-то пригодится. Больше этого не скажу, не стал дальше копать SoC CV. Проект собирается (только пути к тулчейну и HWLib надо откорректировать). Я его загружал по JTAG, он работает, в т.ч. печатает диагностические сообщения в консоль.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
May 10 2017, 13:53
|

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

|
В той же папке с примерами в SoC EDS (в моём случае c:\altera\16.0\embedded\examples\software\), где лежит проект MPL, рядом лежит совсем простой проект Altera-SoCFPGA-HelloWorld-Baremetal. Он просто выводит текст в UART. Попробуйте его собрать, по JTAG загрузить в железо и запустить. В случае со светодиодом надо ещё предварительно настроить нужный порт GPIO. Пример для двух пинов - один вход с кнопкой, второй - выход со светодиодом (HardwareLib): Код // Setup GPIOs // Reset GPIO module alt_gpio_init(); ALT_GPIO_CONFIG_RECORD_t gpio_init_pins[] = { // HPS_LED { ALT_GPIO_1BIT_53, ALT_GPIO_PIN_OUTPUT, ALT_GPIO_PIN_LEVEL_TRIG_INT, ALT_GPIO_PIN_ACTIVE_LOW, ALT_GPIO_PIN_NODEBOUNCE, ALT_GPIO_PIN_DATAZERO }, // HPS_KEY { ALT_GPIO_1BIT_54, ALT_GPIO_PIN_INPUT, ALT_GPIO_PIN_LEVEL_TRIG_INT, ALT_GPIO_PIN_ACTIVE_LOW, ALT_GPIO_PIN_DEBOUNCE, ALT_GPIO_PIN_DATAZERO } }; alt_gpio_group_config(gpio_init_pins, ARRAY_COUNT(gpio_init_pins));
|
|
|
|
|
May 11 2017, 08:23
|
Частый гость
 
Группа: Участник
Сообщений: 94
Регистрация: 24-11-10
Из: г.Зеленоград
Пользователь №: 61 141

|
Спасибо <Sonycman> только что увидел твой ответ, буду пробовать. А пока наткнулся вот на что. Смотрю данное видео в котором ведущий создает Bare Metal приложение. https://www.youtube.com/watch?v=GHuM2mBlLxcВ среде eclipse он кликнул пункт меню File->New->C_Project А в диалоговом окне "C Project" сделал следующий выбор. Project Type: Bare Metal Executable ;;НО у меня нет такого варианта!!! ToolChains: DS-5 GCC У меня есть только такой вариант. Project Type: Executable А в ToolChains доступны следующие варианты: ARM Compiler 5 (DS-5 built-in) ARM Compiler 6 (DS-5 built-in) Cygwin GCC GCC 4.x [arm-linux-gnueabihf](DS-5 built-in) MinGW GCC Какой из них выбрать? Чем они отличаются?
|
|
|
|
|
May 11 2017, 17:55
|
Частый гость
 
Группа: Участник
Сообщений: 94
Регистрация: 24-11-10
Из: г.Зеленоград
Пользователь №: 61 141

|
Цитата совсем простой проект Altera-SoCFPGA-HelloWorld-Baremetal. Он просто выводит текст в UART.
Попробуйте его собрать, по JTAG загрузить в железо и запустить Не получается загрузить. То ли я что-то не понимаю, то ли у меня среда не рабочая. Скачивал я SoC EDS где положено с официального сайта. Лицензия тоже имеется. Импортирую проект Altera-SoCFPGA-HelloWorld-Baremetal из архива в свое рабочее пространство. Компилирую Project->Build Project Дальше хочу залить и выполнить. Выбираю Project->Debug as Выбираю пункт DS-5 Debugger, выбираю мою ПЛИС, включаю KIT. Далее в одном из выпадающих списков выбираю USB-Blaster и жму кнопку "Browse" Должно появится окошко, в котором я должен выбрать свой USB Blaster. Окошко-то появляется, но оно пустое, и не просто пустое а с сообщением о том что не удалось запустить обозреватель и советует смотреть некий Error log. Я не понимаю, это поведение связано с тем что у меня со средой что-то не так? Или все дело в настройках проекта, которые тоже надо как-то настраивать? А как? Ну должен же быть простой алгоритм действий, чтобы с чистого листа создать и запустить программу "Hello World". Пожалуйста помогите преодолеть этот тупик.
|
|
|
|
|
May 11 2017, 18:37
|

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

|
Цитата(nmurzin @ May 11 2017, 21:55)  Импортирую проект Altera-SoCFPGA-HelloWorld-Baremetal из архива в свое рабочее пространство. Компилирую Project->Build Project Дальше хочу залить и выполнить. Выбираю Project->Debug as Выбираю пункт DS-5 Debugger, выбираю мою ПЛИС, включаю KIT. Далее в одном из выпадающих списков выбираю USB-Blaster и жму кнопку "Browse" Должно появится окошко, в котором я должен выбрать свой USB Blaster. Окошко-то появляется, но оно пустое, и не просто пустое а с сообщением о том что не удалось запустить обозреватель и советует смотреть некий Error log.
Я не понимаю, это поведение связано с тем что у меня со средой что-то не так? Или все дело в настройках проекта, которые тоже надо как-то настраивать? А как?
Ну должен же быть простой алгоритм действий, чтобы с чистого листа создать и запустить программу "Hello World". Пожалуйста помогите преодолеть этот тупик. Работаете под Windows, насколько я понимаю? Запускаете DS-5 напрямую? Через иконку Eclipse for DS-5? Это неправильно. Его надо запускать из под консоли SoC EDS Command Shell. В ней набираете eclipse - запустится DS-5. Консоль активирует системные переменные окружения, без которых среда правильно работать не будет. Попробуйте
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|