ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
2 июня
151676 Топик полностью
testerplus (23.03.2009 19:56, просмотров: 134) ответил fk0 на Дайте идей нахаляву. Как бы ручками оптимизить код с целью уменьшения размера. pic18, hitech-c, STD версия (9.51pl2, если не ошибаюсь). Насколько я понимаю, IAR не лучше, CCS -- сасёт (пробовал, ужос). В листинги тоже смотреть страшно, софт написан с
1) К часто используемым переменным добавь квалификатор near. 2) Избавься от вызовов функций в прерываниях (сильно сократится код сохранения контекста) 3) Замени, где можно, операции с float на int (например "a = a * 1.5" на "a = a * 3 / 2") 4) Обращения к байтам в long'ах (или int'ах) делай через конструкцию *((char*)&L+0), *((char*)&L+1) ... 5) Если есть операции "~", "+", "-" над char'ом, то нужно помнить, что их результат - двухбайтовый, следовательно, спсасет приведение типов (типа "if ((char)a-b < 10)...") 6) Какие-то часто повторяющиеся куски кода можно засунуть в функции. 7) Обработка небольших массивов в цикле часто занимает больше места, чем последовательная работа с каждым элементом (для примера - обнуление массива из 10 char'ов) Ну, и по месту еще надо смотреть.