ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
1210534 Топик полностью
POV (20.05.2022 20:31, просмотров: 133) ответил mse homjak на Не, я память экономлю. Посматриваю, не подключил ли какой злодей килобайтик кода.
Делал на этой неделе прогу-обновлятор загрузчика для стм32... 

Она прикидывалась приложением с поддержкой накопителя внутри флеши с LFS. И на накопитель надо было вместить и обновлятор и сам бинарник загрузчика.

Так стоило сделать вызов удаления файла обновлятора чтобы он случайно кем-то (как-то) не применился - так сразу +20 кбайт! .. и уже ничего не лезет.


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

Вот пример кейл51:


сейчас сделал так ради экономии пары тактов


PCA0CPL0 = *(1+(uint8_t*)&last);
PCA0CPH0 = *((uint8_t*)&last);

вот дизасм. тупое копирование из ячейки в SFR, короче не сделать




а вот "нормальный" код


PCA0CPL0 = last;
PCA0CPH0 = last >> 8;

нахера сначала загружается аккумулятор, а затем он переносится в SFR?!