Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Microblaze - создание и назначение ELF-файла
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
AVR
Добрый день!
(почитал форум прежде чем задать вопрос и рыл интернет)
У меня установлена Xilinx ISE 13.2 - System Edition (на kUbuntu 11.10 64-bit). Необходимо добавить процессор в свой проект (уже есть опыт работы с nios2 + uClinux).

Все это (список ниже) тщательным образом внимательно отсмотрено и осмыслено, туториалы СТАРЫЕ, многое не сходится.
В частности я не вижу у меня вкладки Applications, только Project и IP Catalog, вижу Elf Files - там пустые строки и для симуляции и для impl, не назначить ничего.
Hardware->Generate Netlist - работает, даже синтезируется и есть файл прошивки в итоге.
Далее, Export & Launch SDK - работает, запускается Eclipse, создается проект, в нем ELF файл генерируется, это хорошо.

Вопросы:

1) Как в Linux запускать Xilinx SDK? Чтобы не приходилось делать export раз за разом, и сразу запускать Eclipse, есть в где то в гуях ссылка или можно из консоли? ise, impact, xps - это для platform studio, а как из консоли Linux запустить SDK? settings64.sh - вызываются, должно видеть весь софт.

2) Как назначить созданной системе microblaze - ELF файл? Так и не смог отыскать способа сделать эту элементарную вещь.
Есть ELF, есть синтезированный microblaze, а сращивать как?

3) Есть ли видеоруководство по свежим версиям XPS? Или PDF-туториал? Официальные - тоже устарели, или не там смотрел.

4) Может ли быть что что-то не установлено - потому то я и не вижу каких-то вещей и потому проблемы?

Надеюсь ответы на эти вопросы помогут новичкам освоить новые версии XPS rolleyes.gif

Цитата(dspx @ Dec 30 2009, 22:11) *
Советую посмотреть обучалки на YouTube
Xilinx EDK Tutorial - A Guided Tour of the Platform Studio - Part 1
Xilinx EDK Tutorial - A Guided Tour of the Platform Studio - Part 2
Xilinx EDK Tutorial - A Guided Tour of the Platform Studio - Part 3
Xilinx EDK Tutorial - Adding custom IP to an EDK Project - Part 1
Xilinx EDK Tutorial - Adding custom IP to an EDK Project - Part 2
Xilinx EDK Tutorial - Adding custom IP to an EDK Project - Part 34
Xilinx EDK Tutorial - Adding MPMC to an EDK Project - Part 14
Xilinx EDK Tutorial - Adding MPMC to an EDK Project - Part 2
Xilinx EDK Tutorial - Adding MPMC to an EDK Project - Part 3
Xilinx EDK Tutorial - Integrating EDK and ISE Projects
Xilinx EDK Tutorial - Using the Base System Builder Wizard - Part 1
Xilinx EDK Tutorial - Using the Base System Builder Wizard - Part 2
Maverick
Цитата(AVR @ Nov 9 2011, 01:01) *
Добрый день!

Цитата
Цитата(dspx @ Dec 30 2009, 22:11) *
Советую посмотреть обучалки на YouTube
Xilinx EDK Tutorial - A Guided Tour of the Platform Studio - Part 1
Xilinx EDK Tutorial - A Guided Tour of the Platform Studio - Part 2
Xilinx EDK Tutorial - A Guided Tour of the Platform Studio - Part 3
Xilinx EDK Tutorial - Adding custom IP to an EDK Project - Part 1
Xilinx EDK Tutorial - Adding custom IP to an EDK Project - Part 2
Xilinx EDK Tutorial - Adding custom IP to an EDK Project - Part 34
Xilinx EDK Tutorial - Adding MPMC to an EDK Project - Part 14
Xilinx EDK Tutorial - Adding MPMC to an EDK Project - Part 2
Xilinx EDK Tutorial - Adding MPMC to an EDK Project - Part 3
Xilinx EDK Tutorial - Integrating EDK and ISE Projects
Xilinx EDK Tutorial - Using the Base System Builder Wizard - Part 1
Xilinx EDK Tutorial - Using the Base System Builder Wizard - Part 2


они имеются в "закормах Родины"
PS Просто для сведения...
AVR
Большое спасибо, однако все они неактуальны, все до единого!
Похоже изменилось слишком много, список самых критичных вопросов я в своем посте написал...

Цитата(Maverick @ Nov 9 2011, 13:36) *
они имеются в "закормах Родины"
PS Просто для сведения...
Mad_max
Цитата(AVR @ Nov 9 2011, 02:01) *
1) Как в Linux запускать Xilinx SDK? Чтобы не приходилось делать export раз за разом, и сразу запускать Eclipse, есть в где то в гуях ссылка или можно из консоли? ise, impact, xps - это для platform studio, а как из консоли Linux запустить SDK? settings64.sh - вызываются, должно видеть весь софт.


