Embedded Software and Hardware Architecture (Coursera)

Embedded Software and Hardware Architecture (Coursera)

Embedded Software and Hardware Architecture is a first dive into understanding embedded architectures and writing software to manipulate this hardware. You will gain experience writing low-level firmware to directly interface hardware with highly efficient, readable and portable design practices. We will now transition from the Host Linux Machine where we built and ran code in a simulated environment to an Integrated Development Environment where you will build and install code directly on your ARM Cortex-M4 Microcontroller.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

Course assignments include writing firmware to interact and configure both the underlying ARM architecture and the MSP432 microcontroller platform. The course concludes with a project where you will develop a circular buffer data structure.
In this course you will need the Texas Instruments LaunchPad with the MSP432 microcontroller in order to complete the assignments. Later courses of the Specialization will continue to use this hardware tool to develop even more exciting firmware.

Syllabus

WEEK 1
Interfacing C-Programs with ARM Core Microcontrollers
Module 1 will introduce the learner to how software/firmware can interface with an embedded platform and the underlying processor architecture. Embedded Software engineers must be very knowledgeable about the architecture in order to write efficient and bug free code. This requires knowledge of processor architecture. memory systems, microcontroller peripherals and more advanced use of the compiler. This module will continue to enforce good software design techniques with a focus on portability and maintainability without reducing your hardware’s performance.

WEEK 2
Manipulating Memory
Module 2 will introduce the learner to more advanced firmware techniques as well move us into some hands on firmware for the microcontroller. We start by building our own memory access methods that will allow a programmer to manipulate peripheral memory bit fields to configure microcontroller peripherals and core architecture concepts. This will include more complex use of pointers for register definition files and function pointers for interrupt vector tables The module concludes with an in-depth look into the features of on-target debugging on a microcontroller and a hands-on example.

WEEK 3
Designing Embedded Data Structures
Module 3 will introduce the learner to efficient and maintainable ways of organizing data. Most microcontroller programs require some use of structured data in order to track and manipulate the control flow or data in a program. These can be as simple as unions, enumerations or structures, but can be more complex with the use of abstract data structures. While abstract data structures are often discussed in higher level software, there are many simple examples that are used frequently in embedded system software.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Embedded Systems Essentials with Arm: Getting Started (edX) EdX
Arm Education,ArmEducationX

Embedded Systems Essentials with Arm: Getting Started (edX)

Get practical without hardware. Quickly prototype and build microcontroller projects using industry-standard APIs. Embedded systems are everywhere – and Arm-based technologies are the industry standard. Getting started could not be easier. This course includes free access to an Mbed simulator so you can apply your new knowledge and skills to prototype and build real-world embedded applications quickly, without the trouble or expense of sourcing hardware.

Self Paced
Self-Paced
Material Behavior (Coursera) Coursera
Georgia Institute of Technology

Material Behavior (Coursera)

Have you ever wondered why ceramics are hard and brittle while metals tend to be ductile? Why some materials conduct heat or electricity while others are insulators? Why adding just a small amount of carbon to iron results in an alloy that is so much stronger than the base metal? In this course, you will learn how a material’s properties are determined by the microstructure of the material, which is in turn determined by composition and the processing that the material has undergone.

Oct 5th 2026
5-12 Weeks
Fabriquer un objet connecté (FUN) FUN
Institut Mines-Telecom

Fabriquer un objet connecté (FUN)

Ce MOOC est le deuxième volet du parcours La Fabrication Numérique. Que se passe-t-il quand les objets se connectent à Internet ? Découvrez les mécanismes et les protocoles pour connecter un objet à Internet ou connecter des objets entre eux. Vous utiliserez les technologies issues des FabLabs pour fabriquer “Nelson”, un petit objet intelligent et autonome, contrôlé par votre smartphone ou votre ordinateur. Vous apprendrez également à re-programmer votre objet à l’infini pour l’adapter à vos besoins.

No sessions available
4 Weeks
Let Us PIC: A Datasheet Approcah for PIC Programming (Skillshare) Skillshare
Skillshare

Let Us PIC: A Datasheet Approcah for PIC Programming (Skillshare)

This course introduces basic concepts of PIC micro-controller programming using C. Starting from installation of required software, this course gives insight of programming the PIC microcontroller to access General Purpose Input Output (GPIO) pins, Configuring external interrupts, Timers and counters, ADCs, LCD and Keypad interfacing, PWM generation and few communication protocols like UART, I2C and SPI.

Self Paced
Self-Paced
Armv8-M Architecture Fundamentals (Coursera) Coursera
Arm

Armv8-M Architecture Fundamentals (Coursera)

The course includes fundamental architecture topics that are key to understanding how any Cortex-M processor functions internally. The course focuses specifically on the Armv8-M version of the Arm Architecture, which processors like the Cortex-M33 and Cortex-M55 are based on. However, even if you're working with older processors based on earlier versions of the architecture, like Armv6-M or Armv7-M, a lot of the information is mostly still very relevant and useful.

Sep 14th 2026
5-12 Weeks
Applications in Engineering Mechanics (Coursera) Coursera
Georgia Institute of Technology

Applications in Engineering Mechanics (Coursera)

This course applies principles learned in my course “Introduction to Engineering Mechanics” to analyze real world engineering structures. You will need to have mastered the engineering fundamentals from that class in order to be successful in this course offering. This course addresses the modeling and analysis of static equilibrium problems with an emphasis on real world engineering systems and problem solving.

Oct 5th 2026
5-12 Weeks
Internet of Things: Communication Technologies (Coursera) Coursera
University of California, San Diego

Internet of Things: Communication Technologies (Coursera)

Have you wondered how “Things” talk to each other and the cloud? Do you understand the alternatives for conveying latency-sensitive real time data versus reliable signaling data? Building on the skills from the Sensing and Actuation course, we will explore protocols to exchange information between processors.

Oct 5th 2026
4 Weeks
Introduction to Embedded Machine Learning (Coursera) Coursera
Edge Impulse

Introduction to Embedded Machine Learning (Coursera)

Machine learning allows us to teach computers to make predictions and decisions based on data and learn from experiences. In recent years, incredible optimizations have been made to machine learning algorithms, software frameworks, and embedded hardware. Thanks to this, running deep neural networks and other complex machine learning algorithms is possible on low-power devices like microcontrollers. This course will give you a broad overview of how machine learning works, how to train neural networks, and how to deploy those networks to microcontrollers.

Sep 13th 2026
3 Weeks
Cortex-M Software Development Fundamentals (Coursera) Coursera
Arm

Cortex-M Software Development Fundamentals (Coursera)

This course delves into software development topics such as working with Arm C/C++ compilers and Arm debug tools to optimize your software, whether it's for performance or code size. This course also looks more closely at the Common Microcontroller Software Interface Standard and how it helps ensure that software targeted at Cortex-M devices can be written using a consistent approach.

Sep 14th 2026
4 Weeks