Micrium

Training


Upcoming Events

Class Title
Location
Dates

TDD for Embedded C

Weston, FL

March 10-11

TDD for Embedded C++

Weston, FL

March 17-18

Application Development with µC/OS-II Duesseldorf, Germany May 14-15, 2009

Additional Offerings

Class Title
Location
Dates

Designing Applications with µC/OS-II

Weston, FL

On demand

Embedding TCP/IP

Weston, FL

On demand

Application Development with µC/OS-II

On-site, throughout Europe

On demand

 

Micriµm µC/OS-II training in Europe


Class title Application Development with µC/OS-II
Duration

2 days
Format Hands-on and project based
Dates May 14-15, 2009
Location Duesseldorf, Germany
Price $1,995 per person

Early registration discount:
- 30% when registering before the end of February.
- 20% when registering before the end of March.
- 10% when registering before the end of April.
Materials During the first class session, all participants receive a complementary copy of the class textbook and a CD with all the necessary development tools.

The evaluation board used for the class exercises is the EKI-LM3S6965 from Luminary Micro. One of these ARM Cortex-M3 based systems is made available per team of 2 for the duration of the training class.
Registration

If you are interested in this training event, feel free to contact Feaser to discuss the details:

Web: http://www.feaser.com
E-mail: info@feaser.com
Phone: +31 644-744-607 (Europe)
Phone: +1 877-293-1452 (US Toll Free)

 

Description

This 2-day training class uses hands-on exercises combined with instruction to illustrate the concepts of the µC/OS-II real-time operating system and how it is applied in embedded application development, requiring hard real-time performance. After completing this training class, participants have a good understanding of the µC/OS-II kernel and its services, gained skills in using the operating system and can use it effectively in their own embedded application development projects. This class is architected for everyone interested in or tasked with developing an embedded software application based on Micrium's µC/OS-II real-time operating system.

Instructor

Frank Voorburg is the managing director of Feaser LLC and developer of the training instruction materials. He holds a Master degree in Automotive Engineering from the University of Michigan in Ann Arbor, United States. After working several years on embedded automotive multiplex communication software at Vector CANtech, he started Feaser LLC to provide innovative products and continuous education to the embedded software industry. He has lectured on microcontrollers and embedded software development at the HAN University in Arnhem, the Netherlands.

Detailed Outline

During the training Application Development with µC/OS-II, the participants work in teams of 2 on the class project. Supporting theory is supplied in a just-in-time manner. The training consists of 8 group meetings with a length of approximately 2 hours each. This brings the total study load to 16 hours.

Application Development with µC/OS-II
Day 1
Session 1 Overview of the class goals and structure.
Introduction to the class project.
Using the development environment.
Basic multitasking concepts.
Session 2 µC/OS-II initialization and the start-task.
Task state-machine and management.
Kernel structure, services and scheduler.
Preemptive vs. non-preemptive scheduling.
Session 3 Context switching.
Resource sharing and semaphores.
Interrupt handling.
Session 4 Task synchronization using event flags.
Time management.
Day 2
Session 5 Task communication using messages.
Task communication using queues.
Session 6 Optimizing task priorities.
Power saving strategies.
Session 7 Preventing deadlocks.
Limiting priority inversion using a mutex.
Session 8 Obtaining run-time kernel statistics.
Computing memory requirements.
Interrupt latency, response and recovery.

 



Micriµm µC/OS-II training in North America



Class title Designing Applications with µC/OS-II
Duration

2 days
Format Hands-on
Dates On demand
Price

Before January 12:  $1,596 (20% Discount)
January 12 - January 16:  $1,796 (10% Discount)   
After January 16:  $1,995

Each participant will receive an ARM9 development kit including target STR912F board, J-Link JTAG debugger, and IAR EWARM Kickstart Edition, plus an evaluation copy of IAR VisualSTATE.  This hardware and tools will be used in class. Each participant will also receive a copy of "MicroC/OS-II, The Real-Time Kernel," the book by Jean J. Labrosse.

Location South Florida

Micrium Inc.
1290 Weston Road
Weston, FL 33326
USA
Registration By Phone: +1 954 217 2036 x 104 (Robert or Chris)
E-Mail:       sales@micrium.com


Micriµm µC/TCP-IP training



Class title Embedding TCP/IP
Duration

2 days
Format Hands-on
Dates On demand
Price

$1,995 per person

Each participant will receive an ARM9 development kit including target STR912F board, J-Link JTAG debugger, and IAR EWARM 30-Day Evaluation Edition, plus an evaluation copy of IAR VisualSTATE.  This hardware and tools will be used in class.

Location South Florida

Micrium Inc.
1290 Weston Road
Weston, FL 33326
USA
Registration By Phone: +1 954 217 2036 x 104 (Robert or Chris)
E-Mail:       sales@micrium.com

Description