XPS (Xilinx Platform Studio) состоит из EDK (Embedded Development KIT) и SDK (Softwere Development KIT).
Первый для создания железа, второй для софта. Если XPS нормально поставили, то SDK должен быть.

Цитата(AVR @ Nov 9 2011, 02:01) *
2) Как назначить созданной системе microblaze - ELF файл? Так и не смог отыскать способа сделать эту элементарную вещь.
Есть ELF, есть синтезированный microblaze, а сращивать как?


Это делается в SDK. В EDK должна быть вкладка Export to SDK (или как-то так) там на базе аппаратной части (созданной в EDK) вы создаете софт.
Пишите программу, компилите (в линковщике указываете или оперативную память или память на BRAM), и вот тогда получаете свой .elf файл.
Далее .elf надо слить с .bit файлом вашего проекта. И в XPS и в ISE есть соответствующие кнопки (Init BRAM).
Из консоли это можно сделать утилитой data2mem.
Документов как это делать куча на сайте ксайлинкса. Для всех версий примерно одно и тоже, вы просто плохо ищете.
наберите в поиске EDK tool and concepts.

Цитата(AVR @ Nov 9 2011, 02:01) *
3) Есть ли видеоруководство по свежим версиям XPS? Или PDF-туториал? Официальные - тоже устарели, или не там смотрел.

Не понятно как документы на последнюю версию ISE и XPS могут уже устареть.

Цитата(AVR @ Nov 9 2011, 02:01) *
4) Может ли быть что что-то не установлено - потому то я и не вижу каких-то вещей и потому проблемы?

Посмотрите на форуме xilinx в разделе Embedded Solutions или Design Tools, вы не первый у кого такие проблемы.


Удачи!


Andrey Pesoshin
AVR
1) Есть некоторая интеграция между XPS и EDK - состоит в экспорте файлов "железа" в EDK. То есть запускать EDK отдельно можно, только обновленные файлы железа, соответствующие системе, все равно придется экспортировать каждый раз через XPS. Я лично предпочитаю открыть XPS, нажать на Export to SDK, и уже быть уверенным, что system.bit, с которым работает SDK, у меня всегда актуальный.
2) Там где вы видите вкладку Elf files - можно через контекстное меню, вызываемое правой кнопкой мыши, назначить elf-файлы, которые загружаются в BRAM (для реализации и для симуляции). После этого нажимаете кнопку Init BRAMs (или Update Bitstream в 13.3) и вуаля - появляется файл implementation/download.bit - состоящий из аппаратной прошивки с BRAM'ами, заполненными программным кодом.
3) Мое мнение в том, что Xilinx считает многие моменты очевидными и не дает на все прямые руководства к действию sm.gif
4) Скорее всего все установлено
AVR
Цитата(Andrey Pesoshin @ Nov 10 2011, 12:51) *
2) Там где вы видите вкладку Elf files - можно через контекстное меню, вызываемое правой кнопкой мыши, назначить elf-файлы, которые загружаются в BRAM (для реализации и для симуляции). После этого нажимаете кнопку Init BRAMs (или Update Bitstream в 13.3) и вуаля - появляется файл implementation/download.bit - состоящий из аппаратной прошивки с BRAM'ами, заполненными программным кодом.


Контекстное меню - в том то и дело что вкладка Elf files - там есть - пустые строки sim и impl, контекстное меню не вызвать, именно в этом и состоит проблема. Но ведь я сделал ELF файл, лежит он.
Очень хотелось бы понять - а что же именно надо сделать чтобы он там назначился. Если контекстное меню не работает, значит по всей видимости, либо какой-то шаг не выполнен.

И еще вопрос - я когда создаю проект в SDK - там появляется целых три проекта - это нормально, все правильно? sm.gif
Возможно еще и в этом проблема есть - я компилирую не тот, активирую не тот и т.п.
Не для того вызвал generate linker script...

2 Mad_max, Andrey Pesoshin - спасибо за ответы!
Andrey Pesoshin
AVR
Давайте я вам скриншоты покажу как elf выбирается у меня в XPS.

Контекстное меню может не работать, если Xilinx ISE криво установлен. Я когда на убунту запускал EDK - постоянно смотрел в консоль - он по многим шагам выдавал неадекватные ошибки, вроде вручную установить в скрипте запуска EDK локаль, пару глобальных переменных и т.д.

