- 
	
- Условие в цикле (первый 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)