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

 
 
> Начальная инициализация mega8 IAR 5.10A, Встроены-ли в компилятор функции инициализации?
mempfis_
сообщение Aug 5 2008, 13:33
Сообщение #1


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

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Добрый день всем.
Подскажите есть-ли в IAR 5.10A встроенные функции начальной инициализации микроконтроллера (очистка ОЗУ, настройка стэка и т.д.). Раньше пользовался CVAVR он всё это вставлял автоматически. Чувствую что в иаре тоже такое есть но где копать не знаю (два дня им пользуюсь ещё не выучил досконально).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GDI
сообщение Aug 5 2008, 14:00
Сообщение #2


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата
Невнимательно читаете вопрос. Нет функций настройки периферии.

Да именно это я и имел ввиду, просто "и т.д." автора продлил на периферию smile.gif


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Aug 5 2008, 14:23
Сообщение #3


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

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Вобщем вопрос про инициализацию возник у меня когда симулировал программув отладчике и увидел что нет инициализации стэка и переменных О_о Правда вот сейчас внимательно посмотрел и заметил что всё-же она есть (в конце файла), но такой очистки всего как в CVAVR нету. Вобщем буду делать ручками smile.gif Не так уж это и сложно smile.gif



Может поделитесь опытом кто что очищает при старте микроконтроллера smile.gif
достаточно-ли будет очистить регистры и оперативку, или нужно делать более тщательную очистку (очищать переферию переферия)?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 5 2008, 14:51
Сообщение #4


Гуру
******

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



Цитата(mempfis_ @ Aug 5 2008, 17:23) *
Может поделитесь опытом кто что очищает при старте микроконтроллера smile.gif
Ничего. Что такое в вашем понятии "очищает"? По стандарту неинициализированным явно статическим и глобальным переменным присваивается значение 0 (в стартап-коде). Это "очистка"? А если написать int a = 0; - это очистка? А если int a = 1; - это еще очистка или уже нет?
Цитата(mempfis_ @ Aug 5 2008, 17:23) *
достаточно-ли будет очистить регистры и оперативку
Не только не достаточно, а вообще этого делать не нужно. Зачем "очищать" память, которая не будет использоваться программой? Ведь та память, которая будет использоваться (глобальные и статические переменные) будет очищена startup-кодом. А область временных переменных (стек) будет постоянно затираться и никакая начальная "очистка" не поможет - при следующем вызове функции от "очистки" не останется и следа. Именно поэтому локальные переменные после объявления имеют неопределенное значение и должны быть проинициализированны явно перед использованием.
Зачем "очищать" регистры, если в процессе работы в них все равно будет сначала записано какое-то значение?
Цитата(mempfis_ @ Aug 5 2008, 17:23) *
, или нужно делать более тщательную очистку (очищать переферию)?
А вот нужную периферию инициализировать нужно всегда. Как же без этого?


--------------------
На любой вопрос даю любой ответ
"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



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

 


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


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