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

 
 
> спецификатор static
John851
сообщение May 26 2010, 12:30
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 2-05-09
Пользователь №: 48 549



Добрый день,

в какой памяти AVR хранится переменная объявленная со спецификатором static?

есть ли в avr libc (поставляемой вместе с WinAvr) атомарная операция nop?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sigmaN
сообщение May 27 2010, 21:42
Сообщение #2


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Цитата
Вобщем IMHO static это ненужный расход оперативной памяти которая могла бы пойти на увеличение стека.
IMHO - ничего не понимаете вы в колбасных обрезках smile.gif


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
mempfis_
сообщение May 28 2010, 07:04
Сообщение #3


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

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



Цитата(sigmaN @ May 28 2010, 00:42) *
IMHO - ничего не понимаете вы в колбасных обрезках smile.gif

Может быть всех тонкостей применения static не знаю - учился на электронщика а не программиста smile.gif
Но для глобальных переменных никогда его не применял smile.gif

Были конструкции такого типа (когдато подсказали сдесь на форуме)
Код
#define PutString(x) do{static __flash char  str[]=x; _putstring(str);}while(0);


Ну ещё в прерываниях по таймеру если нужно было с фиксированным периодом чтото выполнять
Код
void ISR_PIT();
{
  static unsigned int i=1000;

//вызов задачи раз в секунду
if(i>0) i--;
else
{
   i=1000;
   TaskON(5);
}
}



Цитата(Сергей Борщ @ May 28 2010, 02:24) *
static для глобальных и локальных переменных имеет разное значение. Вопрос #17 был про глобальные переменные, а вы ответили про локальные.


Вы правы - действительно мой ответ касался локальных переменных laughing.gif
В глобальных не приходилось применять - небыло необходимости объявлять переменные видимые только в одном модуле smile.gif

Сообщение отредактировал mempfis_ - May 28 2010, 07:04
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 28 2010, 09:29
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(mempfis_ @ May 28 2010, 11:04) *
В глобальных не приходилось применять - небыло необходимости объявлять переменные видимые только в одном модуле smile.gif
Какие Ваши годы:-) Рассматривайте механизм применения static для локалных объектов внутри одного модуля трансляции (файла) ещё и как дополнительный способ самодокументирования программы и всё встанен на свои места.

Также стоит понимать, что локальная статическая переменная внутри функции (более-менее существенного размера) не несёт накладных расходов на выделение стекового фрейма этой функции и если всё укладывается в регистры, то скорость выполнения этой функции возрастает а её размер уменьшается.
Но злоупотреблять этим не стоит...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- John851   спецификатор static   May 26 2010, 12:30
- - MrYuran   Цитата(John851 @ May 26 2010, 16:30) в ка...   May 26 2010, 12:46
- - John851   абсолютно все переменные попадают в ОЗУ? или есть ...   May 26 2010, 12:54
|- - Сергей Борщ   Цитата(John851 @ May 26 2010, 15:54) абсо...   May 26 2010, 13:11
- - sigmaN   static лишь ограничивает область видимости перемен...   May 26 2010, 15:01
|- - xelax   Цитата(sigmaN @ May 26 2010, 19:01) stati...   May 27 2010, 06:03
- - swisst   Цитата(John851 @ May 26 2010, 15:30) есть...   May 26 2010, 16:44
- - John851   Еще немного про ОЗУ: А как происходит работа с ОЗУ...   May 27 2010, 05:30
|- - MrYuran   Цитата(John851 @ May 27 2010, 09:30) Еще ...   May 27 2010, 05:43
- - eracer   Извиняюсь, что влезаю в чужой топик. Возникла непо...   May 27 2010, 08:20
|- - aaarrr   Цитата(eracer @ May 27 2010, 12:20) При п...   May 27 2010, 08:31
|- - demiurg_spb   Попробуйте сделать табличку значений синуса с нужн...   May 27 2010, 09:30
|- - eracer   Цитата(aaarrr @ May 27 2010, 12:31) Стеко...   May 27 2010, 10:31
|- - MrYuran   Цитата(eracer @ May 27 2010, 14:31) Дейст...   May 27 2010, 10:37
||- - eracer   Цитата(MrYuran @ May 27 2010, 14:37) Да...   May 27 2010, 11:15
|- - aaarrr   Цитата(eracer @ May 27 2010, 14:31) А мож...   May 27 2010, 10:37
- - John851   хм, в чем разница объявления глобальной переменной...   May 27 2010, 12:27
|- - MrYuran   Цитата(John851 @ May 27 2010, 16:27) Разн...   May 27 2010, 12:35
|- - aaarrr   Цитата(John851 @ May 27 2010, 16:27) Разн...   May 27 2010, 12:36
|- - mempfis_   Цитата(John851 @ May 27 2010, 15:27) Разн...   May 27 2010, 14:35
|- - Сергей Борщ   Цитата(mempfis_ @ May 27 2010, 17:35) Есл...   May 27 2010, 23:24
|- - _Pasha   Цитата(mempfis_ @ May 27 2010, 17:35) Есл...   May 28 2010, 05:52
|- - MrYuran   Цитата(_Pasha @ May 28 2010, 09:52) А шо,...   May 28 2010, 06:25
|- - MrYuran   Цитата(MrYuran @ May 28 2010, 10:25) Это ...   Jun 1 2010, 06:57
- - sigmaN   ЦитатаВ глобальных не приходилось применять - небы...   May 28 2010, 07:44
- - John851   хм, а если я создам массив большой >1 Кб а памя...   May 28 2010, 10:02
|- - demiurg_spb   Цитата(John851 @ May 28 2010, 14:02) хм, ...   May 28 2010, 10:13
- - XVR   ЦитатаВопрос на засыпку: локальную переменную созд...   Jun 1 2010, 08:47


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

 


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


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