Hello everybody.
I am an electronics and software enthusiast.
I have created a freeware open source distribution to develop and program ARM controllers of the SAM7 series of Atmel.
It is called W-ARM.
It consists of an ide project manager(W-ARM), an editor (Programmers notepad 2) GCC distribution 4.4.2 and utils for the arm from yagharto gcc distribution 20091223. And SAMBA 2.10.
I am planning support for the SAM3S series as well and for cortex M3 controllers of other manufacturers.
At the moment the program is still beta but it works. I have on sourceforge a readme with the limitations.
I wrote the program for my own use but i thought more people would like to use it. For home and hobby stuff it is ideal.
If you want to use W-ARM for professional use i advice not too because it is still beta and i do not provide support as the commercial IDe providers. Because i use it myself i am always improving it and every improvement i will document and present. When the IDE V1.0 is finished and stable, i will also put the sources for the project manager on sourceforge. What W-ARM does is setup the right options for you and it generates the makefile and linkerfile for you.
From within the PN2 editor you are able to access everything. W-ARM is still beta but in the near future W-ARM will also feature an bootloader and then you can program it with the W-ARM IDE. For now this does not work and is only visual.
I have more information on this link with pictures.
http://forums.anandtech.com/showthread.php?t=2084007
I have the W-ARM ide on sourceforge.
http://sourceforge.net/projects/warmdevkit/files/
I have also some schematics and books but i am still improving these because i am still learning as well.
I will put more and more schematics on sourceforge as well with code examples.
W-ARM is at the moment V0.90 and still beta. But i will update it soon (end of october)to Version 0.91.
##################################################################
Change log :
version 0.91
-
Added more instructions and directives to the assembler scheme and to the c scheme of PN2.
-
Removed a bug from the SAM7S linker generator where the .text sections in the fastcode section where duplicated into the
general .text section. Creating a bigger memory footprint then is necessary.
-
Added linker code to the linkergenerator to support interrupt handlers executed from ram.
-
Rewritten the low_level_init.c source file. Rewritten the startup.s file. Added the isr_asm.s file.
This means that there is an incompatibility with older code. Use your own sources with the new templates. And after
compilation it should work again. You do this by creating a new project, copy template files and then add your own source files
and header files to the src and the inc directories respectively. After that, invoke W-ARM program manager, add the correct settings
and create configuration files. After that you can compile again and all should work.
- Uses the C99 convention for type defines. To create more readable code. Types as uint32_t must be used now instead of word or dword.
This because a word on the ARM architecture is natively 32 bit while on other architectures this can be 16 bit. Because
many users use different architectures, this creates confusion and i do not like to spread confusion.
- Support for interrupts is here. 9 simultaneous interrupts are supported by default but can be expanded up to 32.
The pheripheral Interrupts run from ram as does the fetal os interrupts( No OS yet, but the ground work is here).
-
Added default values to stacksizes.
-
Removed usesless thumb option from instruction set options menu.
-
My PrintString version in semi_stdio.c now supports the ascii codes : \r, \t, \n, \ .
-
Templates files updated : semi_stdio = V2.0 , low_level_init.c = V2.0 , startup.s = V2.0 .
More information i have on the sourceforge site.