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

 
 
> Конфликт RAM и SPI
zheka
сообщение Jan 19 2017, 06:43
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Господа, я понимаю, что причину моей проблемы вы не найдете, но может быть подскажете, как искать ошибку.
А может быть и констатируете, что это не ошибка, а глюк отладчика...

Суть такова. Контроллер STM32F103, в нем включен USART. В обработчике прерывания по приему заполняется буфер, объявленный как uint8_t rx_buffer[50]; Буфер кольцевой.
Работаю с KEIL. Отлаживаю по SWD, в окно watch я добавил rx_buffer. Проблема в чем - в эту переменную, согласно уведомлениям отладчика, периодически в случайные позиции на мгновение вместо 0x00 записывается 0xFF или 0xAA. При этом единственное место в программе, где в эту переменную что-то пишется - это обработка прерывания по приему, я ставил брейкпоинт на эту единственную строку - не срабатывает. Потому как я для чистоты эксперимента вообще отключил источник данных.

Я закомментировал практически всю программу
Код
main()
{
while(1)
  {
    LCD_DrawFill(0,0,30,30,BLACK);
  }

}

Выяснилось, что глюк появляется когда присутствует именно эта строка. ну и анализ и комментирование строк в этой функции привели к тому, что глюк вызывается при записи в регистр данных SPI3.

Я бы обозначил эту проблему, как конфликт SPI и RAM если бы не два "но".

1. В SPI ведется запись еще несколькими функциями, но проблема возникает только в одной из них.
2. Я написал кусок кода, который в цикле проверяет каждый элемент rx_buffer на предмет отличия его от изначального 0x00 и поставил на нем брейкпоинт. Понимая, что проверка и кратковременное изменение буфера могут не совпасть по времени, я запустил программу на ночь, по моим прикидкам буфер должен был быть проверен около 3 миллионов раз. Ни разу програма не засекла вмешательство в буфер.


Похожие глюки, с записыванием данных не в те переменные у меня была как-то, когда я объявил безразмерный массив ( uint8_t XXX[]; ) Но в данном случае ничего такого у меня нет.

Скажите, возможно ли что отладчик брешет?
Как используя средства отдладки KEIL подловить момент записи в переменную и определить кто на нее посягает?

Сообщение отредактировал zheka - Jan 19 2017, 09:59
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- zheka   Конфликт RAM и SPI   Jan 19 2017, 06:43
- - scifi   Цитата(zheka @ Jan 19 2017, 09:43) Скажит...   Jan 19 2017, 06:51
- - zheka   ЦитатаКстати, с тактированием всё нормально? Может...   Jan 19 2017, 08:05
- - KnightIgor   Цитата(zheka @ Jan 19 2017, 08:43) Господ...   Jan 19 2017, 08:32
- - zheka   ЦитатаЯ бы посмотрел (по карте памяти), Это где пр...   Jan 19 2017, 08:59
- - jcxz   Цитата(zheka @ Jan 19 2017, 09:43) Как ис...   Jan 19 2017, 09:44
|- - scifi   Цитата(jcxz @ Jan 19 2017, 12:44) Насчёт ...   Jan 19 2017, 09:56
||- - jcxz   Цитата(scifi @ Jan 19 2017, 12:56) Когда ...   Jan 19 2017, 09:59
|- - Obam   Опередили про MPU… PM0056 STM32F10xxx Cortex-M3 p...   Jan 19 2017, 10:07
||- - jcxz   Цитата(Obam @ Jan 19 2017, 13:07) 0xE000E...   Jan 19 2017, 10:36
||- - Obam   "Кутузов был без глаза. Нет! У Кутузова н...   Jan 19 2017, 11:05
||- - scifi   Цитата(Obam @ Jan 19 2017, 14:05) STM чум...   Jan 19 2017, 11:18
|- - zheka   ///// Господа, в общем вывод такой - это глюк даж...   Jan 19 2017, 18:22
|- - jcxz   Цитата(zheka @ Jan 19 2017, 21:22) Зато э...   Jan 20 2017, 10:15
|- - scifi   Цитата(zheka @ Jan 19 2017, 21:22) Господ...   Jan 20 2017, 10:33
|- - SasaVitebsk   Цитата(scifi @ Jan 20 2017, 13:33) Я бы н...   Jan 22 2017, 08:58
|- - zltigo   Цитата(SasaVitebsk @ Jan 22 2017, 10:58) ...   Jan 22 2017, 19:10
|- - jcxz   Цитата(SasaVitebsk @ Jan 22 2017, 11:58) ...   Jan 23 2017, 06:45
|- - SasaVitebsk   Цитата(jcxz @ Jan 23 2017, 09:45) Во мног...   Jan 23 2017, 16:12
- - rudy_b   Тут есть еще и проблема с дебильной периферией STM...   Jan 20 2017, 16:34


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

 


RSS Текстовая версия Сейчас: 18th August 2025 - 10:10
Рейтинг@Mail.ru


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