Skills

Embedded C Embedded Programming C++ SILABS ARM

Project Detail

Experience with Arm-Based 32-Bit Microcontrollers

Preferably with Silicon Labs' EFMxxx Series

Strong understanding of embedded architecture concepts

  • Memory management (stack, heap, etc.)
  • Peripheral management (timers, clocks, ADCs, IRQs, sleep modes, DMA, etc.)
  • Interfacing (UART, I2C, SPI, EEPROM, LCD, etc.)
  • Bootloaders (writing, editing, creating, etc.; single and multiple bootloaders)
  • Prior knowledge of protocols like SCR, M-Bus, Modbus, and NAMUR is a plus

Programming Experience

  • Languages: C, Assembly (C++/Python/JavaScript are a plus)
  • Experience with make/linker files, libraries, binaries, etc.
  • Bare-metal programming (RTOS like FreeRTOS is a plus)
  • Firmware management paradigm (driver, wrapper, component, feature/application, business, etc.)

Hands-On Experience with Tools

  • Proficiency with Simplicity Studio (Silabs SDK, GeckoSDK, SimplicitySDK, etc.) is required
  • Compiler toolchains (AVR, GCC, etc.)
  • Source code control (e.g., Git)
  • Knowledge of Communication/Protocol Concepts

Technologies such as GSM/GPRS, LTE, NB-IoT, CAT-M, etc.

  • Protocols like MQTT, CoAP, LwM2M, HTTP, FTP, etc.

Additional Knowledge

  • Secure boot, secure firmware upgrade, TLS/DTLS, encryption techniques/algorithms

Project SILABS MCU DRiver Development:

The tasks the developer will need to complete include:

The developer is responsible for the following tasks, which mainly involve implementing and managing software layers (all based on the provided documentation):

Driver and Middleware Development:

  • The developer will create a driver layer for each interface (GPIO, SPI, I2C, UART), wrapping the microcontroller SDK API. This ensures that the hardware remains easily accessible, even if APIs or hardware components change.
  • The middleware or component layer code should be written to remain unaffected by changes in the driver or application layer.

Security Mechanisms:

  • The developer will implement security mechanisms such as encrypted data transfer and secure MCU-to-MCU communication, including handling keys and hashes for secure data transmission.
  • Secure OTA (Over-the-Air updates) will be integrated using the MCU’s cryptographic and security features to perform authenticity and integrity checks during firmware upgrades.
  • Secure Boot must be implemented to ensure firmware integrity each time the system powers up.

Specific Peripherals and Interfaces:

  • GPIO pins will be used for digital inputs and outputs and for controlling shift registers and keys (via a keypad).
  • I2C and SPI interfaces will be used for communication with peripherals like LCD displays, EEPROM, and current sensors.
  • UART will be used for communication with external devices like modems and Bluetooth modules.

Power Management Functions:

  • The developer must ensure the correct implementation of power-saving modes and wake-up mechanisms to optimize energy consumption.

Error Handling and Debugging:

  • The use of a debug port and SWO for programming and debugging is required, though no application-level programming is needed, except for potential modifications in the bootloader.

Documentation and Source Code Management:

  • The developer must organize the source code in a well-structured directory tree and ensure proper documentation. The use of Git and Doxygen for source code management and documentation is required.

Estimated Development Time

The development of the project is estimated to take approximately 50 hours, covering only the activities directly to be carried out by the developer.

Conclusion: Developer’s Detailed Tasks:

  • Development of the driver and middleware layers for all hardware interfaces (GPIO, SPI, I2C, UART).
  • Implementation of security mechanisms like encrypted data transfer and secure communication.
  • Integration of power-saving features and wake-up mechanisms.
  • Implementation of OTA updates and Secure Boot.
  • Providing documentation for the code and using a version control system.

 

Location:
Compensation:
$ 1,000/fixed
Project Type:
Work From Home
Minimum Hours Per Day:
0
Apply Before:
Feb 23, 2025
Posting Date:
Jan 23, 2025

VERAUT

· 11-50 employees -

What is your Competitive Advantage?

Get quick competitive analysis and professional insights about yourself
Talk to our expert team of counsellors to improve your CV!
Try Rozee Premium
I found a job on Rozee!