Introduction to Embedded Systems Software and Development Environments

Product type

Introduction to Embedded Systems Software and Development Environments

Coursera (CC)
Logo Coursera (CC)
Provider rating: starstarstarstar_halfstar_border 7.2 Coursera (CC) has an average rating of 7.2 (out of 6 reviews)

Need more information? Get more details on the site of the provider.

Description

When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan

  • Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
  • Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.

About this course: Introduction to Embedded Systems Software and Development Environments is the first course of the upcoming Embedded Software Essentials Specialization. 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. Later …

Read the complete description

Frequently asked questions

There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.

When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan

  • Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
  • Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.

About this course: Introduction to Embedded Systems Software and Development Environments is the first course of the upcoming Embedded Software Essentials Specialization. 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. Later courses of the Specialization will use hardware tools to program and debug microcontrollers with bare-metal firmware. Using a Texas Instruments MSP432 Development Kit, you will configure a variety of peripherals, write numerous programs, and see your work execute on your own embedded platform!

Who is this class for: This course is for motivated learners who have some background in computer engineering and software design and who want to break into the field of embedded systems design.

Created by:  University of Colorado Boulder
  • Taught by:  Alex Fosdick, Instructor

    Electrical, Computer, and Energy Engineering
Level Intermediate Commitment 5-6 hours/week Language English Hardware Req This course doesn’t require any hardware. Check out FAQs for requirements in later courses. How To Pass Pass all graded assignments to complete the course. User Ratings 4.4 stars Average User Rating 4.4See what learners said Задания курса

Каждый курс — это интерактивный учебник, который содержит видеоматериалы, тесты и проекты.

Помощь сокурсников

Общайтесь с тысячами других учащихся: обсуждайте идеи, материалы курса и помогайте друг другу осваивать новые понятия.

Сертификаты

Получите документы о прохождении курсов и поделитесь своим успехом с друзьями, коллегами и работодателями.

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.

Syllabus


WEEK 1


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.


10 videos expand


  1. Video: 0. Introduction to the Course
  2. Video: 1. Introduction to the Module
  3. Video: 2. Introduction to Embedded Systems
  4. Video: 3. Embedded Software Engineering
  5. Video: 4. C-Programming Review
  6. Video: 5. Introduction to Software Configuration Management
  7. Video: 6. C Standardization and Team Coding Standards
  8. Video: 7. Development Environments Overview
  9. Video: 8. Development Kits and Documentation
  10. Video: 9. Version Control

Graded: Week 1 Quiz
Graded: Week 1 Application Assignment

WEEK 2


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.


9 videos expand


  1. Video: 1. Introduction to Build Systems using GNU Toolsets
  2. Video: 2. Compiling and Invoking GCC
  3. Video: 3. Preprocessor Directives
  4. Video: 4. Creating Header and Implementation Files
  5. Video: 5. Linkers
  6. Video: 6. Make
  7. Video: 7. Makefiles Part 1
  8. Video: 8. Makefiles Part 2
  9. Video: 9. Other Useful GNU Bin Tools

Graded: Week 2 Quiz
Graded: Week 2 Application Assignment

WEEK 3


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.


8 videos, 2 readings expand


  1. Video: 1. Introduction to Memory Organization
  2. Video: 2. Memory Architectures
  3. Video: 3. Memory Segments
  4. Video: 4. Data Memory
  5. Video: 5. Special Keywords (Const, Extern & Static)
  6. Video: 6. The Stack
  7. Video: 7. The Heap
  8. Video: 8. Code Memory
  9. Материал для самостоятельного изучения: Programming Assignment Instructions
  10. Материал для самостоятельного изучения: Programming Assignment Quiz Solution

Graded: Week 3 Quiz
Graded: Programming Assignment Quiz

WEEK 4


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.


1 reading expand


  1. Материал для самостоятельного изучения: Purchasing Hardware for Course 2

Graded: Expanded Build System and Memory
There are no reviews yet.

Share your review

Do you have experience with this course? Submit your review and help other people make the right choice. As a thank you for your effort we will donate £1.- to Stichting Edukans.

There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.