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

 
 
> Инициализация периферии до входа в 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
Ответов
Dima_G
сообщение Jan 9 2009, 05:32
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Не полагайся на порядок вызовов конструкторов, инициализаторов периферии и тд - легко словить грабли в дальнейшем.

У меня все сервисы имеют три стадии инициализации:

1) Собственно сами конструкторы классов. В них я предполагаю, что класс автономен, соответственно и не обращаюсь к другим классам и ресурсам. Здесь же инициализируется периферия (естественно, два класса не могут юзать одну и ту же периферию)

2) Стадия Init - здесь уже налаживаются связи между классами (к этому моменту все необходимые объекты уже созданы)

3) Стадия Run - запускается таски, разрешаются прерывания от периферии и тд - в общем, нормальная работа приложения

объекты глобальные, соответственно создаются до main. А в main я уже вызываю init и run.

Суть в чем - не полагайся, что кто-то что-то сделал заранее smile.gif
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 9 2009, 11:27
Сообщение #3


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

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



Цитата(Dima_G @ Jan 9 2009, 09:32) *
Не полагайся на порядок вызовов конструкторов, инициализаторов периферии и тд - легко словить грабли в дальнейшем.

У меня все сервисы имеют три стадии инициализации:

1) Собственно сами конструкторы классов. В них я предполагаю, что класс автономен, соответственно и не обращаюсь к другим классам и ресурсам. Здесь же инициализируется периферия (естественно, два класса не могут юзать одну и ту же периферию)

2) Стадия Init - здесь уже налаживаются связи между классами (к этому моменту все необходимые объекты уже созданы)

3) Стадия Run - запускается таски, разрешаются прерывания от периферии и тд - в общем, нормальная работа приложения

объекты глобальные, соответственно создаются до main. А в main я уже вызываю init и run.

Суть в чем - не полагайся, что кто-то что-то сделал заранее smile.gif

Понятно, спасибо!
Хотя не всегда объект может иметь свою собственную периферию - в случае её совместного использования невозможно ввести полную инициализацию внутрь одного класса.
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
- - aaarrr   Цитата(defunct @ Jan 8 2009, 22:35) А чем...   Jan 8 2009, 20:30
|- - defunct   Цитата(aaarrr @ Jan 8 2009, 22:30) До mai...   Jan 8 2009, 23:24
|- - aaarrr   Цитата(defunct @ Jan 9 2009, 02:24) Согла...   Jan 8 2009, 23:34
|- - defunct   Цитата(aaarrr @ Jan 9 2009, 01:32) Ну, ещ...   Jan 8 2009, 23:35
|- - sonycman   Цитата(defunct @ Jan 9 2009, 03:35) Везде...   Jan 8 2009, 23:59
- - 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 Текстовая версия Сейчас: 18th August 2025 - 16:45
Рейтинг@Mail.ru


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