## ### ## ## ## ######
_ _ ( ) ( ) | | | | | | | | | (_) | (_____)
___ ( _`\ | ( (_) | |___ | (_, ) (____/'
### # # ## # ## ### # # ####
### ## # # # # # # # # # # # #
IMPORTANT: enter the case-INsensitive alphabetic (no numbers) code AND WRITE SOME SHORT summary of changes (below) if you are saving changes. (not required for previewing changes). Wiki-spamming is not tolerated, will be removed, so it does NOT even show up in history. Spammers go away now. Visit Preferences to set your user name Summary of change: Q. How can I decide if I want to compile my own firmware? * People who got GenBoard/VerThree from WebShop implicitely have GenBoard/Manual/License/WBSensor so usually use the WBO2 enabled precompiled firmware release from GenBoard/UnderDevelopment/FirmwareChanges that gets testing (developers use it too, on their vehicles). Remember, in any case, WhatEverYouDoYouDoItAtYourOwnRisk. * v2.2 users are more experienced (because at that time everyone compiled his own firmware) and build their firmware themselves. Anyone is encouraged to release compiled firmware for whatever board/LCD/... versions, after sufficient testing. * some use the firmware for special applications, they usually compile themselves Q. I have Windows and I want to build the VEMS firmware. What do I need? * Visit http://sourceforge.net/projects/winavr Download version 20040720 WINAVR package (13MB). '''Q.''' I get "cannot find the file specified" or similar error. * Verify that avr-gcc is in your PATH (countrary to rumours, it works from cmd not just sh, if the necessary programs are in the PATH). '''Q.''' I get some "library" related problems * Verify that you don't have unrelated entries in the LIB variable. unset LIB (in sh) or set LIB="" (in cmd) usually works. '''Q.''' I am still having problems getting the Gcc Compiler to work correctly. Who will help me? * visit [http://www.avrfreaks.net/phpBB2/viewforum.php?f=2 AVRfreaks AVR GCC forum] Use the search function in the left column. Ask a question on the forum if searching the archives gets you nowhere. Q. I have linux. Is there anything for me? A. Some linux rpm packages are here: http://savannah.nongnu.org/download/simulavr/binaries/RPMS/i386/ I successfully used them on debian using alien --to-deb conversion. The above link for linux rpm's is obsolete. I searched on the AVR freaks site and came up with this software under tools, but I'm not sure which we would recommend to use. http://www.avrfreaks.net/Home/gensearch.php?keyword=linux+rpm§ion=0 ---- There was an annoying optimization bug (combine bug) fixed on 2003.jul.11. in mainstream experimental gcc (not only avr). If your package contains an older gcc, you must use gcc -O0 for several files (button.c and lcd.c comes to mind) or get a newer version. [http://slacy.com/phpwiki/index.php?pagename=avr-gcc Building your own C cross-compilers for Atmel AVR under Linux/x86] Please copy the testprogram (that tests wether a gcc has the bug) here: .... I think I've run into it (again?). I used this gcc version: <code> avr-gcc -v Reading specs from /usr/lib/gcc-lib/avr/3.3/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-languages=c,c++ --disable-nls --target=avr i386-redhat-linux Thread model: single gcc version 3.3 20030512 (prerelease) </code> There was a serious compilation error likely in table_lookup(). corr.ve_hp was all around the place, so was pulsewidth. The car behaved badly (it's a miracle that it ran at all!) MegaTune showed the incorrect VE as well. Another compiler that failed with table_lookup(): <code> Reading specs from /usr/lib/gcc/avr/3.4.3/specs Configured with: ./configure -v --enable-languages=c,c++ --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --build=i386-linux --host=i386-linux --target=avr Thread model: single gcc version 3.4.3 </code> Also bad calculated ve (often jumped to 0). Since this was triggered when we were fiddling with new timing code, so we suspected our code, but it was the compiler. Optional: Add document to category: Wiki formatting: * is Bullet list ** Bullet list subentry ... '''Bold''', ---- is horizontal ruler, <code> preformatted text... </code> See wiki editing HELP for tables and other formatting tips and tricks.