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

Crash Course on Python (Coursera) Coursera
Google

Crash Course on Python (Coursera)

This course is designed to teach you the foundations in order to write simple programs in Python using the most common structures. No previous exposure to programming is needed. By the end of this course, you'll understand the benefits of programming in IT roles; be able to write simple programs using Python; figure out how the building blocks of programming fit together; and combine all of this knowledge to solve a complex programming problem.

Jun 9th 2026
5-12 Weeks
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
Statistical Thermodynamics: Molecules to Machines (Coursera) Coursera
Carnegie Mellon University

Statistical Thermodynamics: Molecules to Machines (Coursera)

Modern engineering research focuses on designing new materials and processes at the molecular level. Statistical thermodynamics provides the formalism for understanding how molecular interactions lead to the observed collective behavior at the macroscale. This course will develop a molecular-level understanding of key thermodynamic quantities like heat, work, free energy and entropy. These concepts will be applied in understanding several important engineering and biological applications.

Jun 14th 2026
5-12 Weeks
Introducción al Internet de las Cosas (IoT) (edX) EdX
Universitat Politècnica de València,UPValenciaX

Introducción al Internet de las Cosas (IoT) (edX)

Este es un curso en línea preliminar en el que tratamos los conceptos básicos de electronica y programación utilizando placas Arduino y ESP. El internet de las cosas (Internet of things o IoT) es el presente y el futuro de la tecnología. Tanto si tienes algo de experiencia con la electrónica y deseas desarrollar proyectos como si no tienes ninguna, este curso online te dara los conocimientos iniciales necesarios para comenzar a crear dispositivos increibles capaces de medir y controlar señales físicas.

Self Paced
Self-Paced
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
Prepare for AZ-204: Developing Solutions for Microsoft Azure (Coursera) Coursera
Microsoft

Prepare for AZ-204: Developing Solutions for Microsoft Azure (Coursera)

Microsoft certifications give you a professional advantage by providing globally recognized and industry-endorsed evidence of mastering skills in digital and cloud businesses. In this course, you will prepare to take the Exam AZ-204: Developing Solutions for Microsoft Azure. In this course, you will refresh your knowledge of hall phases of cloud development from requirements, definition, and design; to development, deployment, and maintenance; to performance tuning and monitoring. You will test your knowledge in a practice exam mapped to all the main topics covered in the AZ-204 exam, ensuring you’re well prepared for certification success. Y

Jun 9th 2026
3 Weeks
Building Scalable Java Microservices with Spring Boot and Spring Cloud (Coursera) Coursera
Google Cloud

Building Scalable Java Microservices with Spring Boot and Spring Cloud (Coursera)

"Microservices" describes a software design pattern in which an application is a collection of loosely coupled services. These services are fine-grained, and can be individually maintained and scaled. The microservices architecture is ideal for the public cloud, with its focus on elastic scaling with on-demand resources. In this course, you will learn how to build Java applications using Spring Boot and Spring Cloud on Google Cloud Platform.

Jun 9th 2026
2 Weeks
The Mechatronics Revolution: Fundamentals and Core Concepts (edX) EdX
Georgia Institute of Technology,GTx

The Mechatronics Revolution: Fundamentals and Core Concepts (edX)

In this course, students will learn to harness the power of microcontrollers, sensors, and actuators to build useful and interesting robotic devices. The Mechatronics Revolution is upon us. Never before has it been easier to build robotic devices and computer-controlled machines. The confluence of low-cost embedded computers, sensors, and actuators has made experimentation and prototyping easier than ever.

Self Paced
Self-Paced
Using Python to Interact with the Operating System (Coursera) Coursera
Google

Using Python to Interact with the Operating System (Coursera)

By the end of this course, you’ll be able to manipulate files and processes on your computer’s operating system. You’ll also have learned about regular expressions -- a very powerful tool for processing text files -- and you’ll get practice using the Linux command line on a virtual machine. And, this might feel like a stretch right now, but you’ll also write a program that processes a bunch of errors in an actual log file and then generates a summary file. That’s a super useful skill for IT Specialists to know.

Jun 9th 2026
5-12 Weeks