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
Functionality expected to be offered by respective libraries:
UI
- drawing primitives (lines, boxes, circles)
- displaying text
- reading state of buttons
- playing simple sounds (or just beeping)
Sensors
- collecting data from sensors
- conversion between units
- modifying settings
GPS
- reading current location
- getting time
- connection quality information
NMEA parsers:
Filesystem
Operations on SD card (probably in FAT file system):
- listing/copying/moving/deleting of files & directories
- reading/writing files
- formatting?
To be evaluated:
- http://elm-chan.org/fsw/ff/00index_e.html
- https://code.google.com/p/fullfat/
- http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_FAT_SL/FreeRTOS_Plus_FAT_SL.shtml
Settings
- backlight level (manual/auto)
- time (set manually/fetched from GPS)
- units (metric/imperial)
- sensors/applications specific settings
Applications
Other
Power management
Bootloader
PC-side software
Ideas
- use emWin for watch GUI?