1 Introduction To Embedded Systems
1 Introduction To Embedded Systems
Welcome to our course on Embedded Systems offered to you on the EdX MOOC platform. In this
chapter we will introduce the course, who we are, our objectives in teaching this course in an online
format, the equipment (software and hardware) you will need to perform the hands-on labs that the
course entails. We will also show you a glimpse of the all the labs you will perform towards successful
completion of the course and receiving certification.
NB: This e-book exists as a resource for the EdX course offering for Spring 2015. However, it can also
be used as a standalone resource if you ignore references to the EdX course.
1.0 Introduction
An embedded system combines mechanical, electrical, and chemical components along with a computer,
hidden inside, to perform a single dedicated purpose. There are more computers on this planet than there are
people, and most of these computers are single-chip microcontrollers that are the brains of an embedded
system. Embedded systems are a ubiquitous component of our everyday lives. We interact with hundreds of
tiny computers every day that are embedded into our houses, our cars, our bridges, our toys, and our work.
As our world has become more complex, so have the capabilities of the microcontrollers embedded into our
devices. Therefore the world needs a trained workforce to develop and manage products based on embedded
microcontrollers.
1.0.1 Impact
The innovative aspect of this class is to effectively teach a course with a substantial lab component within the
MOOC format. If MOOCs are truly going to transform the education, then they must be able to deliver
laboratory classes. This offering will go a long way in unraveling the perceived complexities in delivering a
laboratory experience to tens of thousands of students. If successful, the techniques developed in this class
will significantly transform the MOOC environment. We believe effective education requires students to
learn by doing. In the traditional academic setting this active learning is delivered in a lab format. A number
of important factors have combined that allow a lab class like this to be taught at this time. First, we have
significant support from industrial partners ARM Inc and Texas Instruments. Second, the massive growth of
embedded microcontrollers has made the availability of lost-cost development platforms feasible. Third,
your instructors have the passion, patience, and experience of delivering quality lab experiences to large
classes. Fourth, on-line tools now exist that allow students to interact and support each other.
The overall educational objective of this class is to allow students to discover how the computer interacts
with its environment. It will provide hands-on experiences of how an embedded system could be used to
solve problems. The focus of this introductory course will be understanding and analysis rather than design.
It takes an effective approach to learning new techniques by doing them. We feel we have solved the
dilemma in learning a laboratory-based topic like embedded systems where there is a tremendous volume of
details that first must be learned before hardware and software systems can be designed.
The approach taken in this course is to learn by doing in a bottom-up fashion. One of the advantages of a
bottom-up approach to learning is that the student begins by mastering simple concepts. Once the student
truly understands simple concepts, he or she can then embark on the creative process of design, which
involves putting the pieces together to create a more complex system. True creativity is needed to solve
complex problems using effective combinations of simple components. Embedded systems afford an
effective platform to teach new engineers how to program for three reasons. First, there is no operating
system. Thus, in a bottom-up fashion the student can see, write, and understand all software running on a
system that actually does something. Second, embedded systems involve real input/output that is easy for the
student to touch, hear, and see. Third, embedded systems are employed in many every-day products,
motivating students to see firsthand, how engineering processes can be applied in the real world.
Although the students are engaged with a fun and rewarding lab experience, the educational pedagogy is
centered on fundamental learning objectives. After the successful conclusion of this class, students should be
able to understand the basic components of a computer, write C language programs that perform I/O
functions and implement simple data structures, manipulate numbers in multiple formats, and understand
how software uses global memory to store permanent information and the stack to store temporary
information. Our goal is for students to learn these concepts:
1.2 Syllabus
The best way to understand what you will learn in this class is to list the labs you will complete and the
example projects we will build. You will complete each lab first in simulation and then on the real board. For
each module we will design a system and you will build and test a similar system as part of the lab for that
module.
Following is the liast of all modules, the corresponding examples we will build in each and the relevant lab
you will complete. Some of the modules do not have examples or labs.
Module 2: Fundamental concepts: numbers, computers, and the ARM Cortex M processor
Our Example. Develop a system that toggles an LED on the LaunchPad
Your Lab 2. Run existing project on LaunchPad with switch input and LED output
1.2.1 Assessment
There will be five components of assessment. First, each module will have a quiz, which is a set of multiple
choice/numerical questions that must be answered. If the student does not pass this quiz, then they can ask
for help in the discussion forums and be allowed to retake the quiz. The second assessment involves solving
the lab in simulation, and the third assessment is completing a physical lab. This means the student will wire
up a simple circuit, write microcontroller code, and run the software on the real computer. Added to the
students software will be a grading engine that can assess the quantitative performance of the system. The
labs result in a numerical score describing how many of the lab requirements the student successfully
completed.
1. 10% quizzes
2. 45% labs in simulation
3. 45% labs running on the real board
We have made some enhancements to the content and made the certification process more flexible:
Embedded Systems - Shape the World by Jonathan Valvano and Ramesh Yerraballi is licensed under a
Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Based on a work at http://users.ece.utexas.edu/~valvano/arm/outline1.htm.