Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Оптимизация кода #13

Open
GoogleCodeExporter opened this issue Mar 14, 2015 · 0 comments
Open

Оптимизация кода #13

GoogleCodeExporter opened this issue Mar 14, 2015 · 0 comments

Comments

@GoogleCodeExporter
Copy link

Коллеги!

В коде явно встречается наличие поддержки 
snes-мышки, о которой ну никак не написано в 
документации.
А между тем расскоментирование #define NOMOUSE 
дает феноменальный выигрыш в размере - 
прошивка худеет на 1кб, как минимум.

Второе - если в компилятор добавить опции:  
-fdata-sections -ffunction-sections -fshort-enums -mcall-prologues, а в 
линкер -gc-sections,--relax  то выигрываем еще 20 
байт. 

вот примерный "выхлоп":

Без опций компилятора и линкера:
./checksize main.bin
ROM: 6448 bytes (data=260)
RAM: 405 bytes

С опциями:
./checksize main.bin
ROM: 6428 bytes (data=260)
RAM: 405 bytes

C включением NOMOUSE:
./checksize main.bin
ROM: 5342 bytes (data=206)
RAM: 335 bytes

Также, похоже, что обновление V-USB до 
последней версии дает небольшой выигрыш в 
размерах и (наверное) там исправили что-то 
еще. Единственное, что нужно в main.c добавить 
const перед объявлением PROGMEM (правда v-usb тут 
нипричем - это новый avr-gcc).

К сожалению свободных джойстиков нет, но 
устройство после прошивки определяется в 
системе. 

Original issue reported on code.google.com by a...@emulate.su on 17 Feb 2013 at 7:28

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant