Перейти к содержанию
    

Установка Reset vector на onchip_memory. (Nios, Cyclon3)

При указании reset vector на epcs контролер а exception на onchip_memory все грузится и работает правильно. В силу того что используется только встроенная память хочу убрать загрузчик и установить reset vector сразу на onchip_memory. Устанавливаю, но программа не запускается. В исходниках на бутлоадер нулевое смещение указано так

#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. и как указать в этом файле запуск основной программы.

А может все просто надо тока узнать/указать смещение точки старта моей программы.

В общем пока не совсем ясен этот момент при такой конфигурации, заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ЕМНИП, надо в BSP установить галку "allow code at reset"

Спасибо то что искал

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Работаю в 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 для ресета и прерываний, не помогает. Есть какие идеи?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Работаю в 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделал новый BSP, программа запустилась. В SOPC в процессоре reset vector указывает на epcs контроллер. Как я понимаю этот процесс (an458 Alternative Nios II Boot Methods) ведет так или иначе к копированию имеющейся программы в ОЗУ и передаче ей упраления. Возможно ли выполнить процесс копирования обратно в EPCS, чтобы выполнять программу из нее?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделал новый BSP, программа запустилась. В SOPC в процессоре reset vector указывает на epcs контроллер. Как я понимаю этот процесс (an458 Alternative Nios II Boot Methods) ведет так или иначе к копированию имеющейся программы в ОЗУ и передаче ей упраления. Возможно ли выполнить процесс копирования обратно в EPCS, чтобы выполнять программу из нее?

Alternative Nios II Boot - это из другой оперы. Эта штука позволяет Вам стартовать различные ниосовские приложения по выбору (выбор определяется каким-либо внешним управлением).

К процессу старта из EPCS это отношения не имеет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...