[an error occurred while processing this directive]
Согласен, но когда подобное вытворяется и с SFR - это произвол и происки скандинавских лесничих
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
=AVR=
16 сентября 2006 г. 20:51
В ответ на:
не бубуни, а ? Его "порыв оптимизации" - на самом деле совершенно логичный ход. Первый раз он условие проверил при входе - правильно. Дальше заниматься дурью и проверять это условие он не обязан - она действительно всегда истина с его точки зрения, ибо не volatile переменная НЕ МОЖЕТ модифицироваться "где-то там в прерывании"
отправлено DASM 16 сентября 2006 г. 20:48
Составить ответ
|||
Конференция
|||
Архив
Ответы
нет такого слова в языке - SFR. Есть volatile. И грамотно объявленный SFR как volatile ведет себя вполне предсказуемо.
—
DASM
(16.09.2006 20:53
212.58.192.14
,
пустое
)
Так и что теперь - подвергать ревизии все казенные МК-шные хидеры, чтобы это гарантированно обеспечить? Все же компильни под AVR, любопытно
—
=AVR=
(16.09.2006 20:56
80.92.96.19
,
пустое
)
И все же подчеркну - я вовсе не против volatile возбух, а против безграмотного кода корня. До volatile там еще как раком до Китая
—
=AVR=
(16.09.2006 21:00
80.92.96.19
,
пустое
)
про область видимости вопрошателю сообщили еще вчера, не стоит делать из этого открытие с криком "какие вы в попу эмбеддеры". Дойдет человек и до области со временем
—
DASM
(16.09.2006 21:03
212.58.192.14
,
пустое
)
Ответ:
—
DASM
(16.09.2006 20:59
212.58.192.14
, 851 байт)
на тебе до кучи volatile вариант (+)
—
DASM
(16.09.2006 21:00
212.58.192.14
, 940 байт)
Идиотский код. А регистры не включишь - а то он и неизменную тупо из RAM перезагружает в цикле?
—
=AVR=
(16.09.2006 21:04
80.92.96.19
,
пустое
)
естественно перегружает - переменная же VOLATILE (уж прости, Керниган, за caps lock) и лежит она не в регистре, вот он и не имеет права тупо сравнивать с регистром, а считывает с памяти постоянно. А насчет попытки сделать её регистровой компилятор (умница однако) четко возразил "a global-scope declaration may not have this storage class"
—
DASM
(16.09.2006 21:07
212.58.192.14
,
пустое
)
Я про foo, а не про mytimer - ее вроде никто волятиной не обзывал
—
=AVR=
(16.09.2006 21:09
80.92.96.19
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание