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

 
 
> Самопроизвольное изменение значения переменной
jdhfdg
сообщение Sep 25 2011, 12:44
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 25-09-11
Пользователь №: 67 366



Я объявил глобальную переменную в области xdata и инициализировал ее значением 2.
После инициализации проверил - все в порядке, там записано число 2.
Через некоторое время снова проверил ее значение - оно оказалось -1.
В коде присвоения к этой переменной нигде больше нет.

Тогда как такое возможно?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jdhfdg
сообщение Sep 26 2011, 19:25
Сообщение #2





Группа: Новичок
Сообщений: 8
Регистрация: 25-09-11
Пользователь №: 67 366



чтобы переменные не наезжали друг на друга - я это первым делом проверил - все в порядке там.
тут что-то по чище...

рядом стоят одни int-ы. Чуть дальше есть и float-ы, и массивы.
Под них считаю - количество элементов умножить на размер типа. Размещаю всё впритык.

ходить по шагам пробовал, но толку мало.
в указанном месте просто выдает не то значение, которое записывал ранее.
да еще и неудобно жутко - когда идешь по шагам показывает не тот код, который сейчас выполняется, а тот в котором находится функция main. Но это отдельная история... Это в uvision. А в Silicon Laboratories дела с этим обстоят еще хуже...

Сообщение отредактировал jdhfdg - Sep 26 2011, 19:28
Go to the top of the page
 
+Quote Post
barabek
сообщение Sep 26 2011, 22:53
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(jdhfdg @ Sep 27 2011, 06:25) *
ходить по шагам пробовал, но толку мало.
в указанном месте просто выдает не то значение, которое записывал ранее.
да еще и неудобно жутко - когда идешь по шагам показывает не тот код, который сейчас выполняется, а тот в котором находится функция main. Но это отдельная история... Это в uvision. А в Silicon Laboratories дела с этим обстоят еще хуже...


Проходили такое. Это неправильно организован проект. Все сишные файлы должны билдиться (простите за сленг), а инклудиться только хедеры с объявлением функция, а не определением. Тогда отладка будет певеселее.


По существу. Во-первых, не возникает ли сброса по записи во флэш? Смотрим в RSTSRC или как он называется в данном камне?

Во-вторых, возможно все-таки, и скорее всего ошибка в проге. Попробуйте после однократной записи данных вообще запретить запись - либо залочить, либо в функции записи поставить проверку софтверного флага. Если залочите, а запись все-таки вызовется произойдет сброс по ошибке флэш.

А может сперва сделать как написал выше с файлом, содержащим функцию записи, или на крайний случай временно перенести функцию в файл с main и поставить брекпоинт в функции. Тем самым отловите непреднамеренный вызов функции.

UPD. Кстати, посмотрите в отладчике, что на самом деле записано в ячейке флэш когда она якобы испортилась, може не там ищем?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- jdhfdg   Самопроизвольное изменение значения переменной   Sep 25 2011, 12:44
- - Палыч   Цитата(jdhfdg @ Sep 25 2011, 16:44) Тогда...   Sep 25 2011, 13:40
- - jdhfdg   Микроконтроллер Silicon Laboratories C8051F126 xd...   Sep 25 2011, 15:32
|- - Палыч   Цитата(jdhfdg @ Sep 25 2011, 19:32) xdata...   Sep 25 2011, 16:36
|- - barabek   Цитата(Палыч @ Sep 26 2011, 03:36) Значен...   Sep 26 2011, 02:41
|- - Палыч   Цитата(barabek @ Sep 26 2011, 06:41) Очен...   Sep 26 2011, 05:22
|- - barabek   Цитата(Палыч @ Sep 26 2011, 16:22) P.S. П...   Sep 26 2011, 06:15
|- - Палыч   Цитата(barabek @ Sep 26 2011, 10:15) Про ...   Sep 26 2011, 06:27
- - jdhfdg   Извините, бес попутал. xdata - это конечно же опер...   Sep 26 2011, 08:09
|- - Палыч   Из Ваших путанных объяснений непонятно: в какой мо...   Sep 26 2011, 09:35
- - ARV   если я не ошибаюсь, то xdata - это "дополните...   Sep 26 2011, 08:11
- - sergeeff   Функция записи во флеш не работает из флеш.   Sep 26 2011, 08:28
- - jdhfdg   Дело в том, что остальные переменные пишутся и счи...   Sep 26 2011, 13:51
|- - Палыч   Цитата(jdhfdg @ Sep 26 2011, 17:51) Дело ...   Sep 26 2011, 15:06
- - Shandy   В утилите "Silabs Flash Utility" есть за...   Sep 27 2011, 05:23
|- - barabek   Цитата(Shandy @ Sep 27 2011, 16:23) В ути...   Sep 27 2011, 10:38
- - jdhfdg   Есть функция, которая пишет данные из ОЗУ во FLASH...   Sep 27 2011, 20:23
|- - barabek   Цитата(jdhfdg @ Sep 28 2011, 07:23) Есть ...   Sep 27 2011, 22:33
- - редактор   Уточнение - какая модель памяти используется, если...   Sep 28 2011, 07:46
- - Палыч   Цитата(jdhfdg @ Sep 28 2011, 00:23) впере...   Sep 28 2011, 08:33


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

 


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


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