Course Outline

Introduction

  • History of Unix/Linux
  • Free Software
  • Unix Philosophy

HOST PLAYGROUND

  • Play with GNU/Linux
    • architecture
    • shell
    • permissions
    • FHS (file hierarchy standard)
    • hard/soft links
    • real/effective uid/gid
    • scheduler
    • process/task/thread
    • IPC simple/advanced
      • pipes
      • signals
      • message queues
      • semaphores
      • shared memory
      • sockets
      • select/poll
    • IPC techniques to avoid
  • Host Linux setup
    • Yocto/ELDK (cross/target tools, libraries, packages)
    • Terminal Emulation
    • Servers (DHCP, tftp, NFS)

TARGET PLAYGROUND

  • files needed to run something on board
    • JTAG/BDI config
    • u-boot (checkout, config, build)
    • kernel (checkout, config, build)
    • rootfs
    • flat device tree
  • build/execute what's applicable from above on the target board
  • various rootfs
    • CRAMFS
    • ramdisk
    • MTD
    • JFFS2
    • roEXT2
    • ubi
  • build/execute what's applicable from above on the target board
  • comparison of root file systems
  • debugging
    • simple tools
    • local/remote
    • user/kernel
    • gdb
    • gdbserver
    • JTAG/BDI (optional)
  • profiling
    • gprof
    • gcov
    • oprofile

REAL-TIME

  • prerequisites
    • interrupts
    • reentrant code
  • real-time Linux
    • explicit/implicit preemption points
    • real-time preemption patch
    • fully preemptive kernel
    • hard real-time extensions
  • Adeos/Xenomai
    • adeos patch
    • xenomai
    • patch/config/build kernel
    • run it on board

SW RELEASE

  • administration
  • development
  • how to reproduce an SW release?

MISC

  • getopt
  • endianess
  • cheat-sheets

Except where otherwise noted content on this course outline is licensed under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

Requirements

  • Basic familiarity with using a GNU/Linux system (e.g. Ubuntu) as an end user in user space 
  • Basic familiarity with a command line shell 
  • Basic knowledge of user space/application development with GNU/Linux 
  • Basic knowledge concerning embedded processors and development boards 
  • Basic C programming knowledge 
  • …and/or or fear to learn the above… 
 35 Hours

Number of participants



Price per participant

Testimonials (1)

Related Courses

Introduction to Enterprise Architect

7 Hours

Systems Modeling with SysML and Enterprise Architect (EA)

21 Hours

UML in Enterprise Architect (workshops)

21 Hours

Use Case Modeling

14 Hours

Introduction to Domain Driven Design

14 Hours

Introduction to ARCADIA with Capella

7 Hours

OCSMP Model Builder - Fundamentals prep

21 Hours

SysML by example

21 Hours

Buildroot: a Firmware Generator for Embedded Systems

7 Hours

LEDE: Set Up a Linux Wireless Router

7 Hours

Shadowsocks: Set Up a Proxy Server

7 Hours

Yocto Project

28 Hours

Advanced Flutter

14 Hours

BLoC Pattern

14 Hours

Related Categories