-
- "нужна ещё память ПЗУ со значениями для инициализации начальных
значений" — они не инициализируются а так и остаются в ПЗУ. Когда у
тебя что-то копируется из const, то копирование идет прямиком из
ПЗУ (адреса другие). ОЗУ не используется вообще. - RxTx(23.06.2023 12:27)
- Согласен. Тогда в варианте с const памяти дб меньше тк массив в пзу
и значения беруться напрямую из ПЗУ. shan(170 знак., 23.06.2023 16:23)
- может оптимизация. сравни память для такого случая symbions(51 знак., 23.06.2023 21:15)
- Согласен. Тогда в варианте с const памяти дб меньше тк массив в пзу
и значения беруться напрямую из ПЗУ. shan(170 знак., 23.06.2023 16:23)
- Если на пальцах, то в Кайле между startup и main выполняется
прослойка копирующая значения инициилизированных переменных из ПЗУ
в ОЗУ. Т.е. если в коде есть инициилизированные переменные, то
прослойка по-любому будет. Посмотреть можно отладчиком войдя в
startup. В гнушном startup она присутствует в явном виде. - Chum_A(23.06.2023 09:23)
- Про копировщик инит значений знаю. Он также обнуляет память типа
ZI. Для копировщика начальных значений в озу нужны значения в пзу.
Поэтому в 1 варианте суммарная память дб больше. А такого не
получается. Или линк не отображает память пзу инит значений для
копировщика - shan(23.06.2023 10:40 - 11:14)
- У вас в примере 6 целых по 4 байта. 24 байта. Да от любого чиха 24
байта могут вылезти где угодно. Таких мелких тараканов ловить
бессмысленно. - SciFi(23.06.2023 10:44)
- Реально в проекте массив 376 байт. Он только читается=высылается по
SPI. Вначале он был описан без const. Решил сэкономить Память.
Добавил const. 0зу RW уменьшилось на 376 а RO увеличилось на те же
376. Но для 1го варианта нужен образ инит значений в ПЗУ. - shan(23.06.2023 11:01)
- Ну если очень интересно, то сравните построчно map-файлы для одного и другого варианта - Chum_A(23.06.2023 12:05)
- Как обычно, начинают всплывать неожиданные подробности. Уверен, там ещё что-то интересное осталось за кадром. Но посоветовать ничего не могу, ибо кейлом не пользуюсь... - SciFi(23.06.2023 11:04)
- Реально в проекте массив 376 байт. Он только читается=высылается по
SPI. Вначале он был описан без const. Решил сэкономить Память.
Добавил const. 0зу RW уменьшилось на 376 а RO увеличилось на те же
376. Но для 1го варианта нужен образ инит значений в ПЗУ. - shan(23.06.2023 11:01)
- У вас в примере 6 целых по 4 байта. 24 байта. Да от любого чиха 24
байта могут вылезти где угодно. Таких мелких тараканов ловить
бессмысленно. - SciFi(23.06.2023 10:44)
- Про копировщик инит значений знаю. Он также обнуляет память типа
ZI. Для копировщика начальных значений в озу нужны значения в пзу.
Поэтому в 1 варианте суммарная память дб больше. А такого не
получается. Или линк не отображает память пзу инит значений для
копировщика - shan(23.06.2023 10:40 - 11:14)
- Возможно, нет обращения к массиву. Линкер и выбросил. - BlackMorda(22.06.2023 19:35)
- Массив только читается. Записи в него нет. Но линкер в 1 варианте все равно размещает его в озу. - shan(23.06.2023 10:52)
- "нужна ещё память ПЗУ со значениями для инициализации начальных
значений" — они не инициализируются а так и остаются в ПЗУ. Когда у
тебя что-то копируется из const, то копирование идет прямиком из
ПЗУ (адреса другие). ОЗУ не используется вообще. - RxTx(23.06.2023 12:27)