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

 
 
> Контроль IAR'ом заполненности РАМ, насколько правильно он это делает?
SZ0
сообщение Dec 16 2008, 06:21
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 14-02-06
Пользователь №: 14 331



Вопрос возник по причине обработки большого массива данных в РАМ. После компиляции IAR пишет для ATmega640 7962 bytes of DATA memory (+ 57 absolute ). Меня беспокоит то, что вызываемые подпрограммы сохраняют регистры, в них ещё вызываются подпрограммы. Насколько эффективно IAR отслеживает эти сохранения, а так же стек, чтобы они не "наехали" на данные в РАМ?

Какие данные он относит к 57 absolute?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
Сергей Борщ
сообщение Dec 16 2008, 08:24
Сообщение #2


Гуру
******

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



Цитата(SZ0 @ Dec 16 2008, 08:21) *
Меня беспокоит то, что вызываемые подпрограммы сохраняют регистры, в них ещё вызываются подпрограммы. Насколько эффективно IAR отслеживает эти сохранения, а так же стек, чтобы они не "наехали" на данные в РАМ?
ИАР отслеживает только непересчение сегментов ОЗУ и стека. Забота о достаточности размера сегмента стека лежит на программисте. Где-то была галочка "строить дерево вызовов в .map-файле" или что-то вроде того. Посмотрите для main() и для всех прерываний. Если main() + самый требовательный к стеку обработчик в сумме меньше размера сегмента стека - порядок. Если есть вложенные прервыания - нужно учесть и их тоже.
Цитата(SZ0 @ Dec 16 2008, 08:21) *
Какие данные он относит к 57 absolute?
Обычно sfr. Ну и если вы какие-то переменные указали в конкретные адреса через @.


--------------------
На любой вопрос даю любой ответ
"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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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