This class describes TCP/IP processes using demos and examples on a target running an application using a TCP/IP stack, a local Ethernet network and analysis tools on a PC. Demonstrations exercise all the layers, and follow the processes through each layer of the TCP/IP stack. We will look at TCP/IP from an embedded systems perspective. Because not every embedded system requires all of the TCP/IP protocol features, the class will examine the impact of different protocol features on code size and performance. A special attention is given to configuration to achieve optimal performance with TCP because it is often believed that TCP/IP can run on any target. This prevalent misinformation, along with programmer inexperience, contributes to poor performance and often results in system failures such as buffer starvation, lots of retransmission, and packet drop.  This course will help you avoid spending weeks or months debugging seemingly intractable protocol interactions resulting from poor design.  Get your software running properly with this hands-on, in depth course about the proper use of a TCP/IP stack with exercises on an ARM9 development kit from IAR and STMicro.

Instructor        

Christian Legare has a Master’s degree in Electrical Engineering from the University of Sherbrooke, Quebec, Canada. In his 22 years in the telecom industry, he was involved as an executive in large scale organizations as well as start-ups, mainly in Engineering and R&D. Christian was recently in charge of an IP (Internet Protocol) certification program at the International Institute of Telecom (IIT) in Montreal, Canada as their IP systems expert. Mr. Legare joined Micrium, home of µC/OS-II, The Real-Time Kernel, as Vice-President in 2002, mainly to supervise the development of embedded communication modules, including TCP/IP.

Detailed Outline

Embedding TCP/IP trains firmware engineers in the proper use of a TCP/IP stack and socket APIs to develop networked applications. The course is delivered as a series of lectures and hands-on exercises; the lectures comprise approximately 2/3 of total class time and the exercises the remaining 1/3.

Embedding TCP/IP
Section 1       
Introduction
Module 1.1 Course Overview
Module 1.2       What is a TCP/IP stack?
Module 1.3 TCP/IP Protocol Architecture
Protocol Family
Module 1.4       The starting point
Section 2
Lab set-up
Module 2.1 Network
Module 2.2      Software Development
Module 2.3        TCP/IP stack
Module 2.4      Network Protocol Analyzer
Module 2.5 TTCP
Benchmarking Tool for measuring TCP and UDP Performance
Module 2.6      µC/Probe Real-Time monitoring
Section 3
Software architecture
Module 3.1
Module relationship
Module 3.2 Task Model
Section 4
Requirements
Module 4.1 CPU
Module 4.2     Footprint
Module 4.3     Protocols and services
Section 5
LAN = Ethernet
Module 5.1 Ethernet technology
Module 5.2 Ethernet 802.3 Frame Structure
Module 5.3 Traffic types
Module 5.4 Network buffers
Module 5.5 Ethernet Controller Interface
Module 5.6 DMA and Non-DMA
Module 5.7 Zero Copy
Module 5.8 ARP Operation
Module 5.9 ARP & Packet capture
Section 6
IP addressing
Module 6.1 IP Address classes
Module 6.2 IP Reserved addresses
Module 6.3 IP Reserved private addresses
Module 6.4 Routing information
Module 6.5 Subnetworking
Module 6.6 IP Characteristics
Module 6.7 Capture and analyze IP packets
Section 7
Troubleshooting
Module 7.1 Ping
Module 7.2 Traceroute
Module 7.3 Troubleshooting with ICMP tools
Section 8
Transport Protocols
Module 8.1 UDP Characteristics
Module 8.2 Capture and analyze UDP datagrams
Module 8.3 TCP Characteristics
Module 8.4 TCP connection phases
Module 8.5 Capture and analyze TCP 3-way handshake
Section 9
Socket Programming
Module 9.1 Stream Sockets
Module 9.2 Datagram Sockets
Module 9.3 Blocking versus Non-Blocking
Module 9.4 Client - Server Model
Module 9.5 Stream Server
Module 9.6 Stream Client
Module 9.7 Datagram Server
Module 9.8 Datagram Client
Section 10
Applications and services
Module 10.1 DHCP
Module 10.2 DNS
Module 10.3 Telnet
Module 10.4 SMTP (e-mail)
Module 10.5 FTP
Module 10.6 HTTP
Section 11
Course Wrap-up

 

TDD for Embedded C



Class title TDD for Embedded C
Duration

2 days
Format Hands-on
Dates March 10-11 , 2009
Price

Before February 18:  $1,500
After February 18:  $1,800

Location South Florida

Micrium Inc.
1290 Weston Road
Weston, FL 33326
USA
Registration By Phone: +1 847 438 9942
E-Mail:       courses@renaissancesoftware.net

Description

Test Driven Development is a powerful technique for building embedded software. This hands-on course teaches the practice of Test Driven Development in the challenging environment of C. In this course you will learn how TDD helps overcome some of the challenges embedded developers face including: upredictable schedules, poor quality, and the problems that follow. In addition, embedded software developers must conquer the realities of concurrent hardware/software development, scarce target hardware availability, long download times, high deployment costs, as well as the challenges of testing embedded C.

Test-Driven Development, a key agile practice, helps software developers improve schedule predictability and product quality and can do the same for embedded developers. TDD is valuable even outside of agile development methods.

This course describes the problems addressed by TDD, as well as the additional challenges and benefits of applying it to embedded software. You will learn the test driven techniques as well as specific design approaches to make your C code to testable today, maintainable tomorrow, and ready for a long useful life.

Instructor        

James Grenning, founder of Renaissance Software Consulting, trains, coaches and consults worldwide. With more than thirty years of software development experience, both technical and managerial, James brings a wealth of knowledge, skill, and creativity to software development teams and their management. As his professional roots are in embedded software, he is leading the way to introduce Agile development practices to that challenging world. He is currently writing a book on applying Test Driven Development to embedded software.

Detailed Outline

TDD for Embedded C
Test Driven Development
Why Test Driven Development?
What is Test Driven Development?      
The Mirocycle
Exercise      
Special Considerations for Embedded
Leveraging the Development System
Risks of Development System Unit Testing    
Embedded TDD Cycle     
Hardware/Platform Independence  
Testing with Printed Output
Why is inspecting printed output manually is a loosing proposition?
Spying on the printed output
Using a dynamic spy
Exercise
Testable Designs
Object Oriented Principles Applied to C
TDD and Collaborating C Modules - testing the code in the middle    
Test Fakes, Stubs, Doubles, Mocks
Spy
Link time fake
Exercise
Breaking dependencies dynamically
Dynamic fake
Exercise
Managing Hardware Dependencies
Self-Verifying Mock Objects
Exercise
Intro to Refactoring
Test Smells, Code Smells
Critical Skills
Incremental Improvement
Exercise
Working with Legacy C
Boy scout rule
Incremental Improvement
The first test, the next test
Crash Testing
Legacy code test addition strategy
Exercise
Architectural Vision and Incremental Delivery
The Big Picture
Vertical Slices
From Specific to General
Wrap up Discussion

 

TDD for Embedded C++



Class title TDD for Embedded C++
Duration

2 days
Format Hands-on
Dates March 17-18 , 2009
Price

Before February 18:  $1,500
After February 18:  $1,800

Location South Florida

Micrium Inc.
1290 Weston Road
Weston, FL 33326
USA
Registration By Phone: +1 847 438 9942
E-Mail:       courses@renaissancesoftware.net

Description

Test Driven Development is a powerful technique for building embedded software. This hands-on course teaches the practice of Test Driven Development in the challenging environment of C++. In this course you will learn how TDD helps overcome some of the challenges embedded developers face including: upredictable schedules, poor quality, and the problems that follow. In addition, embedded software developers must conquer the realities of concurrent hardware/software development, scarce target hardware availability, long download times, high deployment costs, as well as the challenges of testing embedded C++.

Test-Driven Development, a key agile practice, helps software developers improve schedule predictability and product quality and can do the same for embedded developers. TDD is valuable even outside of agile development methods.

This course describes the problems addressed by TDD, as well as the additional challenges and benefits of applying it to embedded software. You will learn the test driven techniques as well as specific design approaches to make your C code to testable today, maintainable tomorrow, and ready for a long useful life.

Instructor        

James Grenning, founder of Renaissance Software Consulting, trains, coaches and consults worldwide. With more than thirty years of software development experience, both technical and managerial, James brings a wealth of knowledge, skill, and creativity to software development teams and their management. As his professional roots are in embedded software, he is leading the way to introduce Agile development practices to that challenging world. He is currently writing a book on applying Test Driven Development to embedded software.

Detailed Outline

TDD for Embedded C++
Test Driven Development
Why Test Driven Development?
What is Test Driven Development?      
The Mirocycle
Exercise      
Special Considerations for Embedded
Leveraging the Development System
Risks of Development System Unit Testing    
Embedded TDD Cycle     
Hardware/Platform Independence  
TDD with Collaborating Objects
TDD with Printed Output
Exercise
TDD with the Code in the Middle
Spies and Fakes
Abstracting the Hardware
Controlling the Clock
Exercise
Agile Design
Rules of Simple Design
SOLID Design Principles
DRY Principle
Mind Your Own Business
Architectural Vision
The Big Picture
Vertical Slices
From Specific to General  
Refactoring
Critical Skills
Test Smells, Code Smells
Envisioning an Improvement
Incremental Improvement through Refactorings
Removing Smells with Refactorings
Refactoring Tests Overview
Test Smells
Duplication in tests
Exercise
Legacy Code Overview
Boy Scout Rule
Legacy Code Test Addition Strategy
Wrap up Discussion