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

 
 
> STM32F103 SPI, RXNE периодически не выставляется, При отладке
566C6164
сообщение Jul 28 2014, 14:24
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 10-01-14
Пользователь №: 79 972



В железе все исправно работает.

Если запускаю в отладке - через какое-то время программа виснет на:

Код
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);


То есть почему-то в отладке этот флаг не всегда выставляется.

Как такое может быть? Посылая байт я автоматически получаю байт (сдвиговый регистр). Флаг должен выставляться всегда.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
566C6164
сообщение Jul 29 2014, 06:38
Сообщение #2





Группа: Участник
Сообщений: 11
Регистрация: 10-01-14
Пользователь №: 79 972



Если открыто окно View - System Viewer - SPI - SPI1 - проблема сразу проявляется.

Если закрываю - вроде уходит. Но ещё понаблюдаю. Потом отпишусь.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 29 2014, 08:19
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(566C6164 @ Jul 29 2014, 09:38) *
Если закрываю - вроде уходит. Но ещё понаблюдаю. Потом отпишусь.
И KnightIgor и Golikov A. уже написали - проблема в этом. В процессор вшита жесткая логика: регистр прочитали - флаг сбросить. Процессору абсолютно неважно кто читает его регистр - ядро по указке программы или отладочные схемы по просьбе отладчика, флаг будет сброшен в обоих случаях.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Jul 29 2014, 08:35
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(Сергей Борщ @ Jul 29 2014, 10:19) *
И KnightIgor и Golikov A. уже написали - проблема в этом. В процессор вшита жесткая логика: регистр прочитали - флаг сбросить. Процессору абсолютно неважно кто читает его регистр - ядро по указке программы или отладочные схемы по просьбе отладчика, флаг будет сброшен в обоих случаях.

К сожалению, факты говорят об этом, что есть очевидный глюк: отладка по JTAG должна быть non intrusive. В этом вообще весь смысл. Я рыться по сайту ST сейчас не буду, но помнится мне, что во всяких рекламах ST именно это и утверждала. Интересно, что там в более высоких сериях (2xx/4xx) и более новых (M0/M0+) процессорах...
Go to the top of the page
 
+Quote Post



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

 


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


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