ARM Training - ARM Cortex-M1 system design (reference 004735A)
 
    Partners
  • Do not hesitate to request the detailed course description by contacting training@mvd-fpga.com
  • This training course is approved by ARM
  • On-site only course
   
           
    Practical labs
  • Labs can be run under 2 possible environments :
    • Eclipse/RVDS
    • Keil IDE
   
             
    Prerequisites
  • A basic understanding of microprocessors and microcontrollers
  • A basic understanding of digital logic or hardware / ASIC design issues would be useful but not essential
  • A basic understanding of assembler or C programming would be useful but not essential
   
             
  Course Objectives
  • This course takes an in depth look at the considerations you will need to take into account when designing a system containing a Cortex-M1 processor core
  • It is aimed at :
    • Software engineers who not only want to obtain details of how to write software to run on the Cortex-M1, but also wish to obtain an understanding of hardware design issues
    • Hardware engineers who need to understand how to design Cortex-M1 based systems, but also wish to obtain an understanding of the issues of writing software to run on that system
   
           
    Duration
  • 4-day course
   
           
    Topics

(The full description of this course can be provided on request)

ARM Cortex-M1 CORPORATE INTRODUCTION

  • ARM architectural summary
  • Architecture challenge, meeting the challenge with profiles
  • ARM instruction set evolution

ARM Cortex-M1 INTRODUCTION

  • Programmer's model
  • Fixed memory map
  • Privilege, modes and stacks
  • Memory Protection Unit
  • Interrupt handling
  • Nested Vectored Interrupt Controller [NVIC]
  • Power management
  • Debug

DEVELOPMENT TOOLS OVERVIEW

  • RVCT compilation tools
  • Codewarrior for RVDS
  • RVD debugger
  • RVISS simulator
  • JTAG run control unit

ARM Cortex-M1 CORE

  • Datapath and pipeline
  • Write buffer
  • Bit-banding
  • System timer
  • State, privilege and stacks
  • System control block
  • Different level of debug implementation

THUMB-2 INSTRUCTION SET

  • Data processing instructions
  • Branch and control flow instructions
  • Memory access instructions
  • Exception generating instructions
  • If...then conditional blocks
  • Exclusive load and store instructions
  • Accessing special registers
  • Memory barriers and synchronization
  • Workbook : introductory tutorial for Cortex-M1

INTERRUPTS

  • Interrupt entry / exit, timing diagrams
  • Tail chaining
  • Interrupt response, pre-emption
  • Interrupt prioritisation
  • Interrupt implementation configurability, impact on core size

EXCEPTIONS

  • Exception behavior, exception return
  • Non-maskable exceptions
  • Privilege, modes and stacks
  • Fault escalation
  • Vector table

MEMORY TYPES

  • Memory types, restriction regarding load / store multiple
  • Device and normal memory ordering
  • Access order
  • Memory barriers

EMBEDDED SOFTWARE DEVELOPMENT WITH Cortex-M1

  • Placing code, data, stack and heap in the memory map, scatterloading
  • Tailoring the C library to your target
  • Reset and initialisation
  • Building and debugging your image
  • Long branch veneers
  • Workbook : Retargeting the standard C library functions, handling interrupts

INVASIVE DEBUG

  • Cortex-M1 debug features
  • Monitor mode
  • Flash patch and breakpoint features
  • Data watchpoint and trace
  • DWT registers
  • AHB-Access Port

INTEGRATION

  • Functional Integration
  • Clocking
  • Reset
  • AHD and Debug interfaces
  • Synthesis, Place and Route
  • Sign-Off

IMPLEMENTATION

  • Implementation flow
  • Configuration options
  • RTL Validation
  • Synthesis
  • Place and route
  • Qualification

C/C++ COMPILER HINTS AND TIPS FOR Cortex-M1

  • ARM compiler optimisations
  • Mixing C/C++ and assembly
  • Coding with ARM compiler
  • Measuring stack usage
  • Local and global data issues, alignment of structures

AMBA3.0 INTERCONNECT SPECIFICATION

  • Purpose of this specification
  • Example of SoC based on AMBA specification
  • Differences between AMBA2.0 and AMBA3.0

AHB - ADVANCED HIGH PERFORMANCE BUS

  • Centralized address decoding
  • Address gating logic
  • Arbitration, bus parking
  • Single-data transactions
  • Sequential transfers
  • Retry response
  • Split response
  • AHB-lite specification

APB - ADVANCED PERIPHERAL BUS

  • Read timing diagram
  • Write timing diagram
  • Operation of the AHB-to-APB bridge
  • APB3.0 new features

AHB CORTEX-M1 PORTS

  • Clocking and reset
  • Bus interfaces , AMBA-3 compliance
  • Debug interface, AHB-AP programming interface
  • Connection to the TPIU
   
           
    Documentation

Training manuals will be given to participants during training. Precise and easy of use, those notes can be used as a reference afterwards.
   
           
    Other trainings :

If you want to know our other training courses and their contents, you can consult or download our complete training courses list on this page : Training courses - General presentation