A typical ARM Accredited MCU Engineer might be found working on embedded software developments using ARM Cortex®-M microcontrollers in small or large teams of engineers. With the growth of the Internet of Things, Cortex-M microcontrollers are being used across an increasingly wide range of different application areas, including; sensors, medical devices, automotive, consumer electronics, toys, industrial control, heating and ventilation, home automation and transport.
A competent ARM microcontroller engineer will require a range of ARM knowledge across a balanced set of subject domains and to a good degree of detail. In order to provide a clear picture of what this means, we can explore how we decided what an ARM Accredited MCU Engineer should be capable of doing.
Step 1: identify a role
The first thing we did was identify the job role that we thought a typical ARM Accredited MCU Engineer would perform. We asked ourselves, "What does industry need from an ARM Accredited MCU Engineer?" To answer this question we researched job adverts, and talked to HR representatives, hiring managers, technical trainers, engineers and support staff.
Step 2: create a job description for that role
Once we had characterized the role in a way that would appeal to the widest cross-section of embedded systems and software engineers, we pinpointed over 50 distinct ARM-related tasks that the jobholder should be capable of completing.
Examples of the tasks we identified for an ARM Accredited MCU Engineer include:
- Application Software – write power aware applications
- Firmware Development – write initialization code
- Firmware Development – develop device drivers/Board Support Packages (BSPs)
- Firmware Development – write interrupt handlers
- Generic Development – configure memory map
- Generic Development – insert architecturally compliant barriers
- Software Optimization – perform timing and resource analysis
- Software Optimization – optimize code for performance
Step 3: identify the knowledge each task requires
From this list of tasks we identified, for each distinct task, the ARM-specific knowledge that would be required to perform the task competently. The resulting list of knowledge items was then classified into subject categories. This led directly to the development of the AAME syllabus.