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

 
 
> Пара вопросов по программированию, Стек и delay
white.wind
сообщение Jun 6 2006, 11:59
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 2-05-06
Из: Санкт-Петербург
Пользователь №: 16 707



1. Несколько раз встречал в исходниках на ассемблере двойную инициализацию стека на старте, один раз до SEI, второй сразу после. Недавно стал изучать программирование C и встретил опять, посмотрев генерируемый код. Чем может быть обусловлена двойная инициализация?

2. Мне казалось, заглянув в исходник delay, я там сразу увижу реализацию на таймере, по крайней мере возможность выбора, но там только циклы. Пож. ответветте хотя бы одним предложением почему так (неэффективно? сложно для реализации? ... ).

Сообщение отредактировал white.wind - Jun 6 2006, 12:00
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KRS
сообщение Jun 6 2006, 12:08
Сообщение #2


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(white.wind @ Jun 6 2006, 15:59) *
1. Несколько раз встречал в исходниках на ассемблере двойную инициализацию стека на старте, один раз до SEI, второй сразу после. Недавно стал изучать программирование C и встретил опять, посмотрев генерируемый код. Чем может быть обусловлена двойная инициализация?

это ошибка! стек вообще нельзя инициализировать при включенных прерываниях...
1. Стек должен быть проиничен до любого прерывания
2. потому что регистры стека состоят из 2 8 битных, а операция должна быть атомарной.

Цитата
2. Мне казалось, заглянув в исходник delay, я там сразу увижу реализацию на таймере, по крайней мере возможность выбора, но там только циклы. Пож. ответветте хотя бы одним предложением почему так (неэффективно? сложно для реализации? ... ).


А кто будет инициализировать таймер? Откуда компилер/библиотека знает какой таймер у вас свободен... в каком режиме он должен работать....

Я работаю с IAR там есть функция __delay_cycles() вставляет определенное число тактов задержки, (именно у AVR это реализовывается просто)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 02:54
Рейтинг@Mail.ru


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