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

 
 
> Инициализация периферии до входа в main() - возможно ли?, RealView compiler
sonycman
сообщение Jan 8 2009, 17:39
Сообщение #1


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Run-time библиотека Си++ вызывает конструкторы глобальных объектов ещё до начала выполнения функции main().
Хотелось бы, чтобы в этот момент необходимая периферия контроллера уже была проинициализирована, дабы код конструкторов не был ничем ограничен.
Но как это сделать в RealView? Никаких __low_level_init() я в руководстве компилятора не увидел... unsure.gif

ЗЫ: приятно обновился интерфейс форума a14.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jan 8 2009, 20:30
Сообщение #2


Гуру
******

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



Цитата(defunct @ Jan 8 2009, 22:35) *
А чем не устраивает main рассматривать как ту самую функцию настройки периферии, из нее уже запускать что-то еще.

До main хотя бы память должна ожить. Кроме того, тоскливо получается копировать/инициализировать эту память на медленных клоках, например.

Цитата(sonycman @ Jan 8 2009, 23:15) *
Ещё вот интересно, для чего при переходе на __main юзать R0? А если просто B __main?

А если __main далеко?
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 8 2009, 23:24
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(aaarrr @ Jan 8 2009, 22:30) *
До main хотя бы память должна ожить. Кроме того, тоскливо получается копировать/инициализировать эту память на медленных клоках, например.

Согласен, актуально для МК с кешем, внешним RAM, либо толстым Init RW сегментом.

В контексте кортекса, внешней шины часто вообще нет (оживлять нечего), а внутреннего RAM'a - с гулькин нос, поэтому и PLL настраивать до main'a ради инициализации пары KB переменных смысла особого нет.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 8 2009, 23:34
Сообщение #4


Гуру
******

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



Цитата(defunct @ Jan 9 2009, 02:24) *
Согласен, актуально для процессоров с MMU и кешем и внешним SDRAM'ом.

Ну, еще для атмеловских SAM'ов, которые с 32kHz запускаются, тоже весьма актуально.

Цитата(defunct @ Jan 9 2009, 02:24) *
внутреннего RAM'a - с гулькин нос, поэтому и PLL настраивать до main'a ради инициализации пары KB переменных смысла особого нет.

Если это пара десятков килобайт и пара десятков килогерц, то совсем даже не мало получается.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 8 2009, 23:35
Сообщение #5


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(aaarrr @ Jan 9 2009, 01:32) *
Ну, еще для атмеловских SAM'ов, которые с 32kHz запускаются, тоже весьма актуально.

Угу, что правда, то правда.
Цитата
Если это пара десятков килобайт и пара десятков килогерц, то совсем даже не мало получается.

Везде свой подход. Мне что-то подсказывает (соседние ветки), что проц, который использует автор топика стартует на нормальной частоте (явно больше 32kHz) smile.gif
Иначе бы и не заикался на счет инициализации в main smile.gif
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 8 2009, 23:59
Сообщение #6


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(defunct @ Jan 9 2009, 03:35) *
Везде свой подход. Мне что-то подсказывает, что проц, который использует автор топика стартует на нормальной частоте (явно больше 32kHz) smile.gif
Иначе бы и не заикался на счет инициализации в main smile.gif

Да у меня STM32. Стартует на внутреннем RC 8 МГц - вполне хватает, чтобы не слишком торопиться с PLL.
До этого был LM3S601, который я угробил, переназначив вывод житага на GPIO... есть ещё оказывается камни, которые убиваются софтовой ошибкой 01.gif
Кстати, какая разница между внутренними RC генераторами этих контроллеров - с одной стороны 8 МГц +- 1%, с которого чип запускается после ресета.
С другой - 15 МГц +- 50%, запуск с которого невозможен, только после софтового переключения... на кой нужен такой генератор? laughing.gif
Видать, нет у Luminary индивидуальной калибровки... экономят-с...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sonycman   Инициализация периферии до входа в main() - возможно ли?   Jan 8 2009, 17:39
- - zltigo   Цитата(sonycman @ Jan 8 2009, 20:39) Но к...   Jan 8 2009, 17:47
|- - sonycman   Цитата(zltigo @ Jan 8 2009, 21:47) Вставь...   Jan 8 2009, 18:33
|- - zltigo   Цитата(sonycman @ Jan 8 2009, 21:33) Даже...   Jan 8 2009, 19:14
|- - defunct   А чем не устраивает main рассматривать как ту саму...   Jan 8 2009, 19:35
|- - sonycman   Цитата(zltigo @ Jan 8 2009, 23:14) Типа C...   Jan 8 2009, 20:15
||- - zltigo   Цитата(sonycman @ Jan 8 2009, 23:15) А ес...   Jan 8 2009, 20:29
|- - _Pasha   Цитата(defunct @ Jan 8 2009, 22:35) А чем...   Jan 8 2009, 21:23
- - sergeeff   На сайте atmel'a лежат свежие версии soft...   Jan 8 2009, 18:35
|- - sonycman   Цитата(sergeeff @ Jan 8 2009, 22:35) На с...   Jan 8 2009, 19:04
- - Dima_G   Не полагайся на порядок вызовов конструкторов, ини...   Jan 9 2009, 05:32
- - sonycman   Цитата(Dima_G @ Jan 9 2009, 09:32) Не пол...   Jan 9 2009, 11:27
- - Dima_G   Цитата(sonycman @ Jan 9 2009, 14:27) Поня...   Jan 10 2009, 17:30
- - sonycman   Цитата(Dima_G @ Jan 10 2009, 21:30) Сам п...   Jan 10 2009, 20:51
- - defunct   Цитата(sonycman @ Jan 10 2009, 22:51) Как...   Jan 11 2009, 03:12
- - Dima_G   Цитата(sonycman @ Jan 11 2009, 00:51) Да,...   Jan 11 2009, 03:26
- - sonycman   Цитата(defunct @ Jan 11 2009, 07:12) FS и...   Jan 11 2009, 10:52


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

 


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


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