Small Micro Controller Embedded Systems Programming Curriculum

These courses are scheduled on demand.


Click on the links below for HTML versions of the full course outllines
Crs Title Days Outline
SMC101 Introduction to Assembly Language Programming 5 HTML
SMC102 Intermediate to Advanced Assembly Language Programming 5 HTML
SMC103 Introduction to C Programming for Embedded Systems 5 HTML
SMC104 Advanced C Programming for Embedded Systems 5 HTML

Meeting the need for Specialist Training

The use of real-time software running in embedded devices is becoming more and more pervasive in our society. However, the number of experienced engineers in this area is limited, and there is substantial demand for suitably trained staff. FTT specialises in real-time and embedded systems and has provided training to organisations from all over the world, including companies such as NEC, Motorola, Marconi, Ericsson and Nortel. Courses are taught either on-site or at our offices in Carshalton, and class sizes are always kept small.

Written and taught by instructors who have practical real time and embedded systems programming experience, our Small Microcontroller Embedded Systems Programming Courses are oriented towards 8 bit and 16 bit Microcontrollers. You download and run your programs on real microcontrollers, to interact with real hardware in real time. Hands-on work is carried out using PC-based cross development tools and target hardware based on Microchip PIC 16, PIC 18 and PIC 24 Microcontrollers. However, the core concepts are generic and can be readily applied to other 8 and 16 bit processor architectures.

Course summaries

SMC101: Introduction to Assembly Language Programming (5 days)

The course discusses basic 8-bit and 16-bit microcontroller architectures and their instrucion sets. You'll learn assembly language programming techniques using variables, arrays and data structures, together with the basic structured programming techniques of sequence, choice and iteration and how they can be realised in assembly language.

SMC102: Intermediate to Advanced Assembly Language Programming (5 days)

The course teaches techniques needed to develop substantial assembly language programs (as found, for example, in operating system kernel code, metering and measuring equipment, smart sensor systems, motor and engine controllers, byte code interpreters, device drivers and interrupt handlers). You'll learn how to use linkers, employ macro programming techniques, realise state machine and statechart designs in assembler, implement circular buffers, and create data structures in assembler. In addition you'll learn how to program various on-chip peripherals such as USARTS and A/D converters.

SMC103: Introduction to C Programming for Embedded Systems (5days)

The course discusses C programming in the context of implementing C applications for 8 bit and 16 bit micro-controllers. As well as learning standard ANSI C, you'll learn how to use pragmas and extensions found with embedded C compilers targeted at specific microcontrollers. Techniques for mixed C and Assembler programming are also covered.

SMC104: Advanced C Programming for Embedded Systems (5days)

In this course you'll learn advanced programming techniques using dynamic data structures and algorithms. Finite state machines and statecharts and their uses are covered in depth. You'll also learn techniques specific to embedded systems, such as structured interrupt handling, implementation of simple schedulers, and how to work with embedded operating systems. You'll learn the standard inter-process communication mechanisms and their uses. In addition the course overviews various advanced algorithms and discusses research oriented approaches for learning more about these algorithms and their implementation. Last but not least, the course will show you how to design modules with clean interfaces to achieve disciplined and well structured code.