Coursera
Coursera Logo

Cortex-M Software Development Fundamentals 

  • Offered byCoursera

Cortex-M Software Development Fundamentals
 at 
Coursera 
Overview

Duration

9 hours

Start from

Start Now

Total fee

Free

Mode of learning

Online

Difficulty level

Intermediate

Official Website

Explore Free Course External Link Icon

Credential

Certificate

Cortex-M Software Development Fundamentals
 at 
Coursera 
Highlights

  • Earn a Certificate upon completion
Details Icon

Cortex-M Software Development Fundamentals
 at 
Coursera 
Course details

More about this course
  • This course delves into software development topics such as working with Arm C/C++ compilers and Arm debug tools to optimize your software, whether it's for performance or code size
  • This course also looks more closely at the Common Microcontroller Software Interface Standard and how it helps ensure that software targeted at Cortex-M devices can be written using a consistent approach

Cortex-M Software Development Fundamentals
 at 
Coursera 
Curriculum

Course Introduction

Course introduction

Building a Project

Compiler Support for Arm Architecture & Functional Safety

Introduction to Arm Compiler

Language Support & Variable Types

C++ Support

Procedure Call Standard for the Arm Architecture (AAPCS)

Parameter Passing - Part 1

Parameter Passing - Part 2

Optimization Level & Algorithms

Selecting a Target

Mixing C/C++ with Assembly - Part 1

Mixing C/C++ with Assembly - Part 2

Linker and Optimization

Targeting your System's Memory Map

Scatter-loading

Libraries

Linker Diagnostics

Arm Compiler Troubleshooting

GNU Toolchain & Arm Compiler 5 (Appendix)

Compiler & Linker Fundamentals Reference Material

Challenge: inlining a function

Answer: inlining a function

Challenge: fixing infinite loops

Answer: fixing infinite loops

Challenge: fixing inline assembly

Answer: fixing inline assembly

Download Course Slides

Compiler & Linker Fundamentals

Debug & Trace

Introduction to Armv8-M Debug & Trace

Debugging with Breakpoints, Watchpoints, Semihosting & Vector Catch

Introduction to Trace

Micro Trace Buffer

Instrumentation Trace Macrocell

DWT Trace Capture

Embedded Trace Macrocell

Trace Port Interface Unit

Trace Port and Bandwidth, Trace Clock Considerations

Profiling

Download Course Slides

Armv8-M Debug

Booting & Initialisation

Introduction: Embedded Development Process

Default Startup and Initialization Sequence

Default Memory Map

Default Linker Placement Rules

C Libraries

Reset and Initialization

Possible Initialization Sequence

CMSIS Startup and Initialization

CMSIS-Core Startup & System Initialization Files

Post Startup Initialization

Writing Memory Description Files - Part 1

Writing Memory Description Files - Part 2

Placing the Stacks and Heap

Accessing Memory-mapped Registers

Ordering Objects in a Scatter File

Root Regions

MPU Initialization

Retargeting C Library

Building an Image Ready for Booting

Download Course Slides

Booting & initialization

Cortex-M Walkthrough

What is Tarmac Trace

Tarmac Trace Example

Tarmac Trace Quiz

Startup

Step 0: Reset

Reset Handler

Step 1: __main() and Scatter-loading

Step 2: Application Code in main()

Exception Handling

Recap

Congratulations

Cortex-M3 Walkthrough Recap

Tarmac Trace for Fast Models

Cortex-M Walkthrough Challenge

Download Course Slides

Armv8-M Architecture and Software Development Fundamentals Assessment

Cortex-M Software Development Fundamentals
 at 
Coursera 
Admission Process

    Important Dates

    May 25, 2024
    Course Commencement Date

    Other courses offered by Coursera

    – / –
    3 months
    Beginner
    – / –
    20 hours
    Beginner
    – / –
    2 months
    Beginner
    – / –
    3 months
    Beginner
    View Other 6715 CoursesRight Arrow Icon
    qna

    Cortex-M Software Development Fundamentals
     at 
    Coursera 

    Student Forum

    chatAnything you would want to ask experts?
    Write here...