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

 
 
> Проблема с ATMEGA1244, портится содержимое ОЗУ
lehacheb
сообщение Apr 15 2013, 06:04
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 11-04-09
Пользователь №: 47 508



У меня возникла вот такая проблема при написании программы на ATMEGA1244:
когда идет обмен данными с компъютером по UART у меня неожиданно переменные в
ОЗУ портятся, принимают значения, которые никогда не должны принимать в программе,
т.е. в ОЗУ записывается какой-то мусор. Естетственно это приводит к сбою программы.
Это происходит не при каждом запросе, а время от времени на 100-й или 1000-й запрос.
Когда обмена нет, программа работает нормально.
Это происходит, даже если программа не отвечает на запрос, по самому факту прерывания
по UART. Переменные портятся различные, расположенные в разных местах ОЗУ (пробовал
менять расположение переменных в ОЗУ).
Не могу понять что происходит, с чем это связано. Может кто сталкивался с такой проблемой
или может что-то посоветовать.
Среда Atmel Studio 6.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Xenia
сообщение Apr 16 2013, 08:50
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Может быть со стеком проблемы?
На модель посмотрите - в сторону данных стек растёт или в противоположную сторону (т.е. выше или ниже стека расположены данные)?
А то когда стека не хватает он может и по ОЗУ пройтись.
Возможно, что где-то в прерывании вызывается функция, заводящая кучу локальных переменных, которые поедают стек.
Самый простой тест - увеличить размер стека (до возможного максимума) и посмотреть, сказывается ли это на порче содержимого памяти или нет.
Go to the top of the page
 
+Quote Post



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

 


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


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