3 проекта - это экспортированный hw, BSP и сам application. Это нормально. Для тестирования Вы можете и из SDK код hw+sw в плату загружать - там есть кнопка Program FPGA, там выбираете какой sw код прописать в BRAMы. По умолчанию - это bootloop.
AVR
Цитата(Andrey Pesoshin @ Nov 10 2011, 15:52) *
Контекстное меню может не работать, если Xilinx ISE криво установлен. Я когда на убунту запускал EDK - постоянно смотрел в консоль - он по многим шагам выдавал неадекватные ошибки, вроде вручную установить в скрипте запуска EDK локаль, пару глобальных переменных и т.д.

Спасибо!!! Скриншоты в тему.
Именно это контекстное меню я и имел ввиду, оно у меня не было доступно!

Локаль у меня так стоит: export LANG=C в .bashrc, как раз проблему словил из за локали еще в ISE, было дело sm.gif

Хорошо, я посмотрю обязательно вечером что там в консоль ругается и напишу сюда ответ и как я это исправил.

P.S.
Ух, а я уже на свои /dev/hands грешил, или что у меня отсутствует /dev/моск, а оно вот что оказывается smile3046.gif
AVR
получается что Elf Files контекстное меню появляется только если создавать "систему" в XPS, а не через ISE, значит что-то не так делаю

вопрос: возможно ли создать полностью автономно отдельно систему на MicroBlaze, а потом только ее уже включить в свой проект из ISE и тупо прислюнявить остальную логику к нему, но уже потом, в ISE?
gvest
Цитата(AVR @ Nov 11 2011, 05:36) *
получается что Elf Files контекстное меню появляется только если создавать "систему" в XPS, а не через ISE, значит что-то не так делаю

вопрос: возможно ли создать полностью автономно отдельно систему на MicroBlaze, а потом только ее уже включить в свой проект из ISE и тупо прислюнявить остальную логику к нему, но уже потом, в ISE?

Может поможеь: в ISE - добавьте в проект elf-файл, именно через add source (или как там, точно не помню, вообщем так же как vhdl\verilog-файлы добавляете), он сам подставится (назначится) к микропроцессорной системе...Давно дело было, но именно таким методом я указывал в ISE - какой elf должен быть в итоговой прошивке...
AVR
Цитата(gvest @ Nov 11 2011, 08:43) *
Может поможеь: в ISE - добавьте в проект elf-файл, именно через add source (или как там, точно не помню, вообщем так же как vhdl\verilog-файлы добавляете), он сам подставится (назначится) к микропроцессорной системе...Давно дело было, но именно таким методом я указывал в ISE - какой elf должен быть в итоговой прошивке...

Спасибо, вечером попробую, отпишусь.
Andrey Pesoshin
Цитата(AVR @ Nov 11 2011, 02:36) *
вопрос: возможно ли создать полностью автономно отдельно систему на MicroBlaze, а потом только ее уже включить в свой проект из ISE и тупо прислюнявить остальную логику к нему, но уже потом, в ISE?

Возможно. При создании МПС в EDK - вы создаете элемент system верхнего уровня. Порты этого элемента мапите на ноги ПЛИС и на основе его создаете прошивку.
Этот же элемент можно использовать в другом ISE-проекте, в котором верхним уровнем будет другой модуль, написанный, например, на VHDL. В этом случае в EDK-проект добавляются некоторые настройки, которые диктуют Xilinx-инструментам синтезировать МПС уже под управлением ISE proj nav, а не XPS. (это ограничение можно снять в дальнейшем руками правкой xmp-файла).

Тут уже, на мой взгляд, больше вопрос проектировщика из разряда про "курицу и яйцо" и вопрос комфортности разработки. Инструментарий в ISE более развит - можно прямо из него вызвать timing analyzer, planahead и т.д., однако по части интеграции sw+hw в ISE-проекте верхнего уровня у меня возникали проблемы - не получалось без полной перегенерации прошивки обновить sw-часть системы.
AVR
ясн, спасибо
кстати совет добавить ELF в проект - помог на 100%

Цитата(Andrey Pesoshin @ Nov 12 2011, 14:21) *
Возможно. При создании МПС в EDK - вы создаете элемент system верхнего уровня. Порты этого элемента мапите на ноги ПЛИС и на основе его создаете прошивку.
Этот же элемент можно использовать в другом ISE-проекте, в котором верхним уровнем будет другой модуль, написанный, например, на VHDL. В этом случае в EDK-проект добавляются некоторые настройки, которые диктуют Xilinx-инструментам синтезировать МПС уже под управлением ISE proj nav, а не XPS. (это ограничение можно снять в дальнейшем руками правкой xmp-файла).

