microcontrollers:avr_ides_for_linux
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
microcontrollers:avr_ides_for_linux [2012/01/23 10:22] – [CodeLite] mithat | microcontrollers:avr_ides_for_linux [2012/01/26 23:09] – [Netbeans C/C++] mithat | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== AVR IDEs for Linux ====== | ====== AVR IDEs for Linux ====== | ||
- | Some quick notes on some options. No matter what, it seems that learning the toolchain' | + | :!: //While I have spent good chunks of time experimenting with the tools listed below, I have yet to develop anything like a non-trivial AVR---or any other microcontroller---project |
- | Executive summary (at this moment): If you are willing to run Java and deal with some intense resource demands, [[# | + | Some quick notes on some options I've investigated are given below in alphabetical order. The more I investigate, |
+ | |||
+ | Executive summary (at this moment): If you are willing to run Java and deal with some intense resource demands, [[# | ||
===== CodeBlocks ===== | ===== CodeBlocks ===== | ||
- | //:!: **Update (2011-01-16)**: | + | //:!: **Update (2011-01-16)**: |
//:!: **Update (2011-01-21)**: | //:!: **Update (2011-01-21)**: | ||
Line 14: | Line 16: | ||
Code completion is pretty good; completions popup automatically or with Ctrl-Space; calltips are available w/ Ctrl-Shift-Space. When you set up an AVR project, make sure to add ''/ | Code completion is pretty good; completions popup automatically or with Ctrl-Space; calltips are available w/ Ctrl-Shift-Space. When you set up an AVR project, make sure to add ''/ | ||
+ | |||
+ | ==== Using the built-in AVR project template ==== | ||
Some cautions: | Some cautions: | ||
- | * The standard CB AVR project doesn' | + | * The standard CB AVR project doesn' |
- | * How to change the MCU and clock frequency used isn't that intuitive. | + | * How to change the **MCU** and **clock frequency** used isn't that intuitive. |
- | * MCU: //Project > Build options... > Compiler settings > Compiler flags// (scroll down to the middle) **and** //Project > Build options... > Linker settings > Other linker options:// | + | |
- | * Frequency: //Project > Build options... > Compiler settings > #defines// | + | * **Clock frequency**: //Project > Build options... > Compiler settings > #defines// |
- | * There doesn' | + | |
- | This last one means that any external scripts developed to fill in the holes will require redundant entry of information---leading | + | Any external scripts developed to fill in the holes above (debugging and programming) |
==== Setting up a CB AVR project that uses a Makefile ==== | ==== Setting up a CB AVR project that uses a Makefile ==== | ||
Line 29: | Line 32: | ||
=== Configure Build, Compile, Clean, and Rebuild targets === | === Configure Build, Compile, Clean, and Rebuild targets === | ||
- | | + | The following assumes you have only **one** build configuration in your Makefile. We'll call it a '' |
+ | |||
+ | | ||
- Create a [[microcontrollers: | - Create a [[microcontrollers: | ||
- | - Open //Project > Properties > Build Targets// check the "This is a custom Makefile" | + | - Open //Project > Properties > Build Targets// |
- | - (Close | + | - Click the //Projects Settings// tab and check the "This is a custom Makefile" |
- | - Open //Project > Properties > Build Targets// and delete the "Debug" target. | + | - Click the //Build Targets// |
+ | - Click the //C/C++ parser options// tab and add ''/ | ||
- Close the dialog and //File > Save project// | - Close the dialog and //File > Save project// | ||
- | - Open //Project > Build options...// | + | - Open //Project > Build options...// |
- | - (Close | + | - Click on the //" |
- | - Open //Project > Build options...// under **both** the {project-name} and "Release" options in the left pane change things as follows:\\ {{: | + | |
- Close the dialog and //File > Save project// | - Close the dialog and //File > Save project// | ||
- | It's probably possible | + | |
+ | Once you have done this, you can //File > Save project as template...// | ||
=== Create additional targets === | === Create additional targets === | ||
- | For good measure, use //Tools > Configure tools...// to configure additional targets. Below is an example of a '' | + | For good measure, use //Tools > Configure tools...// to configure additional |
- | {{: | + | {{: |
- | If all the futzing above just seems too tweaky and/or you want to retain CodeBlock' | + | Alternately you might just add a custom tool to launch a terminal emulator and then manually invoke |
You should be aware that tools added this way are added globally, not on a per-project basis---so if you use CB for other tasks, these tools will pollute the interface. You can work around this by using separate CB [[http:// | You should be aware that tools added this way are added globally, not on a per-project basis---so if you use CB for other tasks, these tools will pollute the interface. You can work around this by using separate CB [[http:// | ||
Line 55: | Line 61: | ||
CodeLite is workable, but a little unstable (e.g., it crashes when you try to re-dock the Workspace View panel). The UI is also kinda rough. For one, it's not platform aware---dialog buttons are in the wrong order for GNOME/GTK+. Also, the buttons on at least one dialog were barely reachable on my 1280x800 lappy. The default toolbar items and locations are remarkably persistent. | CodeLite is workable, but a little unstable (e.g., it crashes when you try to re-dock the Workspace View panel). The UI is also kinda rough. For one, it's not platform aware---dialog buttons are in the wrong order for GNOME/GTK+. Also, the buttons on at least one dialog were barely reachable on my 1280x800 lappy. The default toolbar items and locations are remarkably persistent. | ||
- | Still, it has good autocompletion and some refactoring support. In spite of the roughness, this one is growing on me. | + | Still, it has good autocompletion and some refactoring support |
==== CodeLite with a custom toolchain ==== | ==== CodeLite with a custom toolchain ==== | ||
- | Codelite | + | |
+ | CodeLite | ||
+ | |||
+ | === Stuff you'll have to do once === | ||
+ | |||
+ | - Open //Settings > Build Settings... > Compiler// | ||
+ | - Rather than manually editing all the stuff for a custom | ||
+ | - Copy over all the stuff from the regular gcc toolchain | ||
+ | - Reopen | ||
+ | - Under the " | ||
+ | |||
+ | === Stuff you'll have to once for each workspace === | ||
+ | |||
+ | - Open //Workspace > Workspace Settings...// | ||
+ | - Select the "Code Completion" | ||
+ | |||
+ | === Stuff you'll have to once (or more) for each project === | ||
+ | - Open //Projec Settings > Common settings > Compiler// and a '' | ||
+ | - You might also consider '' | ||
+ | - There are probably other switches that should be added here as well, but I'll need to check the toolchain documentation and other people' | ||
==== CodeLite with custom makefiles ==== | ==== CodeLite with custom makefiles ==== | ||
Line 77: | Line 102: | ||
==== CDT with Makefiles ==== | ==== CDT with Makefiles ==== | ||
- | Initial testing suggests that you can use Eclipse CDT to develop AVR projects with a Makefile even without the AVR Eclipse plugin.((As was the case with CodeBlocks, using Makefiles makes your projects independent of the IDE you used to develop them. You should be aware that the AVR Eclipse plugin actually generates | + | Initial testing suggests that you can use Eclipse CDT to develop AVR projects with a Makefile even without the AVR Eclipse plugin.((As was the case with CodeBlocks, using Makefiles makes your projects independent of the IDE you used to develop them. Note that the AVR Eclipse plugin actually generates |
- | | + | |
- | | + | |
- | | + | |
Now you can copy or create a '' | Now you can copy or create a '' | ||
Line 90: | Line 115: | ||
Eclipse CDT automatically picked up code completions after I added ''/ | Eclipse CDT automatically picked up code completions after I added ''/ | ||
+ | |||
+ | Note that creating a project templates in Eclipse is //not// a trivial activity. | ||
+ | |||
==== AVR Eclipse plugin ==== | ==== AVR Eclipse plugin ==== | ||
Line 100: | Line 128: | ||
Geany is awesomely lightweight, | Geany is awesomely lightweight, | ||
- | Geany' | + | Geany' |
- | Even with the bundle above, Geany still doesn't parse files referenced in the file you're editing for autocomplete symbols---meaning that local header files will need to be open if you want things defined in those to be autocompleted. The only workaround to this that I can think of is to have all the headers that are part of your project open during the session. Geany also won' | + | Even with the bundle above, Geany won't parse files referenced in the file you're editing for autocomplete symbols---meaning that local header files will need to be open if you want things defined in those to be autocompleted. The simplest |
===== Netbeans C/C++ ===== | ===== Netbeans C/C++ ===== | ||
- | //:!: **Update (2011-01-20)**: | + | //:!: **Update (2011-01-20)**: |
It's something of a tossup between Netbeans w/C++ and Eclipse CDT. Both have about the same intense hunger for resources, both have really excellent code completion, both can be configured for Makefile-based builds, both can be directed to additional includes on a per-project basis so autocompletion and tooltips work as expected, both support some C/C++ refactoring. | It's something of a tossup between Netbeans w/C++ and Eclipse CDT. Both have about the same intense hunger for resources, both have really excellent code completion, both can be configured for Makefile-based builds, both can be directed to additional includes on a per-project basis so autocompletion and tooltips work as expected, both support some C/C++ refactoring. | ||
Line 113: | Line 141: | ||
===== No IDE ===== | ===== No IDE ===== | ||
- | Use a text editor, a terminal emulator, and a Makefile. Clean. Minimal. Hardcore. This is actually | + | Use a text editor, a terminal emulator, and a Makefile. Clean. Minimal. Hardcore. This so frightfully close to the [[#Geany]] setup above that you may as well reference that. |
===== Qt Creator ===== | ===== Qt Creator ===== |
microcontrollers/avr_ides_for_linux.txt · Last modified: 2012/09/17 22:16 by mithat