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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> ПОМОГИТЕ C IAR
unichorn
сообщение Jan 27 2006, 09:54
Сообщение #16


Частый гость
**

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



Можно smile.gif Только если используеш глобальные переменные есть риск самому себе всё изгадить smile.gif
И следи чтоб стек непереполнился.
Go to the top of the page
 
+Quote Post
DeXteR
сообщение Jan 27 2006, 11:43
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 2-08-05
Из: Одесса
Пользователь №: 7 287



Использую толька глобальные - памяти много =)
static unsigned int A; Например.

Все функции типа void My(void)
и работают с глобальными переменными

А как за стеком то следить ??
Где его искать ??
И стеков там помоиму не один а несколька ??
Go to the top of the page
 
+Quote Post
unichorn
сообщение Jan 27 2006, 13:27
Сообщение #18


Частый гость
**

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



DeXteR, а ты случаем не во ВНИИФТРИ сидиш? А то ктото с таким именем на местном сервере
у нас тут есть smile.gif
Go to the top of the page
 
+Quote Post
DeXteR
сообщение Jan 27 2006, 14:59
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 2-08-05
Из: Одесса
Пользователь №: 7 287



Цитата(unichorn @ Jan 27 2006, 17:27) *
DeXteR, а ты случаем не во ВНИИФТРИ сидиш? А то ктото с таким именем на местном сервере
у нас тут есть smile.gif


Нет
Я сижу в Одессе ....
Раньше сидел в УкрНИИСИП
Теперь сидим в СКБСС =)

Но эти огранизации почти мертвые поэтому дела мы ворочием сами =)
Go to the top of the page
 
+Quote Post
unichorn
сообщение Jan 27 2006, 15:26
Сообщение #20


Частый гость
**

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



Аналогично.
Интересные книги по прграмированию найти можно здесь.
http://www.natahaus.ru/
Go to the top of the page
 
+Quote Post
unichorn
сообщение Jan 27 2006, 15:49
Сообщение #21


Частый гость
**

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



Большое количество глобальных переменных использовать не рекомендуется.

Я только что закончил подправлять чужой проект с большим количеством
глобальных переменных, особенно добили ничего незначащие названия переменных и функций.

Волосы досих пор дыбом wacko.gif от большого количества меток типа privet:

Извеняюсь это уже не по теме.
Go to the top of the page
 
+Quote Post
DeXteR
сообщение Jan 27 2006, 19:12
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 2-08-05
Из: Одесса
Пользователь №: 7 287



Цитата(unichorn @ Jan 27 2006, 19:26) *
Аналогично.
Интересные книги по прграмированию найти можно здесь.
http://www.natahaus.ru/


Сайт хороший но ни в одной книжке там ненаписано что такое
HEAP, CSTACK, SSTACK =(

Каким образом передаютца переменные в функцию и т. д.

Если я ошибаюсь - киньте в меня ссылкой пожалуйста.

Цитата(unichorn @ Jan 27 2006, 19:49) *
Большое количество глобальных переменных использовать не рекомендуется.


А это где написано ?? Почему ?? Потомучто неудобный для чтения исходник ??
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 28 2006, 01:55
Сообщение #23


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(DeXteR @ Jan 27 2006, 13:43) *
Использую толька глобальные - памяти много =)
static unsigned int A; Например.


помоему Вы путаетесь.. static - не значит глобальная переменная.. static - глобальное время действия, иными словами просто резервирует определенную ячейку памяти под переменную. Цитата из описания ANSI-C:
Цитата
"Элемент с глобальным временем действия существует на всем протяжении выполнения исходной программы, но он может и не быть доступен из всех частей программы."
Однако, если переменная у Вас объявлена в контексте функции или тела одного модуля, переменная будет считаться локальной соответственно для функции или модуля. Глобальными же являются переменные, которые объявлены например в хедере (.h) и которые "видно" в любом другом модуле.

На вопрос чем плохо использование глобальных переменных в интернете есть много статей. Задайте этот вопрос в яндексе ;>
Go to the top of the page
 
+Quote Post
Old1
сообщение Jan 28 2006, 11:40
Сообщение #24


Знающий
****

Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095



Цитата(DeXteR @ Jan 27 2006, 23:12) *
Каким образом передаютца переменные в функцию и т. д.

Этот вопрос рассматривается в мануале на ИАРовский компилятор в подразделе "Calling convention" раздела "Assembler language interface", если в очень общих чертах, то параметры в функцию передаются через регистры R16...R23 , если их хватает, если нет, то через стек... естественно существуют нюансы, чтобы детально разобраться почитайте мануал...

Цитата
Цитата(unichorn @ Jan 27 2006, 19:49) *

Большое количество глобальных переменных использовать не рекомендуется.

А это где написано ?? Почему ?? Потомучто неудобный для чтения исходник ??

Чтобы прояснить этот вопрос просмотрите appnote AVR035: "Создание эффективного Си-кода для микроконтроллеров AVR", (на gav.ru есть перевод на русский). Одна из причин, по которой не рекомендуется повсеместное использование глобальных переменных- это увеличение длительности выполнения кода (глобальные переменные обычно размещаюся в SRAM, следовательно чтение и запись их будет выполняться значительно дольше чем в регистры) и отчасти увеличение объема кода, другая -неэкономное использование памяти: зачем забивать память промежуточными переменными, которые нужны только, например, во время выполнения какой-либо функции?, гораздо проще и надежнее их описать как локальные: и функция работать быстрее будет и они (вспомогательные переменные) уничтожаться автоматически после выхода из функции...
Go to the top of the page
 
+Quote Post
DeXteR
сообщение Jan 28 2006, 17:30
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 2-08-05
Из: Одесса
Пользователь №: 7 287



Всем огромное спасибо за советы и разъяснения =)
a14.gif
Go to the top of the page
 
+Quote Post

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

 


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


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