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

 
 
> Линкер: Расположение переменной, как расположить локальную переменную в памяти, а не в регистре?
Кирилл__
сообщение Apr 5 2012, 09:24
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 5-04-12
Пользователь №: 71 202



Господа, подскажите: как принудительно заставить IAR for ARM расположить локальную переменную функции в RAM-памяти, а не в регистре?
Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Кирилл__
сообщение Apr 11 2012, 06:18
Сообщение #2





Группа: Новичок
Сообщений: 7
Регистрация: 5-04-12
Пользователь №: 71 202



Ну что ж, направление я увидел.
Поищу утечки в памяти, и с ключевыми словами всё ясно.
Спасибо за Ваши ответы. biggrin.gif

П.С. Модераторы, тему можно закрыть.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 11 2012, 07:38
Сообщение #3


Гуру
******

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



QUOTE (Кирилл__ @ Apr 11 2012, 09:18) *
П.С. Модераторы, тему можно закрыть.
Закрывать можно будет (вы можете сделать это сами в левом нижнем углу) когда вы найдете и огласите здесь причину. Чтобы кто-то другой, столкнувшись с аналогичной проблемой и воспользовавшись поиском узнал не только что он не одинок, но и одну из возможных причин и метод решения.


--------------------
На любой вопрос даю любой ответ
"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
Кирилл__
сообщение Jun 20 2012, 12:43
Сообщение #4





Группа: Новичок
Сообщений: 7
Регистрация: 5-04-12
Пользователь №: 71 202



Ошибка действительно была в коде.
Смутило, что дебагер показывает не всегда верное значение переменной, если она лежит в регистре. Поэтому решение такое:
Для отладки я выставляю локальным переменным функции volatile, что помещает их в оперативную память и теперь может быть верно прочитано дебагером. После отладки я удаляю volatile, и работоспособность функции не изменяется.
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jun 20 2012, 14:33
Сообщение #5


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(Кирилл__ @ Jun 20 2012, 16:43) *
После отладки я удаляю volatile, и работоспособность функции не изменяется.

И при использовании оптимизирующего компилятора код получаете другой! Оптимизатор может много чего сделать. Итог: отладили одну программу, отдали заказчику другую. laughing.gif


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Кирилл__   Линкер: Расположение переменной   Apr 5 2012, 09:24
- - Сергей Борщ   Специальных средств для делания быстрой программы ...   Apr 5 2012, 10:02
- - IgorKossak   Квалификатор static не спасёт?   Apr 5 2012, 16:46
- - scifi   Уточняющий вопрос: зачем???   Apr 5 2012, 19:02
- - Кирилл__   Сергей, Игорь, спасибо за ответ. Зачем это нужно:...   Apr 6 2012, 06:16
|- - shmur   Цитата(Кирилл__ @ Apr 6 2012, 10:16) Заче...   Apr 6 2012, 09:12
|- - scifi   Цитата(Кирилл__ @ Apr 6 2012, 10:16) Заче...   Apr 6 2012, 09:20
|- - IgorKossak   Цитата(Кирилл__ @ Apr 6 2012, 09:16) ... ...   Apr 6 2012, 14:01
- - Marto   Хм.   Apr 10 2012, 21:15
|- - Кирилл__   Цитата(mdmitry @ Jun 20 2012, 18:33) И пр...   Jun 22 2012, 06:27
||- - mdmitry   Цитата(Кирилл__ @ Jun 22 2012, 10:27) Код...   Jun 22 2012, 11:14
||- - Sergey_Aleksandrovi4   Столкнулся с аналогичной проблемой: IAR 6.30.4, ST...   Sep 28 2012, 08:15
||- - Сергей Борщ   QUOTE (Sergey_Aleksandrovi4 @ Sep 28 2012, 11...   Sep 28 2012, 08:38
|- - scifi   Цитата(mdmitry @ Jun 20 2012, 18:33) И пр...   Jun 22 2012, 07:24
- - Sergey_Aleksandrovi4   Под "отладка падает на строке" имел в ви...   Sep 28 2012, 09:23
- - scifi   Цитата(Sergey_Aleksandrovi4 @ Sep 28 2012, 13...   Sep 28 2012, 11:13


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

 


RSS Текстовая версия Сейчас: 18th August 2025 - 06:45
Рейтинг@Mail.ru


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