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

 
 
> Прерывания, Хелп
Muxamor
сообщение Feb 21 2007, 09:00
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 289
Регистрация: 4-05-05
Из: Novosibirsk
Пользователь №: 4 722



Понадобилось прерывание от UART0 и всплыла следующая проблема, так как у меня программа записывается не с начало внутренней флэшки а с адреса 40002000 из за этого не правильно обрабатывается прерывание. Если писать прогу с начало тоесть с адреса 40000000 то все отлично работает.
Подскажите где нужно подправить . help.gif
Камень STR711FR2


--------------------
Бубен - однако штука шаманская!!!

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Muxamor
сообщение Feb 21 2007, 10:03
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 289
Регистрация: 4-05-05
Из: Novosibirsk
Пользователь №: 4 722



Дак я и спрашиваю что нужно подправить чтобы прерывание работало когда прошивку я заливаю с адреса 40002000?


--------------------
Бубен - однако штука шаманская!!!

Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 21 2007, 10:38
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Muxamor @ Feb 21 2007, 09:03) *
Дак я и спрашиваю что нужно подправить чтобы прерывание работало когда прошивку я заливаю с адреса 40002000?
ручками копировать ваши вектора в ОЗУ и делать ремап, чтобы они оказались начиная с адреса 0.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Muxamor
сообщение Feb 22 2007, 08:16
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 289
Регистрация: 4-05-05
Из: Novosibirsk
Пользователь №: 4 722



Цитата(Сергей Борщ @ Feb 21 2007, 13:38) *
Цитата(Muxamor @ Feb 21 2007, 09:03) *

Дак я и спрашиваю что нужно подправить чтобы прерывание работало когда прошивку я заливаю с адреса 40002000?
ручками копировать ваши вектора в ОЗУ и делать ремап, чтобы они оказались начиная с адреса 0.


Ремап понятно. А вот как пернести вектора в 0 адрес по подробней плиз пожно и примечик если у кого есть ?


--------------------
Бубен - однако штука шаманская!!!

Go to the top of the page
 
+Quote Post
Ivan_Kov
сообщение Feb 22 2007, 10:41
Сообщение #5


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

Группа: Свой
Сообщений: 174
Регистрация: 30-10-06
Из: г. Курск
Пользователь №: 21 787



Цитата(Muxamor @ Feb 22 2007, 08:16) *
Ремап понятно. А вот как пернести вектора в 0 адрес по подробней плиз пожно и примечик если у кого есть ?


В начало RAM (адрес 0x20000000) скопировать вектора прерываний (осмелюсь предположить, что это 64 байта из 0x40002000). Для проецирования RAM на адрес 0, в регистре PCU_BOOTCR (BOOTCONF) установить 2 младших бита = 01b.

В качестве примера могу дать загрузчик ucLinux для str71x, смотрите файл "71x_init.s".Прикрепленный файл  71xboot_R10.zip ( 74.24 килобайт ) Кол-во скачиваний: 96
Go to the top of the page
 
+Quote Post



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

 


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


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