-
- Что ни так? Молодой коллега(261 знак., 23.01.2018 22:05)
- Условие в цикле (первый if) посчитано в ассемблерном листинге ДО всех операций в for. И сразу принято решение, крутиться в for, или сразу break до for (а чего зазря считать). Компилятор не в курсе же, что run_timer_ms или gradient_table[i][0] у fk0(545 знак., 23.01.2018 23:49)
- Проверить что на самом деле означает GRADIENT_TAB_SIZE, тупо заменить for на while и убедиться что break таки работает. AU08(264 знак., 23.01.2018 22:19 - 22:41)
- клевещут, break-statement works only with switches and loops... - Evgeny_CD(23.01.2018 22:21)
- Что, по замыслу аффтора, должно делать это выражение? "gradient_table[i][0]" - AU08(23.01.2018 22:31)
- ничего, run_timer_ms увеличивается во времени тем самым при инкременте i со временем берется новое значение из таблички gradient_table. - Молодой коллега(23.01.2018 22:35)
- volatile, епт. - fk0(23.01.2018 22:49)
- Телепат 79-го уровня! - SciFi(23.01.2018 23:04)
- +100500! - AU08(23.01.2018 22:59)
- В чем смысл индекса [0]? - Evgeny_CD(23.01.2018 22:36)
- Массив двумерный (табличка) в [0] межат увеличивающиеся отсчеты времени. - Молодой коллега(23.01.2018 22:42)
- IMHO, нежелательно экономить скобки "()" внутри условий - AU08(23.01.2018 22:43)
- Я бы даже сказал "код в студию!" (пардон за баян) - SciFi(23.01.2018 22:37)
- Массив двумерный (табличка) в [0] межат увеличивающиеся отсчеты времени. - Молодой коллега(23.01.2018 22:42)
- volatile, епт. - fk0(23.01.2018 22:49)
- Кстати, да, есть ачучение, что молодой коллега настолько молод, что просто не знает сей. Думает, что написано одно, а там дрова. Впрочем, он ещё и скрытен, такшта пусть сам в своём говнокоде копается. - SciFi(23.01.2018 22:34)
- ничего, run_timer_ms увеличивается во времени тем самым при инкременте i со временем берется новое значение из таблички gradient_table. - Молодой коллега(23.01.2018 22:35)
- В процессоре случаем конвеера нет ? а то весьма занятно в отладчике выглядит на Шарках такие ходы... что может "пропустить" команду, потом ее исполнив... - sav6622(23.01.2018 22:18)
- А условие вообще выполняется? - lloyd(23.01.2018 22:07)
- Да, заходит в гото, потом как ни в чем не бывало продолжает выполнять for дальше. - Молодой коллега(23.01.2018 22:12)
- Это не доказательство выполнения условия, это особенность отладки ARM - VLLV(23.01.2018 23:16)
- Похоже это st-link мне мозги делает, есть ещё какие-то глюки. Сейчас ищу J-Link. Молодой коллега(144 знак., 23.01.2018 23:31)
- Не уверен, что причина в j-link. В спорных случаях отладки удобно переводить динамическими переменные в статические, хотя это тоже не гарантия. - VLLV(24.01.2018 11:22)
- Проблема была однозначно в отладчике, он из я яра не корректо шил контроллер. - Молодой коллега(24.01.2018 11:31)
- Ну... - VLLV(24.01.2018 11:34, ссылка)
- А я вот оставил.. :) - Молодой коллега(24.01.2018 11:57)
- Ну... - VLLV(24.01.2018 11:34, ссылка)
- Проблема была однозначно в отладчике, он из я яра не корректо шил контроллер. - Молодой коллега(24.01.2018 11:31)
- Не уверен, что причина в j-link. В спорных случаях отладки удобно переводить динамическими переменные в статические, хотя это тоже не гарантия. - VLLV(24.01.2018 11:22)
- Похоже это st-link мне мозги делает, есть ещё какие-то глюки. Сейчас ищу J-Link. Молодой коллега(144 знак., 23.01.2018 23:31)
- 1) Оптимизация? 2) А заглянуть в дизассемблер не судьба? 3) Ну и вообще, если что-то где-то портит память, то ещё и не такое бывает. - SciFi(23.01.2018 22:30)
- Оптимизация отключена, в дизассемблере и смотрю. Всё работало и отлаживалось хорошо, плохо стало когда был взят stlink и яр поставлен заново(той же версии). - Молодой коллега(23.01.2018 23:35)
- Причем тут версия, если у тебя просто говнокод, в чем ты сам же и сознался. Мало того, что volatile, так еще и инкремент может быть ни разу не атомарный: небось ARM, а он RISC, где load-(modify)-store архитектура, атомарных инкрементов никто не fk0(304 знак., 23.01.2018 23:44)
- Для меня костер инквизиции уже зажжен. :) - Молодой коллега(24.01.2018 11:12)
- вы кошмарите клиента. если инкремент в одном месте а в остальных только чтение проблемы не будет пока переменные влезают в разрядность процессора - 3m(24.01.2018 10:01)
- Причем тут версия, если у тебя просто говнокод, в чем ты сам же и сознался. Мало того, что volatile, так еще и инкремент может быть ни разу не атомарный: небось ARM, а он RISC, где load-(modify)-store архитектура, атомарных инкрементов никто не fk0(304 знак., 23.01.2018 23:44)
- Оптимизация отключена, в дизассемблере и смотрю. Всё работало и отлаживалось хорошо, плохо стало когда был взят stlink и яр поставлен заново(той же версии). - Молодой коллега(23.01.2018 23:35)
- Это не доказательство выполнения условия, это особенность отладки ARM - VLLV(23.01.2018 23:16)
- Да, заходит в гото, потом как ни в чем не бывало продолжает выполнять for дальше. - Молодой коллега(23.01.2018 22:12)
- Что ни так? Молодой коллега(261 знак., 23.01.2018 22:05)