Advanced C for Real-time Systems

מק"ט: #4396 | משך קורס: 24 שעות אק'

C is an extremely rich yet concise programming language that is suitable for complex software developments. However, good C coding style and an in-depth knowledge of the language is vital to ensure software quality. Even after considerable C programming experience, there can be areas of the language that are not well understood, and Advanced C will help you to address these gaps. Far from standing still, the C language has steadily developed, and practitioners may have missed these changes. This C course is designed for the practicing software developer and allows you to gain a better understanding of the language, run-time library and software engineering techniques available with C.

הקורס פעיל לקבוצות מטעם ארגונים בלבד, ניתן לשלוח פנייה רק אם מדובר בקבוצה
*שדות חובה
PDF version

מטרות


Better understand the C programming language pros and cons and how to use it effectively in a time critical application.
 

קהל יעד

 

Software and hardware engineers that use C as a primary language and want to learn how to get the most of it

תנאי קדם

  • Basic C knowledge

נושאים

 

Software Tools

 

  • Compilation basics - how does a compiler work?

  • Compile optimizations

  • Attributes – explain some common attributes

  • Linker basics – how does a linker work?

  • Map file for linker

  • Makefile  

 

The Preprocessor

 

  • Predefined symbols

  • Conditional compilation

  • Advanced directives

  • Digraphs and Trigraphs

  • Variadic Macros (C99);

 

Understanding Complex Declarations

 

  • Reading and writing declarations

  • Using typedefs effectively

  • Using casts

 

Advanced Pointers

 

  • Using void pointers

  • Defining and using function pointers

  • Restricted pointers (C99);

  • Pointer to function

 

Advanced Array Handling

 

  • Arrays and functions

  • Multidimensional arrays

  • Pointers and arrays

  • C99 Variable

  • Length Arrays

 

Advanced Structure Issues

 

  • Initializing Structures

  • C99 changes

  • Bitfields

  • Packing and padding

  • Reading and writing to files

 

Dynamic Memory Allocation

 

  • Memory allocation

  • Allocating arrays

  • Allocating structures

  • Error-detection techniques

  • Stack usage, frame pointers.

  • Volatile/non-volatile variables/pointers

 

Common Pitfalls

 

  • Common coding errors

  • Tips and tricks      

 

C and Assembly

 

  • Calling Assembly from C

  • Inline Assembly

  • Browsing Disassembly

  • Best practices    

תגיות