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 |
Credential | Certificate |
Cortex-M Software Development Fundamentals at Coursera Highlights
- Earn a Certificate upon completion
Cortex-M Software Development Fundamentals at Coursera Course details
- 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