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

 
 
> Передача управления из бута в программу, еще раз о старом
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
Ответов
esaulenka
сообщение Feb 25 2013, 14:05
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата(toweroff @ Feb 25 2013, 14:57) *
для ядра ARM968E-S значение USER_CODE так же будет (REAL_USER_CODE + 1), как и для CM3?

Значение USER_CODE будет +1 или +0 в зависимости от того, ARM-код это, или THUMB.

Цитата(toweroff @ Feb 25 2013, 14:57) *
Или это нормально, или я что-то не понял и проц нужно перед прыжком переводить в Supervisor режим?
Сколько пересмотрел реализаций бутов для ARM7, CM3 - нигде не увидел явной смены режима работы

В моей реализации большими буквами написано "SWI и xxx_Handler не используется, надо инициализировать только пользовательский стек".
Но вообще-то для универсального бута странно. Это я знаю, что буду грузить своим загрузчиком.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
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
|- - 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
- - aaarrr   Вариант 2 не годится, т.к. по адресу 0xffff0000 па...   Feb 25 2013, 22:38
- - toweroff   Цитата(aaarrr @ Feb 26 2013, 02:38) Вариа...   Feb 25 2013, 22:58


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

 


RSS Текстовая версия Сейчас: 20th August 2025 - 06:02
Рейтинг@Mail.ru


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