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

 
 
> Локальные переменные и библиотечные функции, Проблема с локальными переменными и библиотекой
desh
сообщение Sep 29 2010, 07:54
Сообщение #1


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

Группа: Свой
Сообщений: 113
Регистрация: 25-10-07
Из: Краснодар
Пользователь №: 31 725



Здравствуйте.

Есть проект в IAR AVR 5.50. Код на С. Контроллер ATmega644PA. В проекте активно используются библиотечные функции из библиотеки DLIB (опция Normal DLIB) в частности функции работы со временем. Проблема в том, что после вызова библиотечной функции localtime меняется значение локальной переменной вызывающей функции и размещенной в регистрах R24 и R25. Переменная не передается в функцию и ей не присваивается возвращаемое значение. При отладке было выяснено следующее: при вызове библиотечной функции происходит сохранение используемых регистров в стек, при этом регистр R25 оказывается на вершине стека. Во время выполнения функции происходит изменение вершины стека, а при выходе из функции значение регистра восстанавливается измененным значением.
Таких мест в коде несколько. Подозреваю, что подобная проблема возникает и с некоторыми другими функциями, поэтому в данный момент видится оптимальным вариант с перекомпиляцией библиотек. Останавливает отсутствие исходных текстов библиотеки, так как использую evaluation версию IAR.
Хотелось бы услышать Ваши мысли и советы по устранению данной проблемы. Может быть кто то может поделиться исходниками библиотек.

С уважением.
Go to the top of the page
 
+Quote Post



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

 


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


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