[anjuta-devel] GSoC: Anjuta as an AVR development environment



Hi all,

Let me first introduce myself, I'm Lucas, 20 years old from the Netherlands, and a student electrical engineering. I've been programming for several years now, started 7 years ago with, yes I know it's not a great language, PHP. About 5 years ago I permanently switched to Ubuntu, and never had any feeling to switch back to Windows since then. I also learned Python, and used it often with PyGTK. I've also played with GTKmm, but at that time I wasn't that good in C++, so I don't think that app is well written. I open source almost all my projects, see for example my bitbucket [1]_ or my (old) sourceforge [2]_ account.

What is an AVR?
============

AVR is a series of microcontrollers from the company Atmel [3]_. I think most of you will know what it is, but just to be clear: it's a small 'computer' with a processor, RAM, often some extra peripherals to make communicating or interfacing with external circuitry simpler.

Microcontrollers are often used to control embedded systems, like car automation, home automation, or your washing machine. These little things can be found almost everywhere. AVR microcontrollers are one of the most popular microcontrollers because they are very well documented, easy to use, and nowadays has an enormous community.

The Project
========

My idea is to add some AVR specific functionality to Anjuta. GCC already has an AVR version, so does GDB. I would like to create project/makefile templates to easily create projects meant to be programmed on an AVR microcontroller. Also integrate avr-gcc and avr-gdb to make compiling and debugging a piece of cake.

Several GDB servers exists which are useful for AVR development. One of them is simulavr [4_], as the name suggests, a simulator for some types of AVR microcontrollers. And there's also avarice [5_], a GDB server for on chip debugging using JTAG, a very common protocol used for on chip debugging. Adding an option to the project creation wizard to specify which type of AVR microcontroller, and also an option if they want to use the simulator or on chip debugging would be very nice to have, and makes things really easy.

When the program has been compiled, it should be transferred to the AVR microcontroller itself. There's a tool called avrdude which handles programming the AVR. A nice frontend for this program should also be included.

Why this project?
-------------------------

With things like Arduino's and other development boards, embedded systems development becomes more and more popular. A lot of people like to automate simple things in their house, car or anything they can think of. An Arduino already has an (simple) IDE, but there are enough people who want to program an AVR without all the Arduino stuff. This is where Anjuta with AVR plugin comes in. We will provide a great development environment for developing software for an AVR microcontroller.

When it's finished, we have something to compete with AVR studio [6_], the official Windows only IDE from Atmel. We also have something to compete with KontrollerLab [7_], an AVR IDE for KDE. Electrical engineers often have an open mind to other OSes, this may give them the last push to Linux, and preferably GNOME.

Also, Anjuta is already a great IDE for developing applications in C and C++, adding extra functionality instead of writing a complete new application is the only smart decision.

Parts of the project
----------------------------

- Project creation wizard template/modifications: specify simulator/on chip debugger, specify which type of AVR microcontroller
- Integrate avr-gcc
- Integrate avr-gdb (with simulavr and avarice)
- Create frontend to program the AVR using avrdude
-- Also options to set fuses of the microcontroller
- Add common symbol names for autocompletion in editor
- Nice to have: AVR assembly syntax highlighting support
- Nice to have: Disassembler

Why me?
=======

As I already noted, I'm a student electrical engineering. I've had courses in C, C++ and C specific for AVR microcontrollers. I think I have the experience to finish this project:
- Experience with C and AVR microcontrollers
- Experience with the GTK library (although not the GTK+ C lib, but only PyGTK and GTKmm)
- Multiple years experience in programming in general.

I've always been a great fan of open source, and after using GNOME for several years now, I really like to do something back, and I think this is a good starting point. Last year GUADEC was in The Hague, and that's really close to my home, so I couldn't resist to go there. After those three days I noted two important things to myself:
1. GNOME has a great community
2. I really like to be a bigger part of it, rather than being just an user.

I think this will be a good starting point :)

Furthermore
=========

I hope you like the idea, and although Anjuta advertises itself more as a 'GNOME development environment', I think some AVR functionality would be a great addition to Anjuta. Please give any feedback you have, and let me know if it has any chance with between all those other GSoC applications.

Thanks in advance,
Lucas

.. [1] https://bitbucket.org/sh4wn
.. [2] The only relevant project on sourceforge is this one: http://sourceforge.net/projects/dldigui/
.. [3] http://atmel.com
.. [4] http://www.nongnu.org/simulavr/
.. [5] http://avarice.sourceforge.net/
.. [6] http://www.atmel.com/microsite/avr_studio_5/default.asp




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]