AVR32 UC, IAR
embOS for AVR32 was developed for and with IAR's compiler version 3.20A and supports all memory models offered by this compiler. It comes with easy to use start projects for IAR's embedded workbench.
Resources and performance data
| Memory usage | |
|---|---|
| RAM usage per task control block | 36 bytes |
| RAM usage per resource semaphore | 16 bytes |
| RAM usage per counting semaphore | 8 bytes |
| RAM usage per mailbox | 24 bytes |
| RAM usage per software timer | 20 bytes |
| RAM usage event | 20 bytes |
| Min. stack-size per task (RAM) | 44 bytes |
| Timing | |
| Context switch time | 7.88 µ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 AVR32A CPU (AT32UC3A0512) running at 66 MHz.
embOSView offers system analysis during runtime

Available Emulators
Board support packages
embOS comes with lots of ready to go start projects and support packages for various AVR32 CPUs and starterboards.
| CPU | Eval board |
|---|---|
| Atmel AT32UC3A0512 | Atmel EVK1100 |
| Atmel AT32UC3B0256 | Atmel EVK1101 |
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: IAR ICCAVR32 3.30.1/W32 (3.30.1.40051) Assembler: IAR AAVR32 3.30.1/W32 (3.30.1.40051) Librarian: IAR XAR 4.61S (4.61.19.0) Workbench: IAR IARIDEPM V5.4.5.951
New features
Version 3.82r
- Update to latest generic embOS sources version 3.82r.
- SDRAM initialization for EVK1100 added.
Version 3.82i
- Update to latest generic embOS sources version 3.82i.
All modifications and additional features of the generic embOS version are documented in the generic release notes and manuals.
Version 3.82b
- Update to latest generic embOS sources version 3.82b.
- BSP for EVK1101 added.
embOS for AVR32/IAR now includes a BSP for Atmel EVK1101 (AVR32UC3B).
Version 3.80l
- Update to latest generic embOS sources version 3.80l.
- 32 bit task events.
embOS for AVR32/IAR supports now 32 bit task events.
Version 3.80i
- Update to generic embOS version 3.80i.
embOS V3.80 comes with modifed internal data structures which optimize the scheduler.
All new features of embOS V3.80 are listed in the embOS generic release notes. - Update to IAR workbench V3.20A
embOS AVR32 V3.80i was built using the IAR embedded workbench V3.20A, the start projects were updated to run with this version. - New embOS plugin for CSpy
embOS AVR32 V3.80i now comes with the new modified embOS plugin whichis required for version 3.80 of embOS and the new IAR embedded workbench.
The older embOS plugin V1.0.5 which came with the IAR workbench has to be replaced.
Version 3.60c1
- Support for new chip revision H and later.
First ES chip revision handled the COUNT and COMPARE registers differently.
The new devices require the new modified initialization function and timer interrupt handler to run with correct timing.
Version 3.60a
- embOS trial versions may run an unlimited number of tasks.
The embOS trial versions run unlimited as long as only 3 tasks are created.
Since version 3.60a, a time limit is added to the trial version. During the first 15 minutes, an unlimited number of tasks can be created.
If more than three tasks were created during the time limit time, the system stops and calls OS_Error() when the time limit exceeded.
Version 3.60
- First version. None.
Improvements
Version 3.60c
- OS_ASSERT_INIT_CALLED()
A new assertion is added which checks whether OS_InitKern() was called before tasks are created.
In debug builds, the OS_Error() function will be called, if tasks are created before calling OS_InitKern(). - OS_GetTaskName() modified.
In previous versions, OS_GetTaskName() had to be called with a valid task ID. Now, the NULL pointer may be passed as argument to address the current task.
The function will always return a valid string.
The previous implementation might have returned a NULL pointer, which could cause problems, if the result was not evaluated be the calling function.
Version 3.60b
- OS_ASSERT_ISR_LEVEL()
A new assertion was defined which will call OS_Error() if the CPU runs in interrupt mode but OS_EnterInterrupt() or OS_EnterNestableInterrupt() was not called.
With version 3.60b the assertion is not implemented, it is just defined and usage is prepared. The implementation will be made in future versions of embOS.
Program corrections
Version 3.82i
- UART communication to embOSView corrected.
In previous versions of the BSPs, the UART initialization did not initialize the related GPIO pins correctly and communication might have been impossible.
The UART interrupt handler did not work correctly and might have sent wrong characters to embOSView which resulted in slow communication.
Version 3.60c
- New interrupt stackframe.
IAR does not longer save register on stack at beginning of an interrupt routine. Changed embOS assembler part to fit this new interrupt stackframe.
Version 3.60
- First version. None.
Known problems/limitations
Version 3.60c
- This version runs with IAR embedded workbench version 2.21B or higher.
IAR embedded workbench version 2.21A or lower are not supported anymore.
Release history
| Version | Release date | Short explanation |
| V3.82r | 03. Feb 2011 | Update to latest generic embOS sources version 3.82r. SDRAM initialization for EVK1100 added. |
| V3.82i | 06. Aug 2010 | Update to latest generic embOS sources version 3.82i. Communication to embOSView corrected. |
| V3.82b | 28. Oct 2009 | Update to latest generic embOS sources version 3.82b. BSP for EVK1101 added. |
| V3.80l | 09. Sept 2009 | Update to latest generic embOS sources version 3.80l. 32 bit task events. |
| V3.80i | 27. Aug 2009 | Update to new IAR workbench. |
| V3.60c1 | 10. Mar 2009 | Timer handler updated. |
| V3.60c | 04. Jun 2008 | New interrupt stackframe. |
| V3.60 | 18. Jan 2008 | First version. |
Miscellaneous
This document was first released with version 3.60 of the software.
Software released earlier is documented internally. This information is available at request.
AVR32 UC, IAR
