Hi steve and others who would like to test it.
Well, i posted everything on sourceforge :
You have to test the LPC source code yourself. i wrote it from scratch, but i do not have the hardware to test it.
If you start a new project and select an LPC MCU, select copy template files in the project menu of the W-ARM program manager. It will then copy the template files to your current project src and inc directories.
I added a new version of the manual on sourceforge : V1.2
It explains a lot more now.
I added a rarfile with only the program manager, template files and the PN2 editor : W_ARM_NOGCC_07112010.rar .
This way if you have already the complete W-ARM package, you do not have to download the entire GCC again since that is not changed.
Afcourse i have added the complete W-ARM package as well : W-ARM07112010.
But i hope it will appear because i have the feeling something went wrong while uploading to the sourceforge site.
Sourceforge behaved a bit strange. If it does not appear i will upload it again over a few hours.
If you want to try it anyway, this is the directory structure :
It needs yagarto GCC 23122009 distribution and GCC 23122009 tools.
W-ARM->
…->W-ARM_PM
…->PN2
…->GCC 23122009 distribution ( all directories such as bin/, arm-elf/ ,etcetera…)
…->GCC 23122009 tools. ( all directories such as utils/bin)
This is the changelog for W-ARM V0.93:
Change log :
version 0.93
-
Added more assembler instructions and directives to assembler scheme of PN2.
-
Added basic support for the LPC2104, LPC2105, LPC2106, LPC2129, LPC134, LPC2136, LPC2138.
-
Added basic template files for LPC210x. These are comprised of header files and basic startup C code.
-
Added multi interrupt support for the SAM7S. All interrupt handlers can be written in C.
The assembler part is taken care of by the Advanced interrupt controller of the SAM7S and by a little assembler
code i have written from studying the examples in ARM cook books and the Atmel datasheet.
All interrupt handlers written in C are stored in RAM to speed up execution and reduce interrupt latency.
I have provided some examples.
I am busy standardizing the semi_stdio.c file with usefull functions. All these functions depend heavily
on the hardware if needed. But most only use generic ARM7TDMI core C code. When in case the onboard hardware gives a
speed advantage i will take advantage of this hardware. All code has comments and is very clear to understand.
- Printstring supports now %b,%h and %d for unsigned conversion of 1 32bit value.
The routines are optimized to run as much from registers as possible. I estimate no stack is used.
All output is directly written into a memory buffer which serves for the UART TX interrupt.
Printstring can be configured to run in PIO mode or INT mode. The first is programmed IO in a software loop.
The second is interrupt based and free’s up the CPU for other calculations if OS_MEM_PRTSTR_NO_WAIT is set to 1.
if OS_MEM_PRTSTR_NO_WAIT is set, then the user code must check for OS_MEM_UART_TXNRDY to be cleared before
using printstring again.
- There are 9 timers out of 11 timers available through use of functions and can be written to and read from similar as
hardware pheriperals.
Timer 10 is for now used by printstring but will be free to use when the multitask os i am working on is finished.
Timer 11 is used for the TWI hardware as timeout timer but will be free to use when the multitaks os i am working on is finished.
When the TWI interface or printstring are not used, Timers (11) and (10) can be used at any time.
-
Removed a bug in the LPC linker generator.
-
Removed a bug in the SAM7S linker generator where a possible alignment error could occur.
-
Removed a visual bug at the project tab that popped up when the projectname is too short.
-
A strlen function is added.
I hope it works, if there are any errors or bugs please let me know, i will solve them as fast as i can.
Here is the link :
http://sourceforge.net/projects/warmdevkit/files/