-
- Если бы так все было просто! Компиляторы нонче до%я умные и могут
произвольно выбрасывать константы, подставляя значения этих констант прямо в операнды. - reZident(25.10.2024 15:29)
- +123456. Был у меня проект в Кейл для STM, там с помощью const был
зарезервирован сектор с настройками и значениями по умолчанию. Ну и
была настройка этих значений с помощью перезаписи сектора. Все
работало до поры до времени, но когда перешли на Кейл поновее, все
вдруг перестало работать. Именно как ты говоришь - часть констант в
определенных местах ушла в операнды, и пофиг им было на то, что в
секторе перезаписались новые значения. Излечилось это с помощью
volatile. - il-2(25.10.2024 15:41)
- Я тут плакался, что у CH32V303 внешняя шина не умеет читать нечотные 16р слова, но умеет читать 32р. Сделал функцию, в которую передаётся адрес, она читает слово и в зависимости от чётного-нечётного, возвращает 16р слово. Компилер подумал и оптимизировал в обычное чтение 16р слов. Типа, "дебил, чо ты там нахуевертил, смотри как надо". Пришлось переменную, которая вычитывает из памяти, делать волатильной. - mse homjak(25.10.2024 17:48)
- +123456. Был у меня проект в Кейл для STM, там с помощью const был
зарезервирован сектор с настройками и значениями по умолчанию. Ну и
была настройка этих значений с помощью перезаписи сектора. Все
работало до поры до времени, но когда перешли на Кейл поновее, все
вдруг перестало работать. Именно как ты говоришь - часть констант в
определенных местах ушла в операнды, и пофиг им было на то, что в
секторе перезаписались новые значения. Излечилось это с помощью
volatile. - il-2(25.10.2024 15:41)
- Если бы так все было просто! Компиляторы нонче до%я умные и могут
произвольно выбрасывать константы, подставляя значения этих констант прямо в операнды. - reZident(25.10.2024 15:29)