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

 
 
> Передача управления из бута в программу, еще раз о старом
toweroff
сообщение Feb 25 2013, 10:57
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Добрый день

Вот такой вопрос возник. Управление передается через подобный вызов:
Код
void (*Entry_Point)(void);
Entry_Point = (void(*)(void))(USER_CODE);
Entry_Point();

кстати, еще вопрос сразу - для ядра ARM968E-S значение USER_CODE так же будет (REAL_USER_CODE + 1), как и для CM3?

Потом управление передается по адресу, указанному в линкере как ENTRY_POINT
Но вопрос вот какой. При старте процессора, он находится в Supervisor режиме, когда грузит все регистры, а из бута он попадет на точку входа приложения уже в User/System
Или это нормально, или я что-то не понял и проц нужно перед прыжком переводить в Supervisor режим?
Сколько пересмотрел реализаций бутов для ARM7, CM3 - нигде не увидел явной смены режима работы
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Feb 25 2013, 22:38
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Вариант 2 не годится, т.к. по адресу 0xffff0000 памяти в вашем случае нет.
То есть план такой:
1. включаем TCM
2. внутри __main копируем вектора (да и прочие скоростные вещи, которые не грех в TCM отправить)
3. разрешаем прерывания

P.S. Только 16кБайт - это 0x4000, а не 0x8000. Можно налететь.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 25 2013, 22:58
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(aaarrr @ Feb 26 2013, 02:38) *
Вариант 2 не годится, т.к. по адресу 0xffff0000 памяти в вашем случае нет.
То есть план такой:
1. включаем TCM
2. внутри __main копируем вектора (да и прочие скоростные вещи, которые не грех в TCM отправить)
3. разрешаем прерывания

P.S. Только 16кБайт - это 0x4000, а не 0x8000. Можно налететь.

спасибо, ждал ответа
сегодня уже к обеду попробую воплотить во что-то рабочее. Кстати, теперь уже и понятие TCM и код, более скоростной, в этой области выполняемый, совсем по-другому смотрится

еще раз спасибо, доброго утра, наверное sm.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- toweroff   Передача управления из бута в программу   Feb 25 2013, 10:57
- - kolobok0   Цитата(toweroff @ Feb 25 2013, 14:57) ......   Feb 25 2013, 13:58
- - esaulenka   Цитата(toweroff @ Feb 25 2013, 14:57) для...   Feb 25 2013, 14:05
|- - toweroff   Цитата(esaulenka @ Feb 25 2013, 18:05) Зн...   Feb 25 2013, 14:10
- - SyncLair   Цитата(toweroff @ Feb 25 2013, 14:57) Ско...   Feb 25 2013, 14:16
|- - toweroff   ЦитатаРежимы работы как правило инициализируются в...   Feb 25 2013, 14:25
- - aaarrr   На ResetStart, разумеется: его положение строго фи...   Feb 25 2013, 14:43
|- - toweroff   Цитата(aaarrr @ Feb 25 2013, 18:43) На Re...   Feb 25 2013, 15:07
|- - aaarrr   Цитата(toweroff @ Feb 25 2013, 19:07) Ост...   Feb 25 2013, 15:21
|- - toweroff   Цитата(aaarrr @ Feb 25 2013, 19:21) этот ...   Feb 25 2013, 15:32
- - aaarrr   Вариантов масса: - Использовать п/п загрузчика (в ...   Feb 25 2013, 15:38
- - toweroff   aaarrr, спасибо, пойду разбираться Вот что накопа...   Feb 25 2013, 16:46
- - aaarrr   Выходит, все. Только я бы выделил вектора в отдель...   Feb 25 2013, 16:55
|- - toweroff   Цитата(aaarrr @ Feb 25 2013, 20:55) Выход...   Feb 25 2013, 17:45
|- - aaarrr   Цитата(toweroff @ Feb 25 2013, 21:45) ......   Feb 25 2013, 18:45
- - toweroff   UPD Так, становится понятнее Используются 2 инстр...   Feb 25 2013, 19:26
- - toweroff   aaarrr, посмотрите, пожалуйста, что я понял не так...   Feb 25 2013, 22:15


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

 


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


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