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

 
 
> Я в тупике. IAR C., может кто подскажет ниточку ...
SasaVitebsk
сообщение Jul 6 2006, 21:46
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Проблема такая.
Прога в JTAG MK2 работает. Выключаешь/включаешь питание - нет. Точнее почти полностью работает.
Причина выяснена. Имеется одна переменная, которая объявлена в начале файла таким образом:
uint8_t static NumbActiveKom=0; // Текущее число активных команд

Эта переменная в голове инкрементируется в виде:
NumbActiveKom++; // Ввод команды завершён

А в прерывании декрементируется типа:
NumbActiveKom--; // Сократить число активных команд

Дальше я с помощью отладочного вывода выяснил, что в прерывании она уменьшается (и сохраняется от прерывания к прерыванию), а в голове увеличивается. Короче ведёт себя так, как будто это две различных переменных. Даже не совсем так. Сначала всё нормально в голове она увеличивается до 10. Потом в прерывании она должна уменьшатся и по мере уменьшения в голове должны подгружаться новые команды, а переменная должна увеличиваться. Но этого не происходит. Переменная уменьшается и в прерывании читается правильно 10,9,8,7... а в голове читается 10 на постоянку! Как будто значение переменной с прерывания не передаётся в голову.

Я попробовал остановить в JTAG прогу в нулевом адресе и "загадить" всё озу "FF". А потом запустить прогу на отладку в JTAG. Не помогает. Работает прекрасно. Как будто в JTAG своя прога, а так - своя. Пересбрасывать тоже не помогает. Надо вкл./выкл. МК. Причём на такое время, чтобы озу похезалось.

Может кто подскажет как такую хрень вычислить? Вся остальная прога работает как часы. Одна переменная только. sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
arttab
сообщение Jul 7 2006, 01:18
Сообщение #2


Профессионал
*****

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



Ескузми, а почему static? раз она меняется, то это не статик. Странно что вообще IAR не ругнулся и декремирует в прерывании


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- SasaVitebsk   Я в тупике. IAR C.   Jul 6 2006, 21:46
- - GetSmart   Вообще-то такие переменные объявляются через volat...   Jul 6 2006, 23:19
- - beer_warrior   ЦитатаЕскузми, а почему static? раз она меняется, ...   Jul 7 2006, 06:02
- - vet   Хинт: почти все проблемы с языком программирования...   Jul 7 2006, 06:13
- - dRaider   Я тоже сталкивался с подобной лажей(точно до причи...   Jul 7 2006, 06:45
|- - Old1   Цитата(dRaider @ Jul 7 2006, 09:45) Я тож...   Jul 7 2006, 07:10
|- - IgorKossak   Цитата(Old1 @ Jul 7 2006, 10:10) Для того...   Jul 7 2006, 07:45
|- - rezident   Цитата(IgorKossak @ Jul 7 2006, 13:45) Ци...   Jul 7 2006, 09:05
|- - Сергей Борщ   Цитата(IgorKossak @ Jul 7 2006, 10:45) Хо...   Jul 7 2006, 09:26
|- - IgorKossak   Цитата(Сергей Борщ @ Jul 7 2006, 12:26) Ц...   Jul 7 2006, 12:30
|- - SasaVitebsk   Спасибо всем за ответы, но к сожелению Вы меня не ...   Jul 7 2006, 18:36
|- - rezident   ЦитатаПричина выяснена. Имеется одна переменная, к...   Jul 7 2006, 19:19
|- - SasaVitebsk   Цитата(rezident @ Jul 7 2006, 22:19) Цита...   Jul 7 2006, 22:48
- - _Bill   Цитата(SasaVitebsk @ Jul 7 2006, 00:46) П...   Jul 7 2006, 06:58
- - Alex11   У IAR'а есть проблемы с оптимизатором - шибко ...   Jul 7 2006, 07:06
- - SasaVitebsk   Ошибку не нашёл. Чем бы я не забивал озу в JTAG вс...   Jul 8 2006, 18:01
- - sensor_ua   Может, просто debug-версия с точками останова, а В...   Jul 8 2006, 21:25


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

 


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


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