Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Установка Reset vector на onchip_memory. (Nios, Cyclon3)
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Димитрий
При указании reset vector на epcs контролер а exception на onchip_memory все грузится и работает правильно. В силу того что используется только встроенная память хочу убрать загрузчик и установить reset vector сразу на onchip_memory. Устанавливаю, но программа не запускается. В исходниках на бутлоадер нулевое смещение указано так
CODE

#include "boot_loader.h"

// |
// | all aliases of things the linker or the compiler
// | or Tim Allen might expect to find at offset zero
// | of some code. --dvb
// |

.global reset
.global _start
.global main

.global end_of_boot_copier

reset:
_start:
main:
// Clear the CPU's status-register, thereby disabling interrupts.
// This is redundant after a "real" hardware-reset operation, but
// people who deliberately jump-to-reset may derive some benefit from
// this. And, if not, at least it doesn't hurt anyone.
//
wrctl status, r_zero
......

т.е. reset:. Вопрос следующий
1. мне нужно прикрепить к моему проекту некий файл который запускает систему?
2. и как указать в этом файле запуск основной программы.
А может все просто надо тока узнать/указать смещение точки старта моей программы.
В общем пока не совсем ясен этот момент при такой конфигурации, заранее спасибо.
Stewart Little
ЕМНИП, надо в BSP установить галку "allow code at reset"
Димитрий
Цитата(Stewart Little @ Jul 19 2010, 13:52) *
ЕМНИП, надо в BSP установить галку "allow code at reset"

Спасибо то что искал
Alezi
Работаю в Quartus 9.1, NiosII соответствующий, но при указании reset vector на epcs контроллер, а exception на onchip_memory bsp editor выдает ошибку: altera_linkerx_generator:The section mapping ".entry" maps to a memory region "epcs_flash_controller_0" which is not the required lenght "0x20".
Смещение в sopc для процессора сделал 0x0 для ресета и прерываний, не помогает. Есть какие идеи?
Stewart Little
Цитата(Alezi @ Jul 20 2010, 08:39) *
Работаю в Quartus 9.1, NiosII соответствующий, но при указании reset vector на epcs контроллер, а exception на onchip_memory bsp editor выдает ошибку: altera_linkerx_generator:The section mapping ".entry" maps to a memory region "epcs_flash_controller_0" which is not the required lenght "0x20".
Смещение в sopc для процессора сделал 0x0 для ресета и прерываний, не помогает. Есть какие идеи?

Смещение при назначении вектора сброса на EPCS контроллер должно задаваться автоматически.
Скорее всего у Вас в BSP скопился всякий мусор из-за частых изменений в проекте.
Проверьте распределение адресного пространства в BSP Editor'е, на закладке "Linker Scripts" - куда там указывает reset, и где находится epcs_flash_controller.
В крайнем случае прибейте BSP и создайте его заново, из "правильного" файла .sopcinfo.
Alezi
Сделал новый BSP, программа запустилась. В SOPC в процессоре reset vector указывает на epcs контроллер. Как я понимаю этот процесс (an458 Alternative Nios II Boot Methods) ведет так или иначе к копированию имеющейся программы в ОЗУ и передаче ей упраления. Возможно ли выполнить процесс копирования обратно в EPCS, чтобы выполнять программу из нее?
Stewart Little
Цитата(Alezi @ Jul 26 2010, 05:34) *
Сделал новый BSP, программа запустилась. В SOPC в процессоре reset vector указывает на epcs контроллер. Как я понимаю этот процесс (an458 Alternative Nios II Boot Methods) ведет так или иначе к копированию имеющейся программы в ОЗУ и передаче ей упраления. Возможно ли выполнить процесс копирования обратно в EPCS, чтобы выполнять программу из нее?

Alternative Nios II Boot - это из другой оперы. Эта штука позволяет Вам стартовать различные ниосовские приложения по выбору (выбор определяется каким-либо внешним управлением).
К процессу старта из EPCS это отношения не имеет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.