-
- Думал думал сделал так IBAH(821 знак., 27.10.2024 16:43)
- Кароч. Вот так оно лежыт во флэши(ГЦЦ): mse homjak(290 знак., 25.10.2024 14:35)
- Если бы так все было просто! Компиляторы нонче до%я умные и могут
произвольно выбрасывать константы, подставляя значения этих констант прямо в операнды. - 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)
- Статья про const: mr-x(1 знак., 25.10.2024 07:46, ссылка)
- const не управляет размещением в памяти. Начинать надо с указания архитектуры и компилятора. - VladislavS.(25.10.2024 07:31)
- Константы могут быть размещены во flash. Peter_M(1006 знак., 25.10.2024 07:26)
- Читать документацию на компилятор. Например, для IAR AVR есть специальные слова, "__flash", "__farflash", "__hugeflash" - разместит данные во флеше с соответствующей разрядностью указателя на них, "__eeprom" - разместит данные понятно где. , - vpv.vpv(25.10.2024 06:50)
- Вот: il-2(1422 знак., 25.10.2024 06:23)
- "Достать" константу из RAM бывает гораздо быстрее, чем из FLASH. В
некоторых случаях, требующих быстродействия и/или многократного
повторения, это бывает критично. - vpv.vpv(25.10.2024 06:55)
- так эта... в нормальной микросхеме с нормальным процессором и шиной наоборот. шиня матрица с флешу качает и код и константные данные, размер 64 или 128 бит и набивает кэш. Озу параллельно грузит не константные данные. если учесть что у процессора два входа - то тогда константы в флешь это скорость. в stm32h750 c cortex-m7 именно так. - klen(27.10.2024 19:14)
- "Достать" константу из RAM бывает гораздо быстрее, чем из FLASH. В
некоторых случаях, требующих быстродействия и/или многократного
повторения, это бывает критично. - vpv.vpv(25.10.2024 06:55)
- Files в озуху скорее всего попадет, просто писАть в него нельзя будет. ASDFS(89 знак., 25.10.2024 01:16)
- Какой контроллер, какой компилятор? Например в Ардуино есть
волшебное слово PROGMEM для размещения данных во flash памяти (
памяти программ). - stf(24.10.2024 23:08)
- Это не в ардуине, а в avr-gcc - LightElf(25.10.2024 14:25)