Тут уже, на мой взгляд, больше вопрос проектировщика из разряда про "курицу и яйцо" и вопрос комфортности разработки. Инструментарий в ISE более развит - можно прямо из него вызвать timing analyzer, planahead и т.д., однако по части интеграции sw+hw в ISE-проекте верхнего уровня у меня возникали проблемы - не получалось без полной перегенерации прошивки обновить sw-часть системы.


еще раз благодарю всех за участие в топике
уже сижу счастливый с собранным по моему вкусу MicroBlaze-ом, светодиод по программе мигает, в RS232 printf-ы валяется - сказка biggrin.gif

а всего то надо было добавить ELF файл в проект ISE (типа как .v .ucf и прочие файлы)...
странно конечно что так, но теперь буду знать rolleyes.gif
xor.kruger
Можно еще "подсунуть" elf-файл bit'нику вручную. Делается это с помощью утилиты data2mem
Вот рабочий пример:
Код
data2mem –bm system_bd.bmm –bt download.bit –bd srec_bootloader_0.elf tag microblaze_0 –o b system_bram_initialised.bit
dm.pogrebnoy
Цитата(Andrey Pesoshin @ Nov 12 2011, 14:21) *
Возможно. При создании МПС в EDK - вы создаете элемент system верхнего уровня. Порты этого элемента мапите на ноги ПЛИС и на основе его создаете прошивку.
Этот же элемент можно использовать в другом ISE-проекте, в котором верхним уровнем будет другой модуль, написанный, например, на VHDL. В этом случае в EDK-проект добавляются некоторые настройки, которые диктуют Xilinx-инструментам синтезировать МПС уже под управлением ISE proj nav, а не XPS. (это ограничение можно снять в дальнейшем руками правкой xmp-файла).

Тут уже, на мой взгляд, больше вопрос проектировщика из разряда про "курицу и яйцо" и вопрос комфортности разработки. Инструментарий в ISE более развит - можно прямо из него вызвать timing analyzer, planahead и т.д., однако по части интеграции sw+hw в ISE-проекте верхнего уровня у меня возникали проблемы - не получалось без полной перегенерации прошивки обновить sw-часть системы.


Что бы не плодиьт тем, спрошу здесь.

Если я создаю МПС непосредственно в EDK он в нем синтезируется как модуль верхнего уровня, в нетлисте которого пристутсвтуют на входах и выходах различные буферы типа IBUF, OBUF, IBUFG... При попытке использовать нетлист МПС в моем проекте в ISE, в котором присутствует дополнительная логика, синтезатор ругается что внешний сигнал (например тактовый) заходит не только на входной буфер IBUFG, но и куда-то еще, что врпинципе и логично.

Пытаюсь победить эту проблему, и заставить генерировать в EDK нетлист без буферов, но пока не получается. Может быть можно оптимизировать общий нетлист? Вообщем ищу решения.

PS: ISE 13.1

Нажмите для просмотра прикрепленного файла
Apast
Цитата(dm.pogrebnoy @ Jan 28 2012, 14:46) *
Что бы не плодиьт тем, спрошу здесь.

Если я создаю МПС непосредственно в EDK он в нем синтезируется как модуль верхнего уровня, в нетлисте которого пристутсвтуют на входах и выходах различные буферы типа IBUF, OBUF, IBUFG... При попытке использовать нетлист МПС в моем проекте в ISE, в котором присутствует дополнительная логика, синтезатор ругается что внешний сигнал (например тактовый) заходит не только на входной буфер IBUFG, но и куда-то еще, что врпинципе и логично.

Пытаюсь победить эту проблему, и заставить генерировать в EDK нетлист без буферов, но пока не получается. Может быть можно оптимизировать общий нетлист? Вообщем ищу решения.


В данной ситуации, т.е. когда проект уже создан, найдите в директории проекта EDK файл с расширением .XMP (типа system.smp), он текстовый,
и в нем исправте строку InsertNoPads: 0 на InsertNoPads: 1, после этого сделайте ребилд проекта в EDK. Заодно можете посмотреть в свойствах проекта, он теперь будет как субмодуль.
Но есть одна проблема, некоторые модули типа контроллер внешней памяти и т.п., особенно с двунаправленными шинами, принципиально содержат буферы и они не убираются.

dm.pogrebnoy
Есть у меня подозрение, что лучше, чем я уже делал, не получится. А делал я так. Создавал проект в ISE и там собирал заготовку для МПС, т.е. верхний уровень и микроблейз в нем, и работал c процессором уже из ISE. Так все прекрасно работало, я в Active-HDL спокойно мог использовать нетлисты этого процессора. Но вдруг мне пришла идея отказаться от ISE, и делать МПС сразу в XPS, но так ничего не выходит. InsertNoPads: 1 поставил, проблема с буферами исчезла, появились другие, такие что даже разбираться стало неохота. Решил пользоваться как раньше.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.