About this Course
4.5
132 ratings
46 reviews
100% online

100% online

Start instantly and learn at your own schedule.
Flexible deadlines

Flexible deadlines

Reset deadlines in accordance to your schedule.
Intermediate Level

Intermediate Level

Hours to complete

Approx. 33 hours to complete

Suggested: 5-6 hours/week...
Available languages

English

Subtitles: English

Skills you will gain

MakefileC ProgrammingEmbedded C
100% online

100% online

Start instantly and learn at your own schedule.
Flexible deadlines

Flexible deadlines

Reset deadlines in accordance to your schedule.
Intermediate Level

Intermediate Level

Hours to complete

Approx. 33 hours to complete

Suggested: 5-6 hours/week...
Available languages

English

Subtitles: English

Syllabus - What you will learn from this course

Week
1
Hours to complete
4 hours to complete

Embedded System Development Components

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....
Reading
10 videos (Total 77 min), 2 quizzes
Video10 videos
1. Introduction to the Module3m
2. Introduction to Embedded Systems5m
3. Embedded Software Engineering8m
4. C-Programming Review11m
5. Introduction to Software Configuration Management5m
6. C Standardization and Team Coding Standards8m
7. Development Environments Overview8m
8. Development Kits and Documentation10m
9. Version Control12m
Quiz1 practice exercise
Week 1 Quiz28m
Week
2
Hours to complete
4 hours to complete

Compilation with GCC and GNU Make

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....
Reading
9 videos (Total 81 min), 2 quizzes
Video9 videos
2. Compiling and Invoking GCC11m
3. Preprocessor Directives10m
4. Creating Header and Implementation Files9m
5. Linkers11m
6. Make8m
7. Makefiles Part 17m
8. Makefiles Part 210m
9. Other Useful GNU Bin Tools5m
Quiz1 practice exercise
Week 2 Quiz42m
Week
3
Hours to complete
2 hours to complete

Memory Types, Segments and Management

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....
Reading
8 videos (Total 64 min), 2 readings, 2 quizzes
Video8 videos
2. Memory Architectures8m
3. Memory Segments6m
4. Data Memory8m
5. Special Keywords (Const, Extern & Static)8m
6. The Stack9m
7. The Heap7m
8. Code Memory8m
Reading2 readings
Programming Assignment Instructions10m
Programming Assignment Quiz Solution10m
Quiz2 practice exercises
Week 3 Quiz20m
Programming Assignment Quiz18m
Week
4
Hours to complete
2 hours to complete

Course 1 Final Assessment

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....
Reading
1 quiz
4.5
46 ReviewsChevron Right
Career direction

33%

started a new career after completing these courses
Career Benefit

25%

got a tangible career benefit from this course

Top Reviews

By CSJul 2nd 2018

Great coursework. It makes you explore C , GNU's tool chain and Memory segments which are all essential for Embedded Systems. I'm very much excited and thrilled to share my experience to others.

By BSDec 21st 2017

A real added value for engineers who wants to have a more detailed view on automated build (Make, .. ) and a more in depth knowledge to the memory mapping and other things.

Instructor

Avatar

Alex Fosdick

Instructor
Electrical, Computer, and Energy Engineering

About University of Colorado Boulder

CU-Boulder is a dynamic community of scholars and learners on one of the most spectacular college campuses in the country. As one of 34 U.S. public institutions in the prestigious Association of American Universities (AAU), we have a proud tradition of academic excellence, with five Nobel laureates and more than 50 members of prestigious academic academies....

Frequently Asked Questions

  • Once you enroll for a Certificate, you’ll have access to all videos, quizzes, and programming assignments (if applicable). Peer review assignments can only be submitted and reviewed once your session has begun. If you choose to explore the course without purchasing, you may not be able to access certain assignments.

  • When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

  • The specialization supports assignments and grading only on the MSP432 development board. The course material can translate to other development kits and students are welcome to take this course with their own embedded system, but grading will only be supported and graded with only the MSP432.

    And just a reminder that the first course of the specialization doesn’t require you to order any hardware. You will need to obtain the following microcontroller development kit to use for project work in later courses of the specialization: Texas Instruments Launchpad - MSP432p401r. This evaluation kit is available for about $13 US dollars. More information about ordering the kit will be provided in the course.

More questions? Visit the Learner Help Center.