- Level Professional
- المدة 9 ساعات hours
- الطبع بواسطة Arm
-
Offered by
عن
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.الوحدات
Course Welcome
1
Videos
- Course introduction
Compiler Support for Arm Embedded Systems
5
Videos
- Building a Project
- Compiler Support for Arm Architecture & Functional Safety
- Introduction to Arm Compiler
- Language Support & Variable Types
- C++ Support
Coding Considerations
3
Videos
- Procedure Call Standard for the Arm Architecture (AAPCS)
- Parameter Passing - Part 1
- Parameter Passing - Part 2
Compiler Usage
2
Videos
- Optimization Level & Algorithms
- Selecting a Target
Mixing C/C++ with Assembly
2
Videos
- Mixing C/C++ with Assembly - Part 1
- Mixing C/C++ with Assembly - Part 2
Linker and Libraries
5
Videos
- Linker and Optimization
- Targeting your System's Memory Map
- Scatter-loading
- Libraries
- Linker Diagnostics
Arm Compiler Troubleshooting
1
Videos
- Arm Compiler Troubleshooting
References and Exercises
1
Assignment
- Compiler & Linker Fundamentals
1
Videos
- GNU Toolchain & Arm Compiler 5 (Appendix)
8
Readings
- 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
Introduction
1
Videos
- Introduction to Armv8-M Debug & Trace
Debugging
1
Videos
- Debugging with Breakpoints, Watchpoints, Semihosting & Vector Catch
Tracing Execution
7
Videos
- 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
1
Assignment
- Armv8-M Debug
1
Videos
- Profiling
1
Readings
- Download Course Slides
Default Compilation Tool Behavior
5
Videos
- Introduction: Embedded Development Process
- Default Startup and Initialization Sequence
- Default Memory Map
- Default Linker Placement Rules
- C Libraries
Writing Startup and Initialization Code
5
Videos
- Reset and Initialization
- Possible Initialization Sequence
- CMSIS Startup and Initialization
- CMSIS-Core Startup & System Initialization Files
- Post Startup Initialization
Tailoring the Image Memory Map to a Device
7
Videos
- 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 the C Library Behavior to work with your System
1
Videos
- Retargeting C Library
Building an Image Ready for Booting
1
Assignment
- Booting & initialization
1
Videos
- Building an Image Ready for Booting
1
Readings
- Download Course Slides
Tarmac Trace
9
Videos
- 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
1
Assignment
- Armv8-M Architecture and Software Development Fundamentals Assessment
2
Videos
- Recap
- Congratulations
4
Readings
- Cortex-M3 Walkthrough Recap
- Tarmac Trace for Fast Models
- Cortex-M Walkthrough Challenge
- Download Course Slides
Auto Summary
Discover the essentials of Cortex-M software development with this professional-level course. Dive into topics like Arm C/C++ compilers, Arm debug tools, and the Common Microcontroller Software Interface Standard to optimize performance and code size. Offered by Coursera, this comprehensive 540-minute course is ideal for IT and computer science professionals. Available through a Starter subscription.

Uma Maheswari Ramalingam

Shirley Zou

Nick Tompkins

Yang Song

Matt Rushton

Walker Huang

Edmund Player

Salman Arif