Hands-on Professional Middleware for Cortex-M
Karlsruhe, Germany — Oct 9, 2018–Oct 11, 2018
Building Advanced Applications on Cortex-M with Keil MDK-Arm
Professional
This three day course is an introduction to building advanced
applications on Cortex M devices using the Keil MDK-Arm Professional
Development Software. This is an instructor-led course with hands-on
exercises at all key stages.
1. Day One: RTX RTOS
An introduction to using a small footprint Real Time Operating
System on a Cortex-M based microcontroller. Throughout the course we
use the CMSIS-RTOS API which is designed to be a standard software
interface for operating systems running on Cortex-M
microcontrollers.
RTOS Concepts and the CMSIS-RTOS API
In this section we look at the basic RTOS concepts including Thread
based design, prioritising Threads, context switching and
the RTOS Kernel . We also introduce the Cortex Microcontroller
Software Interface Standard (CMSIS) and the CMSIS–RTOS API
specification.
Using an RTOS on Cortex based microcontrollers
Getting Started
Learn how to set up and configure a first RTOS project and download
to a development board and debug.
Using the CMSIS-RTOS API
This section takes a detailed look at the RTOS features available
with CMSIS RTOS:
• Thread and time management
• Signals and interrupt handling
• Semaphore and Mutex
• Message and mail queues
• Idle task and power management
• RTOS errors and error handling
• Configuring RTX
RTOS Techniques
This section introduces useful development techniques for Cortex-M
devices.
• Building systems with real time and event
driven code
• Software testing techniques
• Advanced Power management and watchdog
integration
Design Study
This section presents some guidelines for developing a successful
RTOS based application
Group Exercise : A ‘paper’ study of several design
cases
2. Day Two: File System and Networking Components
CMSIS Pack and CMSIS Driver
In this section we look at the CMSIS Pack and CMSIS driver
specifications and how they enable the use of configurable software
components. We will also see how software components are installed
and managed within the Keil MDK-Arm toolchain
Keil File System Component
In this section we look at how to configure and use the file
system component
Getting Started
Learn how to set up and configure project containing a file system
and download to a development board and debug.
Using the File system component
This section looks at how to use the features available in the file
system component
- Supported volumes
- Configuring for SD card Fat32
- Configuring for NOR Flash EFS
-
Using the file system API
- System routines
- File IO
- Utility and maintenance routines
Media Support and IO Control Routines
Keil Networking Component
The networking component includes a TCP\IP stack and a wide range
of services. This section of the course details how the configure
and use the key aspects of the networking component
Getting Started
Learn how to configure the networking component and deploy it to a
development board so it can be ‘pinged’ from a PC
Using the Networking component
This section looks at how to use the features available in the
Networking component
-
Supported network channels
Ethernet, PPP and Slip
- Custom communication with BSD sockets
-
Adding services
- Webserver and compact Webserver
- FTP server and client
- Telnet
- SMTP
- DNS and SNTP
- SNMP
3. Day Three : USB and Graphics Component
Keil USB Component
The USB component includes support for USB host and USB device
with a range of device classes. This section introduces the USB
protocol and details how to use the USB component to build a range
of devices.
USB Protocol overview
This section provides an overview of the key aspects of the USB
protocol and how they impact on developing USB based
devices.
Using the USB component
In this section we look at creating USB host and USB device
applications with the USB component
-
USB Device
- USB Communications Device class
- USB Human Interface Device class
- USB Mass Storage Class
- Composite Devices
-
USB Host
- USB Communications Device class
- USB Human Interface Device class
- USB Mass Storage Class
Segger emWin Graphics Component
The Segger emWin component also enables you to develop
sophisticated graphical interfaces for a wide range of LCD screens.
The Segger graphical component provides a 2D graphics library and a
PC based GUI designer which includes a wide range of windows
objects (wigits).
Getting Started
Learn how to configure the GUI component for a supported LCD screen
and deploy a simple ‘Hello World’ program to a
development board.
Using the Graphics component
In this section we look at creating graphics based
applications.
-
2D Graphics library
- Graphics primitives
- Bitmap support
- Installing fonts
-
GUI Design
- GUI Builder
- Windows manager
- Joystick and touch screen support
Designing software components for code reuse
Finally we look at how to develop and deploy your own software
components based on the CMSIS pack specification. This is a method of
reusing code developed in house across multiple projects to increase
development productivity and reliability.
Developing a CMSIS Pack Component
In this section we look at the technology underlying the CMSIS pack
specification
- CMSIS Pack Structure
- Designing a software component
- Deploying software components
Click Here for More Information...