AlexRayne 7 6 июня Опубликовано 6 июня · Жалоба 24 минуты назад, Quantum1 сказал: один из примеров А собсно что вам не нравится то? Вы не потрудились привести исходник, описать что ожидаете получить, и что ломается. в чем проблема. Вы так долго будете свои картинки тут постить Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 6 июня Опубликовано 6 июня · Жалоба 1 минуту назад, AlexRayne сказал: А собсно что вам не нравится то? Вы не потрудились привести исходник, описать что ожидаете получить, и что ломается. в чем проблема. Вы так долго будете свои картинки тут постить Исходник - видимо секретный. Или автору стыдно его показывать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Quantum1 0 6 июня Опубликовано 6 июня (изменено) · Жалоба Товарищи, я не прошу вас исправить мой код и/или искать в нем проблемы, это моя задача. Мой вопрос совсем о другом. И он поставлен вполне конкретно. По просьбам трудящихся в привел только ОДИН пример! где комплилятор нарушает последовательность выполнения, цепляться за него не продуктивно, так как компилятор делает это регулярно и во многих совершенно разных местах.... Изменено 6 июня пользователем Quantum1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 6 июня Опубликовано 6 июня · Жалоба А смысл его показывать, если компилятор всё равно виноват :)) 1 минуту назад, Quantum1 сказал: Мой вопрос совсем о другом. И он поставлен вполне конкретно. Ответ: Что в коде написали, то компилятор и сделал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Quantum1 0 6 июня Опубликовано 6 июня · Жалоба On 6/6/2024 at 3:30 PM, VladislavS said: А смысл его показывать, если компилятор всё равно виноват :)) в шапке темы свой вопрос я сформулировал довольно четко Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 6 июня Опубликовано 6 июня · Жалоба 1 минуту назад, Quantum1 сказал: в шапке темы свой вопрос я сформулировал довольно четко Про некие "тэги"? В си для описания регистров периферии главный тэг - volatile. Как уже неоднократно сказано выше. И судя по листингу - у вас его нет. 2 минуты назад, Quantum1 сказал: По просьбам трудящихся в привел только ОДИН пример! где комплилятор нарушает последовательность выполнения, цепляться за него не продуктивно, так как компилятор делает это регулярно и во многих совершенно разных местах.... Вы не привели исходного кода и определений регистров периферии. Без которых вам нужно обращаться на форум прорицателей и ясновидящих, а не сюда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 6 июня Опубликовано 6 июня · Жалоба 1 час назад, Quantum1 сказал: Пишу свою специфическую библиотеку для работы с периферией. Для этого просто обязательно умение писать под оптимизирующий компилятор. Либо на асме. Третьего не дано. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stepanov 9 6 июня Опубликовано 6 июня · Жалоба Ребята, чего вы такие злобные? ) И таки третий путь есть. Если я правильно понимаю описанную ситуацию, то по классике это всё делается управлением режимами оптимизации компилятора применением разных "#pragma" Чтобы компилятор не сильно менял задуманный код, оптимизацию надо, локально, выключить. Вот в этом документе всё написано spru514t (compiler optimization).pdf ЗЫ (если быть точным то C2000 это не ARM процессор) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 6 июня Опубликовано 6 июня · Жалоба 5 минут назад, Stepanov сказал: Чтобы компилятор не сильно менял задуманный код, оптимизацию надо, локально, выключить. Чтобы компилятор вообще не менял задуманный код - его надо правильно написать. Если возникли желание/потребность отключить опитимизацию на участке кода, то вы явно что-то делаете не так. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 6 июня Опубликовано 6 июня · Жалоба 2TC: приведите описание типа структур через котроые вы обращаетесь к перефирии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stepanov 9 6 июня Опубликовано 6 июня · Жалоба 2 minutes ago, VladislavS said: Чтобы компилятор вообще не менял задуманный код - его надо правильно написать. Если возникли желание/потребность отключить опитимизацию на участке кода, то вы явно что-то делаете не так. Ну перестаньте отсебятину утверждать. Есть технология разработки ПО, которая предполагает управление режимами работы компилятора, обязательно для всего проекта (с этим думаю никто не будет спорить), и более детально, т.е. для отдельных файлов и участков кода, в таких случаях как у ТС. И вот вам документ в котором детально описано зачем, когда, и как это делается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 6 июня Опубликовано 6 июня · Жалоба 13 минут назад, Stepanov сказал: Чтобы компилятор не сильно менял задуманный код Ещё раз. Компилятор не имеет права менять задуманный код, но для этого его надо правильно писать. 9 минут назад, Stepanov сказал: в таких случаях как у ТС Вы это как поняли, если код не предъявлен? В хрустальном шаре? 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Quantum1 0 6 июня Опубликовано 6 июня · Жалоба On 6/6/2024 at 3:52 PM, Stepanov said: Ну перестаньте отсебятину утверждать. Есть технология разработки ПО, которая предполагает управление режимами работы компилятора, обязательно для всего проекта (с этим думаю никто не будет спорить), и более детально, т.е. для отдельных файлов и участков кода, в таких случаях как у ТС. И вот вам документ в котором детально описано зачем, когда, и как это делается. Огромное спасибо вам за проявление реальной профессиональной адекватности! Наконец кто то захотел помочь, а не пытататься тешить своё эго. Мне просто казалось, что в самом C есть стандартные методы для указания условно любому компилятору, про жесткую последовательность действий, без попыток оптимизации. On 6/6/2024 at 3:55 PM, VladislavS said: Вы это как поняли, если код не предъявлен? В хрустальном шаре? Просто у человека правильная техническая логика. On 6/6/2024 at 3:47 PM, VladislavS said: Чтобы компилятор вообще не менял задуманный код - его надо правильно написать. Если возникли желание/потребность отключить опитимизацию на участке кода, то вы явно что-то делаете не так. Уж простите, но так может говорить только человек не писавший проекты с объемом больше 1000 строк) или не писавший под МК с реалтаймом. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexRayne 7 6 июня Опубликовано 6 июня (изменено) · Жалоба 14 минут назад, Quantum1 сказал: Мне просто казалось, что в самом C есть стандартные методы для указания условно любому компилятору, про жесткую последовательность действий, без попыток оптимизации. по картинке которую вы положили - вам не понравилось что он сделал гото раньше чем чтото посчитал. А с какого перепугу вы решили что этого нелья делать? Что у Вас там вобще делается? вот поэтому народ и пишет что вам надо обращаться на канал рен-тв, к экстрасенсам. ну или в чат-ЖПТ песатъ 14 минут назад, Quantum1 сказал: Мне просто казалось, что в самом C есть стандартные методы для указания условно любому компилятору, про жесткую последовательность действий, без попыток оптимизации. Есть такой способ, но не понравится - раскидайте код по функциям глобальным (не конст), и для гарантии в другой объект их переложите, не там где вызываете. последовательность таких вызовов он не имеет права менять Изменено 6 июня пользователем AlexRayne Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 6 июня Опубликовано 6 июня · Жалоба 14 минут назад, Quantum1 сказал: Мне просто казалось, что в самом C есть стандартные методы для указания условно любому компилятору, про жесткую последовательность действий, без попыток оптимизации. Любая программа это и есть жесткая последовательность действий. Но если вы её компилируете оптимизирующим компилятором, то для него важны только функция main и все действия с volatile сущностями. Остальное он воспринимает как описание того что вы с ними хотите сделать. Если вы этого не понимаете, то получаете то что на вашей картинке. 18 минут назад, Quantum1 сказал: Уж простите Да куда уж нам... 😄 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться