Building Advanced Applications on Cortex-M Devices using Keil MDK-ARM Middleware
This 2-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 delivered by our resident ARM Specialist, Trevor Martin who is also a published author and recognised authority on Cortex-M cores.
It also includes hands-on exercises at all key stages.
The course is delivered by our resident ARM Specialist, Trevor Martin who is also a published author and recognised authority on Cortex-M cores. It is held in conjunction with the RTOS course, which runs the day prior to this one.
What will be covered?
Day 1: File System and CMSIS Driver
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
Day 2: 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)
- USB Host (USB Communications Device class, USB Human Interface Device class, USB Mass Storage Class)
Segger emWin Graphics Component
The Segger emWin component also 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