For those interested, i am continuing the improvement of the free W-ARM IDE.
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 is useful, 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/