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

 
 
> Ошибка в CodeVision?, Некорректный аозврат из функций
Maker6
сообщение Jul 29 2005, 20:34
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 21-07-05
Пользователь №: 6 996



Помогите разобраться с проблемой. Использую Atmega64L и CodeVision 1.24.2
(пробовал и 1.24.6). Наткнулся на некорректный возврат из некоторых своих функций. Причина видится в перетирании адреса возврата из функции (хранится в стеке) при выполнении участка кода кода внутри этой функции. Что-то вроде несимметричного использования PUSH-POP. Все это видно при отладке в AVRStudio по шагам и в симуляторе и через JTAG. Сначала грешил на конкретную библиотечную функцию - sscanf() и перестал ее использовать, но сечас наткнулся на что-то подобное и в другом месте. Есть подозрение что это как-то связано с размером кода - 30% от 64 к

Буду благодарен за любые мысли на эту тему - проект почти готов, поджимает время, времени на освоение других компиляторов нет. :(
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
-=user=-
сообщение Aug 4 2005, 21:35
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 4-08-05
Пользователь №: 7 369



1. Отключи оптимизацию
2. Не используй функции работающие напрямую с флеш памятью, например, putsf, lcd_putsf. Из-за них бывают глюки, например переменные меняют свои адреса.
3. Попробуй редактировать асм-код
Go to the top of the page
 
+Quote Post



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

 


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


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