Embedded Hardware and Operating Systems
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Embedded Hardware and Operating Systems
This course is part of Development of Secure Embedded Systems Specialization
58,772 already enrolled
Included with
Learn more
Ask Coursera
629 reviews
629 reviews
Skills you'll gain
Details to know
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate
There are 4 modules in this course
All about practical programming and creating IoTs applications!
In this course, we will talk about two components of a cyber-physical system, namely hardware and operating systems. After completing this course, you will have knowledge of both hardware components and operating systems. You are able to plan and use embedded operating systems in resource-constraint devices for Internet-of-Things (cyber-physical system) applications. In addition, you can use Cooja simulation for designing and simulating wireless sensor network applications. The course offers 4 modules, each with a graded quiz in the end and finally, one peer-reviewed programming assignment. In case you have no experience with C programming, please check a practical course like: https://www.coursera.org/learn/arduino-platform. The course is actually quite fun at the end when you play around with Cooja simulation for IoTs applications. So you can create and simulate your own design for sensor network applications. A lot of features and examples of Contiki and Cooja can be explored via assignments. There are some optional assignments of wireless sensor network applications for students who want to explore more about embedded OS in IoTs applications. - Marco Ramirez /University of Turku - Igor Tcarenko/ University of Turku - Nguyen Gia Tuan /University of Turku Ideate. Innovate. Iterate with 28Digital
This week will start from the basic information about Embedded Systems. Specifically, you will learn (1) what are embedded systems and where they are applied as well as (2) the main characteristics and challenges of embedded systems. (3) You will discover how embedded systems communicate with the outer world.
What's included
6 videos5 readings1 assignment1 discussion prompt
6 videosβ’Total 50 minutes
- Introductionβ’3 minutes
- Introduction to Embedded Systemsβ’8 minutes
- Design characteristics and challengesβ’11 minutes
- Input/Output devicesβ’8 minutes
- Wire communication, ADC/DACβ’12 minutes
- Sensors, actuators, interrupts vs. pollingβ’9 minutes
5 readingsβ’Total 145 minutes
- Build your own input/output system with the Arduino!β’45 minutes
- Build your own ADC using Arduino!β’30 minutes
- Learn how to use serial communication using the Arduino!β’30 minutes
- Create a timer for polling using the Arduino!β’30 minutes
- Quiz 1 assignment (to be done before Quiz 1)β’10 minutes
1 assignmentβ’Total 30 minutes
- Introduction to Embedded HW (Graded quiz)β’30 minutes
1 discussion promptβ’Total 30 minutes
- Module 1 Discussionβ’30 minutes
This week we will go into details of what embedded systems consist of. Specifically you learn about the main blocks of any processing element of embedded systems. We will show you what (1) embedded processors consists of and its main features. You will learn what (3) reconfigurable architectures and FPGAs are, and what kind of (4) ready-made platforms you can use to start working with processing elements.
What's included
5 videos2 readings1 assignment1 discussion prompt
5 videosβ’Total 49 minutes
- Embedded processors and FPGAsβ’9 minutes
- Main features of embedded processorsβ’10 minutes
- Use-cases of micro-controller platformsβ’9 minutes
- Reconfigurable platforms, FPGAsβ’10 minutes
- Embedded processors vs. FPGAsβ’10 minutes
2 readingsβ’Total 60 minutes
- Practical list of comparison of MCU vs FPGAβ’30 minutes
- A comparison between MCU, FPGA, DSP, ASIC from Atmelβ’30 minutes
1 assignmentβ’Total 30 minutes
- Processing elements (Graded quiz)β’30 minutes
1 discussion promptβ’Total 60 minutes
- Module 2 Discussionβ’60 minutes
In this week, we start with an overview of operating systems and embedded operating systems for IoT. Primary functionalities of embedded operating systems are discussed. We learn how operating systems work: how memory is managed, how tasks are scheduled, what interrupts are and how they are handled. After this, we deepen our learning with the popular kernels for general and embedded operating systems. Linux (monolithic) kernel, micro kernel and modular kernel are presented. In addition, several popular embedded operating systems for IoT are presented. Concretely, after attending this week, you will able to (1) explain why embedded systems often require an operating system (2) describe how an embedded operating system works such as how memory is managed, how tasks are scheduled and how interrupts are handled. (3) You will be able to differentiate between popular kernels for embedded operating systems. (4) Differentiate between popular embedded operating systems for IoT.
What's included
7 videos4 readings1 assignment1 peer review1 discussion prompt
7 videosβ’Total 52 minutes
- Module 3 Lecture1: Embedded operating systemsβ’7 minutes
- Linux kernel functions and advantagesβ’8 minutes
- The microkernelβ’7 minutes
- The modular kernelβ’5 minutes
- Introduction to Contikiβ’6 minutes
- Introduction to TinyOSβ’11 minutes
- Introduction to RIOT OSβ’9 minutes
4 readingsβ’Total 100 minutes
- In depth reading of the QNX microkernelβ’30 minutes
- The case for using Contiki in sensor networksβ’20 minutes
- TinyOS github & Documentationβ’30 minutes
- RiotOS for IoTβ’20 minutes
1 assignmentβ’Total 30 minutes
- Embedded Operating Systems (Graded quiz)β’30 minutes
1 peer reviewβ’Total 90 minutes
- Honors Assignment: TinyOS -- Hands-onβ’90 minutes
1 discussion promptβ’Total 20 minutes
- Module 3 Discussionβ’20 minutes
In this week, we start to explore the Contiki Os in detail. First we discuss about the Contiki system and its kernel architecture. Furthermore, we explore how loadable programs are actually implemented in Contiki. Second, we go through services and libraries in Contiki to see how they are built and when they can be invoked. Third, we discuss communication in Contiki via details of uIp and Rime communication stacks in Contiki. Next, prototheads are discussed to describe how application code is processed in Contiki. Furthermore, APIs of multi-threading is discussed. Last but not least, the Cooja simulator - a simulator for wireless sensor networks based on Contiki is introduced. All steps of installing and applying Cooja for a wireless sensor network applications are presented in detailed via an example application. Concretely, after attending this week, you will able to (1) describe how Contiki system and its kernel architecture are built. (2) Distinguish Contiki services and libraries in terms of how they are built, when they are invoked and why they are used. (3) Describe how communication is implemented and supported in Contiki and what protocols Contiki can support. (4) Explore how application's code is processed in Contiki and important functions of API for multithreading in Contiki (5) use Cooja for simulating wireless sensor networks applications.
What's included
8 videos1 reading1 assignment2 peer reviews1 discussion prompt
8 videosβ’Total 63 minutes
- Contiki and Cooja simulationβ’9 minutes
- The Contiki systemβ’9 minutes
- Contiki's kernel architectureβ’8 minutes
- Contiki services and librariesβ’9 minutes
- Communication in Contiki Iβ’7 minutes
- Communication in Contiki IIβ’6 minutes
- Protothread, multithreading and code sizesβ’7 minutes
- Cooja simulationβ’9 minutes
1 readingβ’Total 30 minutes
- Get started with Cooja: Step-by-stepβ’30 minutes
1 assignmentβ’Total 30 minutes
- Contiki and Cooja (Graded quiz)β’30 minutes
2 peer reviewsβ’Total 150 minutes
- Contiki Hands-onβ’60 minutes
- Energy consumption estimationβ’90 minutes
1 discussion promptβ’Total 15 minutes
- Module 4 Discussionβ’15 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructors
Offered by
Explore more from Software Development
- Status: Preview
- Status: Free TrialU
University of California, Irvine
Course
- Status: Free TrialU
University of Colorado Boulder
Course
- U
University of Colorado Boulder
Course
Why people choose Coursera for their career
Learner reviews
- 5 stars
54.05%
- 4 stars
24.32%
- 3 stars
8.90%
- 2 stars
5.72%
- 1 star
6.99%
Showing 3 of 629
Reviewed on Aug 17, 2020
Excellent training module and I am very much satisfied in the teaching process
Reviewed on Mar 12, 2019
This course is very good. Even though this course teaches you basic things it will help you to explore more. You will get to know about many new things.
Reviewed on Jan 10, 2023
Gives good idea on embedded systems architecture and operating systems.
Frequently asked questions
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you canβt afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, youβll find a link to apply on the description page.
More questions
Financial aid available,
ΒΉ Some assignments in this course are AI-graded. For these assignments, your data will be used in accordance with Coursera's Privacy Notice.
