Welcome to the Introduction to Embedded Systems Software and Development Environments. This course is focused on giving you real world coding experience and hands on project work with ARM based Microcontrollers. You will learn how to implement software configuration management and develop embedded software applications. Course assignments include creating a build system using the GNU Toolchain GCC, using Git version control, and developing software in Linux on a Virtual Machine. The course concludes with a project where you will create your own build system and firmware that can manipulate memory.
Introduction to Embedded Systems Software and Development Environments
Instructor: Alex Fosdick
Sponsored by BrightStar Care
126,279 already enrolled
(620 reviews)
What you'll learn
Classify the parts of an embedded systems developer’s Source Configuration Management (SCM)
Implement a build system using GNU’s Make and GCC compiler toolsets
Write C-programs to define data in different memory regions
Skills you'll gain
Details to know
Add to your LinkedIn profile
4 assignments
See how employees at top companies are mastering in-demand skills
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review
There are 4 modules in this course
Module 1 will introduce the learner to the components of your embedded system software development process. This module will be a quick overview for many topics with detailed analysis to follow in later modules and courses. We start with defining the hardware and software building blocks of Embedded Systems which will include a C-programming refresher. Next you will learn about the important tools a developer will need to use to help design, build and manage their designs. This includes development environments, version control and the hardware kits to install on. Learners will install and use a Virtual machine to complete Week 1 Application Assignment.
What's included
10 videos1 assignment1 peer review
Module 2 will introduce the learner to the software development build system. Most software engineers are very knowledgeable about their build system as we need them to translate our high-level software languages to our architecture specific implementations. There are some important platform and architecture concepts that are introduced in the build system to help enforce good software design techniques. Learners will create their own build systems and utilize build tools to analyze their embedded software implementations.
What's included
9 videos1 assignment1 peer review
Module 3 will begin to introduce important embedded concepts like the memory systems in their design. Learners will understand how the software to hardware mapping occurs for their designs including differentiating between your program code and your program data. Memory systems have many platform and architecture dependencies, and you will begin to learn about some of the fundamental concepts a software engineer needs to know to utilize all parts of an embedded system’s memory.
What's included
8 videos2 readings2 assignments
During this week you are to going to combine what you have learned in modules 1-3 to write some memory manipulation software, incorporate into your build system and then run some test functions. At the end of the assignment you will perform a detailed code review of other learners’ software. Reviewing other learners code is very important for both your growth of software design but also for the coder to gain valuable feedback. Professional software engineering regularly go through software reviews when developing code.
What's included
1 peer review
Instructor
Offered by
Why people choose Coursera for their career
Learner reviews
620 reviews
- 5 stars
69.82%
- 4 stars
18.78%
- 3 stars
4.81%
- 2 stars
2.56%
- 1 star
4.01%
Showing 3 of 620
Reviewed on Oct 9, 2019
The course was excellent for me, as a beginner. Of course, the learning curve was steep and the assignments challenging, but I learnt a lot. Thanks you Coursera and University of Colorado, Boulder.
Reviewed on Jul 24, 2021
This is so amazing. This helped me to understand things that i was bothering long time ago. Thank you University of Colorado Boulder and Mr. Alex Fosdick.
Reviewed on Feb 25, 2022
Great course. Not recommended to an absolute C beginner though. You need to do a decent amount of self-study in order to perform well.
Recommended if you're interested in Physical Science and Engineering
University of Colorado Boulder
UNSW Sydney (The University of New South Wales)
University of Colorado Boulder
Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy