- 
	
- Такого быть не должно. Единственная возможность для такого глюка - если по какой-то причине UkSoket не инициализируется в стартапе. Надо смотреть стартап. - il-2(23.10.2024 07:23)
 - Поскольку UkSocket - беззнаковое , то после его инкремента условие
>=1 - всегда выполняется. Есть повод порезвиться оптимизатору.  Samx(123 знак., 22.10.2024 23:49)
			
- Формально нет, т.к. 0xFFFF+1=0 - AlexBi(23.10.2024 10:23)
 
 - При самом первом вызове функции UkSoket не инициализирован, но
используется:  Samx(73 знак., 22.10.2024 20:58)
			
- Там проблема в другом. Статические переменые автоматически инициализируются 0. framer(528 знак., 22.10.2024 21:01, ссылка)
 
 - Внезапно! Объявил UkSoket как long... заработало - IBAH(22.10.2024 20:17)
			
- Понятно почему заработало? Если нет, значит, ещё не нашли причину. - Nikolay_Po(22.10.2024 20:23)
					
- пока ничего не понятно. Я не сказал, у меня КортексМ0, я подозреваю
это какая-то его фишка - IBAH(22.10.2024 20:25)
							
- Это не может быть фишкой. Скорей всего чтото не коректно пишет в
.bss и надписывает перемнную и проблема может быть в другом месте.
Это может обяснить почему при изменении на long ситуация меняеться
(скорей всего меняеться место переменной в памяти). Проблема может
появиться в другом месте. Надо распечатать .map и посмотреть что
стоит рядом может чтото и выяснится. - framer(22.10.2024 20:33)
									
- Посмотрел, ничего не пересекается  IBAH(502 знак., 22.10.2024 21:03)
											
- А что у Вас с TxLink? Вроде как один байт а работаете как с таблицей и находится по соседству framer(65 знак., 22.10.2024 21:12)
 
 
 - Посмотрел, ничего не пересекается  IBAH(502 знак., 22.10.2024 21:03)
											
 - Типа невыровненного доступа? Может, структуры ваших сокетов нужно
было объявить packet? - Nikolay_Po(22.10.2024 20:29)
									
- Есть подозрение, что UkSoket, размещается не выровненное, а
обращение идет как выровненному, или что-то в этом роде. - IBAH(22.10.2024 20:39)
											
- Может, всё-таки баг компилятора? - Nikolay_Po(22.10.2024 20:43)
													
- Баги в коде встречаются over9000 раз чаще. И мы видим лишь маленький кусочек кода. - SciFi(22.10.2024 20:51)
 
 
 - Может, всё-таки баг компилятора? - Nikolay_Po(22.10.2024 20:43)
													
 
 - Есть подозрение, что UkSoket, размещается не выровненное, а
обращение идет как выровненному, или что-то в этом роде. - IBAH(22.10.2024 20:39)
											
 
 - Это не может быть фишкой. Скорей всего чтото не коректно пишет в
.bss и надписывает перемнную и проблема может быть в другом месте.
Это может обяснить почему при изменении на long ситуация меняеться
(скорей всего меняеться место переменной в памяти). Проблема может
появиться в другом месте. Надо распечатать .map и посмотреть что
стоит рядом может чтото и выяснится. - framer(22.10.2024 20:33)
									
 
 - пока ничего не понятно. Я не сказал, у меня КортексМ0, я подозреваю
это какая-то его фишка - IBAH(22.10.2024 20:25)
							
 
 - Понятно почему заработало? Если нет, значит, ещё не нашли причину. - Nikolay_Po(22.10.2024 20:23)
					
 - Чудеса... Заремил инкременты, таже хня IBAH(1141 знак., 22.10.2024 19:54)
 - Короче, работает только на нулевом и первом уровне оптимизации. - IBAH(22.10.2024 19:23)
 - Вот это: "ConnectTCP[UkSoket]!=0" может становиться истиной? Как
только истина - так и выход. - Nikolay_Po(22.10.2024 19:21)
			
