реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Установка Reset vector на onchip_memory. (Nios, Cyclon3)
Димитрий
сообщение Jul 19 2010, 04:30
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 184
Регистрация: 21-03-06
Из: Нижний Новгород
Пользователь №: 15 435



При указании 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. и как указать в этом файле запуск основной программы.
А может все просто надо тока узнать/указать смещение точки старта моей программы.
В общем пока не совсем ясен этот момент при такой конфигурации, заранее спасибо.
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Jul 19 2010, 09:52
Сообщение #2


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



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


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
Димитрий
сообщение Jul 19 2010, 13:09
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 184
Регистрация: 21-03-06
Из: Нижний Новгород
Пользователь №: 15 435



Цитата(Stewart Little @ Jul 19 2010, 13:52) *
ЕМНИП, надо в BSP установить галку "allow code at reset"

Спасибо то что искал
Go to the top of the page
 
+Quote Post
Alezi
сообщение Jul 20 2010, 04:39
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 8-07-08
Из: Хабаровск
Пользователь №: 38 795



Работаю в 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 для ресета и прерываний, не помогает. Есть какие идеи?
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Jul 20 2010, 07:35
Сообщение #5


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Цитата(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.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
Alezi
сообщение Jul 26 2010, 01:34
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 8-07-08
Из: Хабаровск
Пользователь №: 38 795



Сделал новый BSP, программа запустилась. В SOPC в процессоре reset vector указывает на epcs контроллер. Как я понимаю этот процесс (an458 Alternative Nios II Boot Methods) ведет так или иначе к копированию имеющейся программы в ОЗУ и передаче ей упраления. Возможно ли выполнить процесс копирования обратно в EPCS, чтобы выполнять программу из нее?
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Jul 30 2010, 14:55
Сообщение #7


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



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

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


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 10th July 2025 - 12:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01419 секунд с 7
ELECTRONIX ©2004-2016