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

 
 
 
Reply to this topicStart new topic
> stm32 + freertos. Странные значения переменных в отладчике
Vladimir Prokofi...
сообщение Mar 1 2012, 12:24
Сообщение #1


Участник
*

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



Iar 6.21 используется. При отладке STM32 + freertos иногда внутри функции все значения переменных заведомо неправильные. Оптимизация выключена вся.

Выглядит это так, реальные значения привожу:

В одном из модулей описан глобальный массив track, его location: 0x20004438
Внутри этого модуля описана функция получения указателя на одну из точек трека
Код
TGPSPoint * TASK_GetCurPoint(){
  return &(track[0]);
}


В другом модуле вызываем эту функцию:
Код
{
  TGPSPoint *curPoint;
  
  curPoint = TASK_GetCurPoint(); //точка остановки 1
  следующая строка;  // точка остановки 2
...
}


На первой точке видим
curPoint значение 0xE9CDFD07
Что разумно, она может быть любая
На второй точке значение не меняется, хотя я ожидал увидеть там 0x20004438, ну или по крайней мере другое значение.

Внутри этой функции Watch показывает явную чушь по всем переменным, но после выхода результат верный. Вроде как без freertos таких проблем небыло, или я не замечал. В чем тут подвох и как исправить? Очень напрягает невозможность увидеть значение...

Сообщение отредактировал IgorKossak - Mar 1 2012, 14:10
Причина редактирования: [code]
Go to the top of the page
 
+Quote Post
Sagittarius
сообщение Mar 1 2012, 17:27
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



как вариант смотреть в окне local - все локальные переменные. там вроде все правильно отображалось при такой ерунде в окне wathc.
Go to the top of the page
 
+Quote Post
kan35
сообщение Mar 2 2012, 05:15
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



на самом деле все просто - минимизируйте оптимизацию кода компилятором. Будет работать медленнее, зато в переменных будет то, что ожидаете.
Go to the top of the page
 
+Quote Post
Vladimir Prokofi...
сообщение Mar 2 2012, 11:35
Сообщение #4


Участник
*

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



Цитата(kan35 @ Mar 2 2012, 09:15) *
на самом деле все просто - минимизируйте оптимизацию кода компилятором. Будет работать медленнее, зато в переменных будет то, что ожидаете.

Вся оптимизация выключена, а в переменных совсем не то sm.gif
Посмотрел locals там все то же самое как и в watch, неправильное т.е.

Сообщение отредактировал Vladimir Prokofiev - Mar 2 2012, 11:45
Go to the top of the page
 
+Quote Post

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

 


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


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