Software
RTOS options
Below is a list of RTOSes supporting the EFM32 microcontroller.
Name | Footprint | Licence | Remarks |
FreeRTOS | to be tested | Modified GPL | Tickless mode example project available No integrated USB stack, need to port CMSIS stack example FAT FS example exists (not for EFM32) |
uCOS-II/III | to be determined | restrictive in commercial cases | Examples exist (but not for GCC) USB stack available (not free, not with EFM32-targeted example) FAT FS library available (not free, not with EFM32-targeted example) |
RTX | < 4.0 KB | BSD | Tickless mode example projects exist *Compliant with CMSIS-RTOS standard No integrated USB stack, need to port CMSIS stack No integrated FAT FS |
TNKernel | to be tested | BSD | No apparent direct support for EFM32 (but supports Cortex-M3) MSc thesis using TNKernel on EFM32 USB stack available (unkown quality) file system available (unkown quality) |
Device drivers
All devices need implementation of initalization and power control routines. Below is a list of required features for particular devices that are expected to be used in higher layers of software:
LCD (Sharp LS013B7DH03)
- sending pixel data
GPS (Quectel L70)
- fetching NMEA frames over serial port
- handling private protocol (system messages, commands, settings, etc.)
Sensors
- Accelerometer & compass (ST LSM303C)
- Pressure (Freescale MPL3115A2 or Meas. Spec. MS5803-01BA)
- Ambient light (Maxim 44009)
- reading sensor values (raw & human readable values in appropriate units)
- interrupt settings (if connected to MCU)
- FIFO reading & control
- control of sensitivity
- selftest
Fuel gauge (Maxim MAX17047)
- reading voltage, drawn current, average current, remaining time to
empty, remaining capacity, temperature of battery
- reading/writing values of other registers
SD card
- checking status (presence, write-lock)
- reading/writing blocks
Backlight
- setting level (preferrably controlled by hardware with PWM)
Libraries
GPS
NMEA parsers:
Applications
Other
Bootloader
PC-side software
Ideas
- use emWin for watch GUI?