My story in embedded software development 

  • Platforms

  • Lead tasks

  • Technical tasks

SoC ARM core OS Langages
2019- RZN1
(Renesa)
Cortex M3 +
Cortex A7 (x2)
(ARMv7)
FreeRTOS +
Linux 4.9
(Yocto)
ASM, C, C++, (python, bash)
cmake
2016-2015 STM32
(ST)
Cortex M3 (ARMv7) EmbOS ASM, C
2017-2016 SAM9G20 (Atmel) ARM 9
(ARMv5) 
Linux 2.6.19
Linux 4.4
(Buildroot)
ASM, C, C++
(python, bash)
autotools
2008 OMAP 3430
(TI)
Cortex A8 Linux 2.6.x -
2005-2008 SCMA11 Freescale Proprietary C, C++

Platforms [2005-2020]

<2005:

Lead task

  • SW Project lead
    • first Work break down & planning
    • [technical] risk management
  •  
  • SW Tech lead
    • first System Spec (support to MKT, PM) 
    • Software Architecture & git repo definition
    • performance & stability issue 
  •  
  • SW Team lead  
    • animate sprint & delivery process,
    • develop & support developers 
    • link with HW teams & test strategy
  •  
  • Deploy strategy
    • FW Update & maintenance log

Idea & assumptions

Solution & risks

Develop

Deploy

Text

M3 - RTOS

  • Freertos / C bootstrap
  • baremetal drivers

Text

(Last) Technical tasks

Commun A7/M7  Framework

  • state machine modeling (design)
  • timer api & log lib 
  • fw update strategy

A7 - Linux

  • Yocto
  • device tree

Stabilization

  • fix drivers & dtb,
  • M3/A7 shared resources issues
  • watchdog strategy

IPC

M3/A7

SW architecture on RZN1 Soc: Cortex M3 + Cortex A7 (x2) [ARMv7]

Test strategy

  • Unit test
  • Static code analysis (cppcheck, cpplint) 
  • Integration test - robot framework (on host x86)
  • Dynamic code analysis & profiling (valgrind)

Code checker

Unit test

Integration test

Profiling

More

Slides for Developers

By Mathieu KAPFER

Slides for Developers

  • 962