Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cyclone V SoC bare metal amp system
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
kuposatina
Необходимо запустить две разные программы на двух ядрах Cyclone V SoC. Не могу найти никакой конкретной информации о том как это сделать. Понятно что по умолчанию программа запускается с ядра 0, в это время ядро 1 находится в ресете. Есть два регистра связанные с этой темой: mpumodrst в котором можно убрать ресет с ядра 1, cpu1startaddr в котором задается начальное значение PC ядра 1. Как я понимаю все должно быть просто. Располагаю необходимый для выполнения код программы для 1 ядра (используя scatter файл и команды линкера (я использую arm compiller 5)) по нужному адресу. Затем задаю этот адрес в cpu1startaddr. Затем убираю ресет 1 ядра. Логично?
Но когда ресет убирается (это выполняется в коде 0 ядра) стартовый адрес ядра 1 становится 0x0, а не тот, что я задавал. В прошлогодней теме на этом форуме (https://electronix.ru/forum/index.php?showtopic=133380) писали, что по адресу 0x0 лежит BootROM, но у меня там лежит какая то хрень, неизвестные инструкции (если что, программа стабильно работает на ядре 0). Пробовал делать remap, такое ощущение что эта функция вообще ничего не меняет (наверняка я что-то не так делаю (тупо использую hwlib функции, где там еще можно ошибиться чтоб совсем не было никакого эффекта от функции я не знаю))
Кстати пишу я все это в одном проекте (то есть на выходе один .axf файл (использую DS-5)) Правильно ли это? Может надо делать два отдельных проекта, но как тогда их объединять? В общем такой вопрос, уважаемые. Помогите кто знает, подскажите help.gif
Создаю новую тему, потому что в прошлой так и не было дано полноценного ответа.
doom13
Два ядра - два проекта (две прошивки).
kuposatina
Цитата(doom13 @ May 4 2017, 09:23) *
Два ядра - два проекта (две прошивки).

Можно подробнее об этом? Как вообще это должно работать? Откуда потом загрузится вторая программа? И где она должна храниться? Как вообще все это сделать не имею понятия, везде написано только об использовании ядра 0, это я уже умею biggrin.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.