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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Странная проблема при оптимизации
scifi
сообщение Sep 28 2018, 11:27
Сообщение #16


Гуру
******

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



Цитата(Jenya7 @ Sep 28 2018, 14:12) *
в начале функции опроса жестко поставил master_ack = 1; - все равно заходит в else.

Кстати, с "заходит" тоже бывают сюрпризы. При высоком уровне оптимизации исходник и машинный код соотносятся очень условно. Курсор в отладчике может прыгать по исходнику довольно хаотично. Чтобы точно сказать, что "заходит", надо там сделать вывод в UART или что-то типа того.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Sep 28 2018, 12:58
Сообщение #17


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(scifi @ Sep 28 2018, 17:27) *
Кстати, с "заходит" тоже бывают сюрпризы. При высоком уровне оптимизации исходник и машинный код соотносятся очень условно. Курсор в отладчике может прыгать по исходнику довольно хаотично. Чтобы точно сказать, что "заходит", надо там сделать вывод в UART или что-то типа того.

да но если я не ставлю точку останова а код свободно бежит то в результате мастер не находит слейв. а без оптимизации находит.
Go to the top of the page
 
+Quote Post
scifi
сообщение Sep 28 2018, 13:06
Сообщение #18


Гуру
******

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



Цитата(Jenya7 @ Sep 28 2018, 15:58) *
да но если я не ставлю точку останова а код свободно бежит то в результате мастер не находит слейв. а без оптимизации находит.

Скорее всего, не на тот участок кода смотрите. Надёжнее выводить значения интересующих переменных через тот же UART, так оптимизатор их не покорёжит. Внутрисхемный отладчик может и не помочь.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Sep 28 2018, 16:26
Сообщение #19


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(scifi @ Sep 28 2018, 14:27) *
Кстати, с "заходит" тоже ...



+100500

2TC
странно когда программист говорит компилятору - а теперь сделай красиво как хошь... а потом требует на отладке все стэпы которые ему казались что должны быть. Не находите?
Если вы хотите дебажить выхлоп оптимизатора - то ТОЛЬКО(!) на уровне азма. всё остальное будет от лукавого.

Go to the top of the page
 
+Quote Post
scifi
сообщение Sep 28 2018, 18:40
Сообщение #20


Гуру
******

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



Цитата(Jenya7 @ Sep 28 2018, 14:12) *
О! Только после того как определил static volatile uint32_t master_ack; - все стало на свои места. отдельно static или отдельно volatile не работает.

Пляски с бубном. Отключите оптимизацию, Вы к ней явно не готовы.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th April 2024 - 00:45
Рейтинг@Mail.ru


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