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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Нарвался на глючище..., 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
alag57
сообщение Jul 4 2015, 10:11
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 130
Регистрация: 26-06-06
Из: Березовский
Пользователь №: 18 355



Цитата(ViKo @ Jul 4 2015, 14:18) *
Dr.Alex - спасибо. Еще один малый шаг к вершинам познания...

Спасибо то за что? Это же очевидно.
Go to the top of the page
 
+Quote Post
Corvus
сообщение Jul 4 2015, 10:20
Сообщение #3


Знающий
****

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



Цитата(ViKo @ Jul 4 2015, 12:18) *
А писатели Куба - лохи голимые. Надо было volatile задать.


Все ошибаются. Если не трудно, напишите ST в саппорт - пофиксят. И всем будет приятно. sm.gif
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jul 4 2015, 10:27
Сообщение #4


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

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



Цитата(alag57 @ Jul 4 2015, 13:11) *
Спасибо то за что? Это же очевидно.


Очевидно, когда увидел. А когда у меня USB не запускается из-за этого, возможно - то спасибо тут к месту. rolleyes.gif

В саппорт писать нет смысла. Там, скорее всего, сделано, как задумано. Я лучше продолжу штудировать Референс Мануал, и писать своё... но уже после отпуска. laughing.gif

Go to the top of the page
 
+Quote Post
alag57
сообщение Jul 4 2015, 13:01
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 130
Регистрация: 26-06-06
Из: Березовский
Пользователь №: 18 355



Цитата(ViKo @ Jul 4 2015, 15:27) *
А когда у меня USB не запускается из-за этого

Из-за volatile? Я был о вас лучшего мнения biggrin.gif
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jul 4 2015, 13:33
Сообщение #6


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

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



Цитата(alag57 @ Jul 4 2015, 16:01) *
Из-за volatile? Я был о вас лучшего мнения biggrin.gif


Т.е., когда я ничтоже сумняшеся написал:

while (hUsbDeviceFS.dev_state != USBD_STATE_CONFIGURED) { }

то виноват я сам, а Куб тут не при чем? rolleyes.gif Состояние USB устройства нельзя было проверять таким образом? Скажу по секрету, что без проверки устройство в одном проекте запускается, в другом нет. И данный пример окончательно поставил крест на Кубе (не стране biggrin.gif )!

Может, и не из-за этого... мало ли в Кубе глюков?



Go to the top of the page
 
+Quote Post
scifi
сообщение Jul 4 2015, 13:51
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Тут есть два аспекта.
1) А вот не надо включать оптимизацию без надобности. Именно по этой причине. Для тех, кто в танке: по причине того, что всякие кубы - это индусский говнокод.
2) Доктор Алекс вчера перебрал горячительного и выплеснул на форум. Не обращайте внимания.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jul 4 2015, 14:55
Сообщение #8


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

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



Доктор Алекс в своей манере высказал свое мнение. Не обращая внимание на форму, скажем спасибо за содержание.
Оптимизация не должна влиять на работоспособность программы. Удивляюсь таким советам!
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 4 2015, 15:13
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ViKo @ Jul 4 2015, 20:55) *
Оптимизация не должна влиять на работоспособность программы. Удивляюсь таким советам!

Поддерживаю!
А если она всё-таки влияет, то в топку не оптимизацию, а такой код.
Если включаешь оптимизацию и что-то перестаёт работать - надо браться за отладчик и искать, а не прятать голову в песок.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jul 4 2015, 16:27
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(ViKo @ Jul 4 2015, 17:55) *
Оптимизация не должна влиять на работоспособность программы.

Да ради бога. Я же на заставляю вас использовать этот куб.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 5 2015, 12:36
Сообщение #11


Гуру
******

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



Тот извесный школьник давил на то что неверный полученный код, а на самом деле неверный входной код.

В той теме тс начал гнать и не слушать... Вы берете маленький кусок и смотрите, переменная не объявлена изменчивой и нигде не меняеться, а вы вспомните что эта переменная может измениться внутри вайла. Попробуйте добавить изменения переменной под вайлом по какому то условию и все может поменятся....
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Jul 5 2015, 13:05
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(ViKo @ Jul 4 2015, 15:18) *
Видим, что Кейл ведет себя так же. rolleyes.gif А писатели Куба - лохи голимые. Надо было volatile задать.

Возможно для этого они и объявляют на каждый чих собственную функцию, т.е. вашей проверке вместо переменной hUsbDeviceFS.dev_state должна быть функция типа check_hUsbDeviceFS(_dev_state). Тогда компилятор её не завернет и volatile не потребуется. Ну подумаешь немножечко код подрастет... ж)
Go to the top of the page
 
+Quote Post
adnega
сообщение Jul 5 2015, 13:48
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(ViKo @ Jul 4 2015, 17:55) *
Доктор Алекс в своей манере высказал свое мнение.

Он обвинил компилятор в генерации некорректного кода, а не исходник.
Кста, а Куб не запрещает ли включать оптимизацию? Может, он только для -o0 писан.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 5 2015, 15:39
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 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

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

 


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


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