Перейти к содержанию
    

Тэги для принудительной последовательности компиляции С-кода

24 минуты назад, Quantum1 сказал:

один из примеров 

 

image.png

А собсно что вам не нравится то? Вы не потрудились привести исходник, описать что ожидаете получить, и что ломается. в чем проблема.
Вы так долго будете свои картинки тут постить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, AlexRayne сказал:

А собсно что вам не нравится то? Вы не потрудились привести исходник, описать что ожидаете получить, и что ломается. в чем проблема.
Вы так долго будете свои картинки тут постить

Исходник - видимо секретный. Или автору стыдно его показывать.  :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Товарищи, я не прошу вас исправить мой код и/или искать в нем проблемы, это моя задача.

 

Мой вопрос совсем о другом. И он поставлен вполне конкретно. По просьбам трудящихся в привел только ОДИН пример! где комплилятор нарушает последовательность выполнения, цепляться за него не продуктивно, так как компилятор делает это регулярно и во многих совершенно разных местах....

 

Изменено пользователем Quantum1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А смысл его показывать, если компилятор всё равно виноват :))

1 минуту назад, Quantum1 сказал:

Мой вопрос совсем о другом. И он поставлен вполне конкретно.

Ответ: Что в коде написали, то компилятор и сделал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/6/2024 at 3:30 PM, VladislavS said:

А смысл его показывать, если компилятор всё равно виноват :))

в шапке темы свой вопрос я сформулировал довольно четко

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, Quantum1 сказал:

в шапке темы свой вопрос я сформулировал довольно четко

Про некие "тэги"?

В си для описания регистров периферии главный тэг - volatile. Как уже неоднократно сказано выше. И судя по листингу - у вас его нет.

2 минуты назад, Quantum1 сказал:

По просьбам трудящихся в привел только ОДИН пример! где комплилятор нарушает последовательность выполнения, цепляться за него не продуктивно, так как компилятор делает это регулярно и во многих совершенно разных местах....

Вы не привели исходного кода и определений регистров периферии. Без которых вам нужно обращаться на форум прорицателей и ясновидящих, а не сюда.  :unknw:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Quantum1 сказал:

Пишу свою специфическую библиотеку для работы с периферией.

Для этого просто обязательно умение писать под оптимизирующий компилятор. Либо на асме. Третьего не дано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребята, чего вы такие злобные? )

И таки третий путь есть.

Если я правильно понимаю описанную ситуацию, то по классике это всё делается управлением режимами оптимизации компилятора применением разных "#pragma"

Чтобы  компилятор не сильно менял задуманный код, оптимизацию надо, локально, выключить.

Вот в этом документе всё написано

spru514t (compiler optimization).pdf

 

ЗЫ (если быть точным то C2000 это не ARM процессор)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 минут назад, Stepanov сказал:

Чтобы  компилятор не сильно менял задуманный код, оптимизацию надо, локально, выключить.

Чтобы компилятор вообще не менял задуманный код - его надо правильно написать.

Если возникли желание/потребность отключить опитимизацию на участке кода, то вы явно что-то делаете не так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2TC: приведите описание типа структур через котроые вы обращаетесь к перефирии.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, VladislavS said:

Чтобы компилятор вообще не менял задуманный код - его надо правильно написать.

Если возникли желание/потребность отключить опитимизацию на участке кода, то вы явно что-то делаете не так.

Ну перестаньте отсебятину утверждать. Есть технология разработки ПО, которая предполагает управление режимами работы компилятора, обязательно для всего проекта (с этим думаю никто не будет спорить), и более детально, т.е. для отдельных файлов и участков кода, в таких случаях как у ТС. И вот вам документ в котором детально описано зачем, когда, и как это делается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 минут назад, Stepanov сказал:

Чтобы  компилятор не сильно менял задуманный код

Ещё раз. Компилятор не имеет права менять задуманный код, но для этого его надо правильно писать. 

9 минут назад, Stepanov сказал:

в таких случаях как у ТС

Вы это как поняли, если код не предъявлен? В хрустальном шаре?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 строк)

или не писавший под МК с реалтаймом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 минут назад, Quantum1 сказал:

Мне просто казалось, что в самом C есть стандартные методы для указания условно любому компилятору, про жесткую последовательность действий, без попыток оптимизации.

по картинке которую вы положили - вам не понравилось что он сделал гото раньше чем чтото посчитал.


А с какого перепугу вы решили что этого нелья делать? Что у Вас там вобще делается? вот поэтому народ и пишет что вам надо обращаться на канал рен-тв, к экстрасенсам. ну или в чат-ЖПТ песатъ

14 минут назад, Quantum1 сказал:

Мне просто казалось, что в самом C есть стандартные методы для указания условно любому компилятору, про жесткую последовательность действий, без попыток оптимизации.

Есть такой способ, но не понравится - раскидайте код по функциям глобальным (не конст), и для гарантии в другой объект их переложите, не там где вызываете. последовательность таких вызовов он не имеет права менять

Изменено пользователем AlexRayne

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 минут назад, Quantum1 сказал:

Мне просто казалось, что в самом C есть стандартные методы для указания условно любому компилятору, про жесткую последовательность действий, без попыток оптимизации.

Любая программа это и есть жесткая последовательность действий. Но если вы её компилируете оптимизирующим компилятором, то для него важны только функция main и все действия с volatile сущностями. Остальное он воспринимает как описание того что вы с ними хотите сделать. Если вы этого не понимаете, то получаете то что на вашей картинке.

 

18 минут назад, Quantum1 сказал:

Уж простите

Да куда уж нам... 😄

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...