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

 
 
> Нарвался на глючище..., addon
ViKo
сообщение Jul 4 2015, 09:18
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Прошу присобачить к теме Dr.Alex-а.

Поскольку сам писал так же, решил проверить. В Кейле.

Оптимизация -o0
Код
;;;84       while (hUsbDeviceFS.dev_state != USBD_STATE_CONFIGURED) { }
  000010  bf00              NOP      
                    |L3.18|
  000012  480a              LDR      r0,|L3.60|
  000014  f89001fc          LDRB     r0,[r0,#0x1fc]; hUsbDeviceFS
  000018  2803              CMP      r0,#3
  00001a  d1fa              BNE      |L3.18|

Оптимизация -o3
Код
;;;84       while (hUsbDeviceFS.dev_state != USBD_STATE_CONFIGURED) { }
   000010  4809              LDR      r0,|L3.56|
   000012  f89001fc          LDRB     r0,[r0,#0x1fc]
                     |L3.22|
   000016  2803              CMP      r0,#3
   000018  d1fd              BNE      |L3.22|


Видим, что Кейл ведет себя так же. rolleyes.gif А писатели Куба - лохи голимые. Надо было volatile задать.

Dr.Alex - спасибо. Еще один малый шаг к вершинам познания...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Jul 5 2015, 15:39
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Вроде там была функция типа Getstatus, или state, вместо прямого обращения к полям структуры.

Компиляторы работают верно и ожидать от них другого не надо. Почему они вообще не выкидывают проверку? Потому что изменение дальше по коду изменит регистр и проверка выполнится.

Куб имеет четкий воркфлов, на дефолтной оптимизации, а этотне 0 уровень у меня много работало корректно, только надо не гнать отсебятину, а делать по их заданной последовательности. Многое там не оптимально, но как быстрый тест или детский пример покатит....
Go to the top of the page
 
+Quote Post
Corvus
сообщение Jul 5 2015, 15:56
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 24-04-08
Из: Зеленоград
Пользователь №: 37 056



Цитата(Golikov A. @ Jul 5 2015, 18:39) *
Многое там не оптимально, но как быстрый тест или детский пример покатит....

Но здесь-то все профи высшего класса, ошибок никогда не допускают. Уже успели создать 2 темы и обругать, как ST, так и два компилятора (совершенно незаслуженно при этом). Название тем достойно восхищения. biggrin.gif
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jul 5 2015, 16:29
Сообщение #4


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Corvus @ Jul 5 2015, 18:56) *
Но здесь-то все профи высшего класса, ошибок никогда не допускают. Уже успели создать 2 темы и обругать, как ST, так и два компилятора (совершенно незаслуженно при этом). Название тем достойно восхищения. biggrin.gif

Компилятор я не ругал. Хотя и не понимаю смысла проверять в цикле регистр, который не может измениться. Здесь бы предупреждение выдать не помешало.
Я потому и ввел проверку состояния, что устройство то запускается, то нет...
GetStatus - это запрос по шине USB, по-моему, не то.

Цитата(Golikov A. @ Jul 5 2015, 18:39) *
Почему они вообще не выкидывают проверку? Потому что изменение дальше по коду изменит регистр и проверка выполнится.

Как же она выполнится, если процессор зациклился на проверке? Посмотрите второй код в первом сообщении. rolleyes.gif

Цитата(Golikov A. @ Jul 5 2015, 18:39) *
только надо не гнать отсебятину, а делать по их заданной последовательности.

Где??? Где она описана, эта ... последовательность? Тыкаюсь, как слепой, во все дыры... Конкретно - USB CDC на STM32F207.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ViKo   Нарвался на глючище...   Jul 4 2015, 09:18
- - alag57   Цитата(ViKo @ Jul 4 2015, 14:18) Dr.Alex ...   Jul 4 2015, 10:11
|- - ViKo   Цитата(alag57 @ Jul 4 2015, 13:11) Спасиб...   Jul 4 2015, 10:27
|- - alag57   Цитата(ViKo @ Jul 4 2015, 15:27) А когда ...   Jul 4 2015, 13:01
|- - ViKo   Цитата(alag57 @ Jul 4 2015, 16:01) Из-за ...   Jul 4 2015, 13:33
- - Corvus   Цитата(ViKo @ Jul 4 2015, 12:18) А писате...   Jul 4 2015, 10:20
- - scifi   Тут есть два аспекта. 1) А вот не надо включать оп...   Jul 4 2015, 13:51
- - ViKo   Доктор Алекс в своей манере высказал свое мнение. ...   Jul 4 2015, 14:55
|- - jcxz   Цитата(ViKo @ Jul 4 2015, 20:55) Оптимиза...   Jul 4 2015, 15:13
|- - scifi   Цитата(ViKo @ Jul 4 2015, 17:55) Оптимиза...   Jul 4 2015, 16:27
|- - adnega   Цитата(ViKo @ Jul 4 2015, 17:55) Доктор А...   Jul 5 2015, 13:48
- - Golikov A.   Тот извесный школьник давил на то что неверный пол...   Jul 5 2015, 12:36
- - HardEgor   Цитата(ViKo @ Jul 4 2015, 15:18) Видим, ч...   Jul 5 2015, 13:05
- - Golikov A.   Обвиняли как раз компилятор, и это не верно. Комп...   Jul 5 2015, 17:13


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

 


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


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