Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос: Одновременный запуск 2-х ядер Microblaze
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
lecovich
Всем доброго времени суток! Подскажите пожалуйста, как можно запусть два ядра софт-процессора одновременно? По отдельности - все замечательно отлаживается, зашивается в плату (3a1800dsp) только через бутлуп.

Попытаюсь конкретизировать: SDK 11.5, по софт-платформе на каждое ядро, на каждой платформе - по одному "Managed Make C Appication Project" типа helloworld. Так вот, как мне их запустить оба сразу? Может быть можно как-то вызвать из одного другой? Пожалуйста, подскажите!
Mad_max
Сложно, конечно, представить зачем нужно два софт процессора на одном кристалле.
Ну ладно... imho под дебагом, тобишь в SDK, запустить оба не получится.
А вот для каждого процессора в загрузочную BRAM поместить небольшую тестовую программку можно.
Тогда, например, при наличии двух COM портов, запустите свой helloword на каждом из процессоров.

P.S. Вообще интересен маршрут создания такого явления, сначала создать в XPS одину платформенную часть, потом
ngc файлы подтягивать в другой проект, который опять же имеет процессор? Или как у Вас такое получилось?
lecovich
Цитата(Mad_max @ May 24 2010, 14:25) *
Сложно, конечно, представить зачем нужно два софт процессора на одном кристалле.

Тех. задание начальника sad.gif

Цитата(Mad_max @ May 24 2010, 14:25) *
P.S. Вообще интересен маршрут создания такого явления, сначала создать в XPS одину платформенную часть, потом
ngc файлы подтягивать в другой проект, который опять же имеет процессор? Или как у Вас такое получилось?

В XPS начиная с версии 11.х в BSB мастере есть возможность создавать мультипроцессорную систему...
yes
Цитата(lecovich @ May 24 2010, 14:15) *
Попытаюсь конкретизировать: SDK 11.5, по софт-платформе на каждое ядро, на каждой платформе - по одному "Managed Make C Appication Project" типа helloworld. Так вот, как мне их запустить оба сразу? Может быть можно как-то вызвать из одного другой? Пожалуйста, подскажите!


что означает "сразу"? если одновременность - то после сброса работают одновременно

если доступ к обоим ядрам, то выбор ядра задается ключем в строке запуска дебагера
у альтеры есть
Creating Multiprocessor Nios II Systems Tutorial

там есть и возможность пошаговой отладки обоих ядер одновременно - нужно где-то включать в настройках ниоса (сам не пользовался)

2 Mad_max
часто пользую несколько ядер
1) у одного может не хватать производительности
2) если есть софт под каждое ядро - проще поставить два ядра, чем софт переписать

---------------

upd : про ксайлинс, сорри
ну там тоже есть 100% у них ядра РРС-шные есть по 2 ядра в кристале
lecovich
Цитата(yes @ May 24 2010, 15:12) *
что означает "сразу"? если одновременность - то после сброса работают одновременно

если доступ к обоим ядрам, то выбор ядра задается ключем в строке запуска дебагера


Если честно, то и то, и другое... хотелось бы и в отладчике оба ядра сразу погонять, и посмотреть, как все работает "в живую"

По ходу дела столкнулся вот с какой проблемой... В диалоге tools->program fpga в качестве initiazation ELF указываю bootloop. Если же указать путь к генерируемому sdk elf-файлу, то elfcheck выпадает с вот такой ошибкой
Код
Running command...
elfcheck -hw C:/_work/_xilinx/test4/SDK/SDK_Export/hw/system.xml -mem BRAM -mode bootload -pe microblaze_1 C:/_work/_xilinx/test4/SDK/SDK_Workspace/t1/Debug/t1.elf

elfcheck
Xilinx EDK 11.5 Build EDK_LS5.70
Copyright (c) 1995-2009 Xilinx, Inc.  All rights reserved.

Command Line: elfcheck -hw C:/_work/_xilinx/test4/SDK/SDK_Export/hw/system.xml
-mem BRAM -mode bootload -pe microblaze_1
C:/_work/_xilinx/test4/SDK/SDK_Workspace/t1/Debug/t1.elf

ELF file    : C:/_work/_xilinx/test4/SDK/SDK_Workspace/t1/Debug/t1.elf
ERROR:EDK:3165 - elfcheck failed!
The following sections did not fit into Processor BRAM memory:
    Section .jcr (0x8800FB34 - 0x8800FB37)
    Section .eh_frame (0x8800FB30 - 0x8800FB33)
    Section .dtors (0x8800FB28 - 0x8800FB2F)
    Section .ctors (0x8800FB20 - 0x8800FB27)
    Section .data (0x8800F5F0 - 0x8800FB1F)
    Section .rodata (0x8800F0C0 - 0x8800F5EF)
    Section .fini (0x8800F0A0 - 0x8800F0BF)
    Section .init (0x8800F078 - 0x8800F09F)
    Section .text (0x88000000 - 0x8800F077)

Try using the linker script generation tools to generate an ELF that maps
correctly to your hardware design.
Failed to program the FPGA.
Mad_max
UG642, там почитайте про data2mem утилиту.
Тогда отпадет надобность в использование всех этих окошек для заливки
прошивки с BRAM памятью инициализированной вашей программой.

Но для отладки в SDK вам этого не надо, потому что дебагер позволяет инструкции напрямую записывать
в SDRAM, а потом уже оттуда их выполнять (это собственно вы сообщаете когда генерируете линкер скрипт).
lecovich
smile3046.gif поковыряюсь на счет data2mem...
Цитата
Но для отладки в SDK вам этого не надо

вопрос изначально стоял не про отладку, а про одновременный запуск. С отладкой то как раз проблем и не возникакетsmile.gif
lecovich
Для тех, кто столкнулся с такой же бедой - решил я свою проблему: заново сконфигурировал SoC, добавил по 64К BRAM'a каждому ядру, в tools->generate linker script указал в качестве памяти для размещения програм ilmb_cntlr_dlmb_cntlr и в tools->program fpga в качестве initialization ELF поставил пути для моих бинарников.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.