ARM7/9, GNU
embOS for ARM7 / ARM9 / XScale was developed for and with GNU tools. It comes with easy to use make files for GNU tools and batch files for the GDB debugger.
You can use any GNU toolchain, but we recommend the Yagarto toolchain (www.yagarto.de).
Software development with a JTAG debugger like J-Link is also possible.
Resources and performance data
| Memory usage | |
|---|---|
| Kernel size (ROM) | approx. 3000 bytes |
| Kernel RAM usage | 51 bytes |
| RAM usage per task control block | 32 bytes |
| RAM usage per resource semaphore | 8 bytes |
| RAM usage per counting semaphore | 4 bytes |
| RAM usage per mailbox | 20 bytes |
| RAM usage per software timer | 20 bytes |
| RAM usage event | 0 bytes |
| Min. stack-size per task (RAM) | 56 bytes |
| Timing | |
| Context switch time | max. 8 µs, independent of number of tasks |
| Interrupt latency time | zero |
| Kernel CPU usage/TICK | less than .2% of total calculation time at 1000 Interrupts/second (1ms TICK) |
| Basic time unit (TICK) | typ. 1 ms, min. 20 µs (50 kHz interrupt frequency) |
| Features | |
| Max. no. of tasks | unlimited (by available RAM only) |
| Max. no. of mailboxes | unlimited (by available RAM only) |
| Max. no. of semaphores (resource/binary/counting) | unlimited (by available RAM only) |
| Max. no. of software timers | unlimited (by available RAM only) |
| Max. no. of priorities | 255 |
| Stack size idle task (RAM) | 0(no memory needed) |
| Nested interrupts | permitted |
| Task switches from within ISR | possible |
Absolute values given above were measured with embOS release build on an ATMEL AT91SAM7S256 CPU running at 48MHz.
embOSView offers system analysis during runtime

Available Emulators
- SEGGER J-Link with SEGGER GDB server and GDB debugger


Board support packages
embOS comes with lots of ready to go start projects and support packages for various ARM7/9 CPUs and starterboards.
| CPU | Eval board |
|---|---|
| Atmel AT91SAM7A3 | Atmel AT91SAM7A3-EK |
| Atmel AT91SAM7S64 | Atmel AT91SAM7S64-EK |
| Atmel AT91SAM7S256 | Atmel AT91SAM7S256-EK |
| Atmel AT91SAM7SE512 | Atmel AT91SAM7SE-EK |
| Atmel AT91SAM7X256 | Atmel AT91SAM7X-EK |
| Atmel AT91SAM9G45 | Atmel AT91SAM9G45-EK |
| Atmel AT91SAM9260 | Atmel AT91SAM9260-EK |
| NXP LPC2106 | IAR LPC2106 KS |
| NXP LPC2148 | IAR LPC2148 KS |
| NXP LPC2378 | KEIL MCB2300 |
| NXP LPC2468 | Embedded Artists LPC2468 |
| ST STR912 | ST STR912-SK |
| TI TMS470R1B1M | TI TMS470R1B1M |
Release notes
- Tool chain used for build
- New features
- Improvements
- Program corrections
- Known problems / Limitations
- Release history
- Miscellaneous
Tool chain used for build
The following tools have been used:
Compiler: arm-elf-gcc V4.4.2 Assembler: arm-elf-as V4.4.2 Librarian: arm-elf-ld V4.4.2
New features
Version 3.82m
- BSP for ATMEL AT91SAM9G45 added.
embOS for ARM GNU now comes with a start project and BSP for the ATMEL AT91SAM9G45 which runs on the ATMEL AT91SAM9M10G45-EK eval board but may be used on other hardware as well. - Update to latest embOS generic sources V3.82m which elimiate a "strict-aliasing rules violation" warning.
- Makefiles in Start projects corrected.
Version 3.82g
- Update to latest embOS generic sources V3.82g.
Version 3.82e
- LPC 2378 CPU support
Start project and board support package for NXP LPC2378 CPU added.
The project was tested on the KEIL MCB2300 board, but may be used on other boards as well. - Update to latest embOS generic sources V3.82e.
Version 3.60d
- LPC 2468 CPU support
Start project and board support package for NXP LPC2468 CPU added.
The project was tested on the Embedded Artists LPC2468-16-OEM Board, but may be used on other boards as well.
Version 3.60a
- TI TMS470R1B1M CPU support
Start project and board support package for TI TMS470R1B1M CPU added.
Version 3.52e2
- NXP LPC 2106 CPU support
Start project and board support package for NXP LPC2106 CPU added. - NXP LPC 2148 CPU support
Start project and board support package for NXP LPC2148 CPU added.
Version 3.52e1
- ATMEL AT91SAM7 CPU support
Start projects and board support packages for ATMEL AT91SAM7 CPUs added. - ST STR912 CPU support
Start project and board support package for ST STR912 CPUs added.
Version 3.52d
- NONE.
Initial version for ARM GNU, based on embOS sources 3.52d.
Improvements
Version 3.52d
- NONE.
Initial version for ARM GNU, based on embOS sources 3.52d.
Program corrections
Version 3.82i
- Makefiles corrected
The makefiles in the start project folders passed a wrong paramter to the assembler which destroyed some assembly sources. A re-make after a make clean therefore failed in the start project folders.
This problem existed in all previous versions of embOS_ARM_GNU and is fixed with version 3.82i
Version 3.60a
- Big endian libraries were not built correctly.
The assembler files were always assemblied in little-endian.
Version 3.52e
- Wrong RAM start address in linker command file.
There was a wrong RAM start address in the linker command file.
Version 3.52d
- NONE.
Initial version for ARM GNU, based on embOS sources 3.52d.
Known problems / Limitations
Version 3.52d
- NONE
Release history
| Version | Release date | Short explanation |
| V3.82m | 25 Nov 2010 | BSP for ATMEL AT91SAM9G45 added. Update to latest embOS generic sources V3.82m Makefiles in Start projects corrected. |
| V3.82g | 12 May 2010 | Update to latest embOS generic sources V3.82g. |
| V3.82e | 16 April 2010 | LPC2378 supported added. Update to latest embOS generic sources V3.82e. |
| V3.60d | 21 Jul 2008 | LPC2468 supported. |
| V3.60a | 12. Feb 2008 | Fixed big endian libraries. |
| V3.52e2 | 14. Dec 2007 | NXP LPC2106/2148 supported. |
| V3.52e1 | 10. Dec 2007 | AT91SAM7 series / STR912 supported. |
| V3.52e | 30. Nov 2007 | Wrong RAM start address in linker command file. |
| V3.52d | 21. Nov 2007 | Initial version for ARM GNU, based on embOS sources 3.52d |
Miscellaneous
This document was first released with version 3.52d of the software.
Software released earlier is documented internally.
This information is available at request.
ARM7/9, GNU
