C Programming for Embedded Systems, part III

Day(s): 2
Dates/City:

Contact us

Price:

10.000 SEK

This training course is the most advanced in our series of C-programming courses.

We will take a good look at the complex parts of the C language so important when developing for embedded systems, such as function pointers, unions and bit fields.

The main part of the training is focused on the problems occurring when dealing with embedded systems programming., such as high performance, synchronizing and memory requirements.

We will also teach you methods for developing good maintainable and testable code.

Goal

What we aim for with this training course is to give you the necessary deeper knowledge in C programming that you need.

You will be taught valuable tricks and ways to make time saving constructions in you development process.

Participants

This training course is designed to suit developers and programmers of embedded systems with some experience in programming, who wishes to deepen their C programming knowledge, for those who wishes to get new fresh views on the subject, and get practical ideas to be used in their own company.

Previous knowledge

You need to have good knowledge in C programming, corresponding to our courses "C programming for embedded systems, part I" and "C programming for embedded systems, part II" as well as a certain degree of practical experience.

Practical exercises / Tools

This course has many exercises following up the items brought up on the theory part of the training.

We use a windows based integrated environment consisting of editor, C-compiler and linker from IAR (Embedded Workbench for ARM).

The Programs are downloaded and run in an ARM7TDMI-based target from Atmel (AT91EB42). For debugging we use the In-Circuit Debugger from Lauterbach (Lauterbach Trace32-ICD).

Contact

Lena Bernhardsson

phone: +46 (0) 40 59 22 09
phone: +47 (0) 92 44 22 09 (no)
lena.bernhardsson@nohau.se

Content

Advanced C constructions

  • More about pointers and function pointers
  • Structures, unions and bit fields
  • Memory requirement – static and dynamic
  • Inline assembler

Performances in C

  • How do I write optimal code (which require little maintenance)

Objectoriented C

  • How do you simulate C++ in C?

Generally

  • Encapsulation of HW – writing code for several target environments
  • Start-up codes and programs loading
  • Synchronising problems
  • Interrupt handling
  • Semaphores and monitors
  • Re-entrancy
  • Shared data

Advanced debugging and maintenance

  • Writing code possible to test
  • Logging
  • Built-in test
  • Hot-swap; to write programs for on-line-update
 
Share |