קורסים מקצועיים למתקדמים

פיתוח תוכנה

Programming Embedded Linux

מספר הקורס 91100

חשכ"ל
למה ללמוד בג'ון ברייס?
  • חטיבת ההדרכה של מטריקס, חברת שירותי הטכנולוגיה הגדולה והמובילה בישראל
  • המבחן של המדינה קבע: ג’ון ברייס היא המכללה שמשלבת הכי הרבה בוגרים בעולם ההייטק
  • מובילים את תחום ההכשרות לעולם ההייטק והטכנולוגיה כבר 30 שנה, עם עשרות אלפי בוגרים בתעשיה
  • מרכז הדרכה רשמי של החברות הבינלאומיות המובילות: Microsoft, Google, AWS, SAP, Cisco ועוד

המועדים הקרובים

קורס לקבוצות

הקורס נפתח במתכונת של קבוצה בלבד, בהתאמה אישית לארגונים.
לפרטים נוספים: Muzman@johnbryce.co.il

משך הקורס

שעות אקדמיות:

40

מספר מפגשים:

קורס בוקר:

5

מתכונת הקורס

הקורסים המוזמנים לארגונים מותאמים באופן אישי ומלא לצרכי הארגון, מערכי הלימוד גמישים וניתן לשלב בהם תכנים רלוונטיים וייעודיים.

Overview

This course provides embedded systems developers, making their first steps with Linux as an embedded system platform, with the skills required for being a productive programmer in that environment. The curriculum includes building applications and device drivers with real time constraints, understanding the inner working of the Linux system and its effects the system behavior.

The course is suitable for people planning to develop for embedded Linux platforms from any source, including “home made” Linux distributions or embedded Linux system vendors

On Completion, Delegates will be able to

Create applications and device drivers for Embedded Linux environments, or to import such applications from systems using legacy RTOSes.

Who Should Attend

Seasoned embedded systems developers wishing to become competent Linux Embedded systems developers.

תכנית הלימודים

Course Contents

  • What is Linux
  • Layers in a Linux system
  • Linux vs. Legacy RTOS
  • Files and file system
  • The shell
  • Basic commands
  • Processes
  • Setting up networking
  • Make files and the build environment
  • Processes and threads
  • Real time priorities
  • Synchronization and IPC (mutex, condition variables, mailboxes, pipes, shared memory, Unix domain sockets and signals)
  • Timers
  • Memory mapping and locking
  • Debugging applications: in process and using remote debugger
  • Labs – using pipes, debugging
  • Kernel overview
  • History
  • Versions
  • Source code layout
  • Good practices
  • System call interface
  • A simple kernel module structure
  • Implicit steps of compiling modules in Linux kernel version 2.6
  • Using shell commands to manipulate modules
  • The kernel logs
  • Using the printk function
  • Passing parameters to the module
  • Memory areas
  • Memory page frames
  • Requesting and releasing page frames
  • Allocating contiguous virtual memory area
  • The slab and slob allocators
  • Memory caches and allocations
  • Managing slabs
  • Creating and destroying caches
  • User space memory access
  • The VFS structure
  • Initialization and termination
  • Opening the device file
  • IOCTL
  • Implementing base operations
  • Kernel configuration for debugging
  • printk
  • KGDB
  • Oops messages
  • Locking requirements
  • Preemption
  • Atomic bit operations
  • Interrupt disabling
  • Spin lock
  • Semaphores
  • Process and thread
  • Scheduling policies
  • Priorities
  • Kernel tasks
  • task_struct structure
  • SMP scheduling
  • Hardware interrupt handling basics
  • Interrupt handler and control
  • Low level handling
  • Wait queues technique
  • Threaded interrupts
  • Differing work
  • Using software interrupts
  • Tasklets
  • Timers & RTC
  • Work queues
  • The layer model
  • Registration and un-registration
  • Socket buffers, allocations and manipulations
  • Network headers
  • Packet reception
  • Packet transmission
  • NAPI
Prerequisites

Delegates should have a working knowledge with C programming language and basic knowledge with embedded systems

Schedule Appointment

Fill out the form below, and we will be in touch shortly.

לא הצלחנו לאתר את הטופס.

בודק...