- После каждого инкремента UkSoket, идет проверка. Он никак не может быть отличным от
нуля. Проблема в том компилятор о чем-то догадывается и слишком
много на себя берет. Без оптимизации ведь работает. - IBAH(22.10.2024 19:28)
					
- Это кое-кто не догадался (не компилятор) и не объявил как volatile переменную, которая внезапно меняется вне контекста либо вашего
кода, либо внутри функции, которую вы вызываете. - Nikolay_Po(22.10.2024 19:39)
							
- Да они все статик, и UkSoket, и SoketTx. Нигде за пределами функции
не существуют - IBAH(22.10.2024 19:46)
									
- Прерывания в системе включены, в принципе? - Nikolay_Po(22.10.2024 19:59)
											
- Есть конечно, уарты, дма, системный таймер... - IBAH(22.10.2024 20:03)
 
 - И какой side effect они производят? Они ни от чего не зависят? От
аппаратуры? - Nikolay_Po(22.10.2024 19:56)
											
- Не от чего не зависят. Просто статические переменные внутри функции - IBAH(22.10.2024 20:00)
													
- А массив ConnectTCP? - Nikolay_Po(22.10.2024 20:18)
															
- И TxHead и TxTail? Оно же у вас разгребается другим кодом и вне контекста (в прерываниях выполнения кода ваших функций). Все эти массивы объявите volatile (если они меняются не только в вашей функции или их результатами могут воспользоваться другие функции до выхода из вашей). - Nikolay_Po(22.10.2024 20:22)
 - тоже статик но на уровне модуля. Тут не никакой многопоточности,
все на КА - IBAH(22.10.2024 20:22)
																	
- То есть, ОСРВ нет, просто крутится конечный автомат? А вложенных вызовов, рекурсий - нет? - Nikolay_Po(22.10.2024 20:25)
 
 
 
 - А массив ConnectTCP? - Nikolay_Po(22.10.2024 20:18)
															
 
 - Не от чего не зависят. Просто статические переменные внутри функции - IBAH(22.10.2024 20:00)
													
 
 - Прерывания в системе включены, в принципе? - Nikolay_Po(22.10.2024 19:59)
											
 - Это к примеру проверки качества кода - если ломается при включении оптимизации - значит, содержит ошибки, как минимум, в объявлении переменных. Как максимум - в нарушении неделимости доступа к данным. - Nikolay_Po(22.10.2024 19:40)
 
 - Да они все статик, и UkSoket, и SoketTx. Нигде за пределами функции
не существуют - IBAH(22.10.2024 19:46)
									
 
 - Это кое-кто не догадался (не компилятор) и не объявил как volatile переменную, которая внезапно меняется вне контекста либо вашего
кода, либо внутри функции, которую вы вызываете. - Nikolay_Po(22.10.2024 19:39)
							
 
 - После каждого инкремента UkSoket, идет проверка. Он никак не может быть отличным от
нуля. Проблема в том компилятор о чем-то догадывается и слишком
много на себя берет. Без оптимизации ведь работает. - IBAH(22.10.2024 19:28)
					
 - Я б UkSoket все-таки инициализировал явно... - LightElf(22.10.2024 18:55)
			
- Не помогает... Убрал оптимизацию полет, полет нормальный - IBAH(22.10.2024 19:04)
					
- Попробуйте, смеха ради, переменные сделать волатильными. У меня был
прикол с очень умным компилятором. Без дураков, умным,
оптимизировал в тютельку. Но по уму не работает. - mse homjak(22.10.2024 19:36)
							
- Пробовал, не помогает... - IBAH(22.10.2024 20:08)
 
 
 - Попробуйте, смеха ради, переменные сделать волатильными. У меня был
прикол с очень умным компилятором. Без дураков, умным,
оптимизировал в тютельку. Но по уму не работает. - mse homjak(22.10.2024 19:36)
							
 
 - Не помогает... Убрал оптимизацию полет, полет нормальный - IBAH(22.10.2024 19:04)