OUD TOPIC, ZIE DATUM
dus misschien een nieuwe starten als dit echt een ding wordt. Na wat worstelen met verschillende IDE's is het vanzelfsprekend maar misschien is dit nog handig voor iemand die die worsteling liever overslaat)
Ik zat tot voor kort met een tekst-editor en een makefile te klussen, dat werkt. Maar debuggen in een IDE met een watch window en het op een regel kunnen zetten van een breakpoint etc. werkt toch wel fijner. Eclipse is mooi maar ingewikkeld. Dus ook met code::blocks aan de gang gegaan.
Ik heb de tutorial van avr-freaks gebruikt, al baseerd die zich op een oude versie. Instellingen zitten soms op een andere plek.
In aanvulling daar op dus dat bij code::blocks 20.03 op mijn debian 11 systeem de volgende instellingen gewijzigd moesten worden:
Bij settings/compiler/search directories:
* Er is een tablad "linker" en "compiler". Standaard wordt in usr/lib en usr/include gezocht. Wijzig dit zowel bij het tabblad "compiler" als bij "linker" in "/usr/lib/avr/include".
(CMIIW, maar bij mij werkt het nu wel en eerst niet. Zelfde probleem als Squant vermoed ik. Als je avr-includes elders staan natuurlijk daar naar wijzen, eventueel zelfs naar pre-compiled libraries bij "linker".)
Bij settings/compiler/toolchain executables:
* Controleer dat er echt avr-gcc etc. staat en niet de "gewone" gcc.
* De gewenste debugger kan worden gelecteerd in een drop-down menutje. Standaard is dit de "gewone" gdb, dit moet avr-gdb zijn. Maak dus in settings/debugger een nieuwe config aan met "/usr/bin/avr-gdb" als executable, en dus niet de standaard "usr/bin/gdb" van je computer zelf. Kies vervolgens die nieuwe config in het dropdown-menutje van settings/compiler/toolchain executables.
Ik gebruik geen custom makefile, builden werkt met bovenstaande instellingen.
extras
*Om te programmeren, kan in het menu "tools" een eigen commando worden toegevoegd. Ik heb daar een tool met als naam "program attin2313", als executable "avrdude" en als argumeten "-c dragon_isp -p t2313 -U flash:w:$(PROJECT_DIR)/$(TARGET_OUTPUT_FILE)". Dat is uiteraard aan te passen voor welke chip je gebruikt.
*Ik zet vervolgens in een terminal het dwen-bit (zit in hfuse, iig bij de t2313) om te kunnen debuggen. (Ik heb het stuk rond srec_cat overgeslagen. Met srec_cat zou het ook automatisch moeten kunnen / op basis van de fuses.c file)
*Bij het tools menu heb ik ook een tool toegevoegd om avarice te starten met de juiste instellingen voor GDB: commando "avarice", argumenten "-g -w :4242".
* bij de debugger-settings moet dan ook deze poort worden opgegeven. Dat zit in je project bij "properties" (rechtsklik op de projectnaam), op het tabblad "debugger". Bij additional GDB commands kun je "break main" opgeven in het vak voor "after connection".
Bij mij werkt dit, maar het kan zijn dat ik niet alle daarvoor nodige wijzigingen heb onthouden of dat ik het niet helder heb geformuleerd hierboven. (Als er meer mensen mee worstelen is het misschien leuk een nieuwe, up-to-date tutorial te maken? Maar dan moeten we wel weten wat er standaard niet goed gaat, dus een paar mensen die hun ervaringen bijhouden met screenshots van problemen en oplossingen - misschien toch in een nieuw topic?)