Newsflash

title-1
Note

This course can be delivered as an Embedded/Native combo with target boards, or Native Only where target boards are not required.

Course Objectives

The aim of this course is to provide a basic overview of debugging/tracing/profiling facillitites available with (embedded) GNU/Linux. Hands-on exercises provide you with the necessary practical experience to go ahead and choose the right tool for your debugging needs.

Description

This 2-day or 3-day training class uses hands-on exercises combined with instruction to illustrate some basic concepts of debugging/tracing/profiling Embedded GNU/Linux. Hands on sessions are performed with the freely available ELDK, which is derived from Yocto, on a Beagle-XM Rev.C and/or native on Ubuntu. The whole workshop is designed to bring you quickly up to speed. The concepts and commands necessary to make effective use of Embedded GNU/Linux's debugging/tracing/profiling facilties are described through a combination of theory and on-the-job training. Don’t reinvent the wheel, but learn from an experienced trainer and take home a working knowledge of Embedded GNU/Linux debugging and the ability to use it effectively in your own embedded development project.

Prerequisites

  • Basic knowledge of how to use Linux (Ubuntu)
  • Familiarity with embedded C concepts and programming
  • Ability to develop software using C syntax
  • Basic knowledge of embedded processor development boards
  • ... or no fear to learn the aboveand programming

Who should attend?

Project managers, software, hardware, development and systems engineers, technicians and those interested in technology who want to try get a broad overview about numerous debugging/tracing/profiling facilites available with Embedded GNU/Linux.

Course Outline

SIMPLE debugging

  • errno, shell debug, lsof, netstat, procfs, sysfs, debugfs
  • syslog, ltrace, strace
  • ldd, strings, nm, objdump, addr2line
  • mem_munch
  • split, sparse
  • magic-sysrq-key
  • sysctl

Gdb and friends

  • gdb, gdbserver, threads, core_dump, null_ptr, crash

TOP and friends

  • latencytop, powertop, powerdebug, iotop, atop

Profiling/tracing

  • time, gcov, gropf, oprofile
  • systemtap, perf, ftrace, LTTng
  • valgrind, cachegrind, helgrind
  • mutrace

Fur further information how the trainings can be delivered please check our training delivery overview. For more Embedded Trainings check our embedded training overview and feel free to contact us for further inquiries.

Inquiry

All fields with an asterisk (*) are required.

From *) 
Subject *) 
I am interested in   Embedded GNU/Linux Systems Architecture  
one or more   Embedded GNU/Linux Kernel Internals and Device Drivers  
of these items   The Yocto Project - An Overview  
   Introduction to Embedded Linux in Theory and Practice - a Crash Course  
   (Embedded) Linux Debugging  
   FreeRTOS in Theory and Practice  
   Custom Training  
   FlexNgage+Training  
Delivery Options   on-site  
   on-line  
   public  
Number of trainees *) 
Name *) 
Website *) 
Timezone *) 
Street Address 
Address Line 2 
City 
Postal / Zip Code 
State / Province / Region 
Country / Region 
Questions or comments? 
Please enter the following khmubjsi Help us prevent SPAM!
    

title-1

Course Objectives

To provide an understanding of the essentials of embedded GNU/Linux, how the bits and pieces fit together. What components are needed to build an embedded GNU/Linux system, where to get them from and how to configure/build/install them? Where to get help from? What about those software licenses? Hands-on exercises provide you with the necessary practical experience to go ahead and develop your own embedded GNU/Linux systems after completing this training successfully.

Description

This five day training class uses hands-on exercises combined with instruction to illustrate the concepts of embedded GNU/Linux. It is designed to bring you quickly up to speed. The philosophy, concepts and commands necessary to make effective use of GNU/Linux are described through a combination of theory and on-the-job training. Don’t reinvent the wheel, but learn from an experienced trainer and take home a working knowledge of GNU/Linux and the ability to use it effectively in your own embedded development project.

Prerequisites

  • 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 nor fear to learn the above… 

Who should attend?

Managers, project managers, software-, hardware-, development-, systems engineers, testers, administrators, technicians and other parties interested in the technology, who want to understand as quickly as possible how Embedded GNU/Linux works. You must use GNU/Linux or you have to luxury to decide whether it makes sense to use it or not. Maybe you already tried to use Embedded GNU/Linux, but are not quite sure that you did everything the right way. You currently use a different operating system and wand to figure out whether GNU/Linux might better and/or cheaper.

Delivery Options

All the training material is English, but the presentation of it can be in English or in German, as you wish, worldwide.

  • on-site - instructor driven*) 
  • on-line - instructor driven**) 
  • on-site/on-line combination - instructor driven*)**) 

During the training we’ll provide laptops*), boards*)**), workbooks (in English)*)**), remote access to servers and boards**), screen-sharing**), audio-bridge**).

Check out our training delivery options to see how we can present/customise our material to your specific needs. Feel free to contact us for further inquiries.

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 a SW release?

MISC

  • getopt
  • endianess
  • cheat-sheets

Inquiry

All fields with an asterisk (*) are required.

From *) 
Subject *) 
I am interested in   Embedded GNU/Linux Systems Architecture  
one or more   Embedded GNU/Linux Kernel Internals and Device Drivers  
of these items   The Yocto Project - An Overview  
   Introduction to Embedded Linux in Theory and Practice - a Crash Course  
   (Embedded) Linux Debugging  
   FreeRTOS in Theory and Practice  
   Custom Training  
   FlexNgage+Training  
Delivery Options   on-site  
   on-line  
   public  
Number of trainees *) 
Name *) 
Website *) 
Timezone *) 
Street Address 
Address Line 2 
City 
Postal / Zip Code 
State / Province / Region 
Country / Region 
Questions or comments? 
Please enter the following zffzpdqs Help us prevent SPAM!
    

title-1

Description

This 5-day training class uses hands-on exercises combined with instruction to illustrate the concepts of GNU/Linux kernel internals and device driver development. It is desinged to bring you quickly up to speed. We describe processes, concepts and commands necessary to write GNU/Linux device drivers through a combination of theory and on-the-job training. Don’t reinvent the wheel, but learn from an experienced trainer and take home a working knowledge and the ability to use it effectively in your own embedded development project.

Prerequisites

  • Basic familiarity with using a GNU/Linux system as an end user
  • Basic familiarity with a command line shell
  • Basic knowledge of user space / application development
  • Intermediate C programming knowledge
  • Should have attended Embedded GNU/Linux Systems Architecture before (strongly recommended!) and/or have a good understanding of the topics outlined there

Who should attend?

People with interest in or tasked with the development or evaluation of developing GNU/Linux device drivers like software engineers, field engineers, (project) managers, hardware engineers.

Course Outline

Introduction

  • quick history of GNU/Linux
  • licensing
  • kernel versioning
  • release cycle
  • kernel trees
  • mainline
  • kernel vs. user space
  • mechanism vs. policy
  • kernel driver alternatives
  • RTOS vs. Linux

Memory Management

  • Virtual memory vs. physical memory
  • memory allocation in kernel
  • pages
  • zones
  • API
  • slab

Kernel Patch

  • life cycle
  • git
  • kernel source
  • create patch
  • check patch
  • fix patch
  • ship patch
  • audited code

Kernel Modules

  • get kernel sources
  • configure/build/install
  • device drivers (statically linked, loaded at runtime)
  • init/exit
  • licensing
  • EXPORT SYMBOL GPL
  • out of tree makefile
  • module-init-tools
  • module in kernel tree
  • Kconfig
  • parameter passing
  • sparse

Char Drivers

  • architecture
  • user/kernel interface
  • I/O subsystem
  • VFS
  • sysfs (devices, bus, drivers, classes),
  • kobject/ktype/kset
  • linux kernel driver model
  • device files
  • char driver
    • initialization
    • registration
    • open, release
    • cdev, cdev add, cdev del,...
    • major/minor numbers
    • udev, udevmonitor, udevadm

Advanced Charachter Driver Operations

  • ioctl
  • unlocked ioctl
  • compat ioctl
  • user space API
  • kernel space API
  • process lifecycle
  • sleeping/blocking
  • sleeping/waking up
  • wait queue
  • thundering herd
  • poll/select

Kernel Debugging

  • bug
  • debugging
  • debugging the kernel
    • binary search with git
    • debug support from kernel
    • printk syslogd, klogd, loglevels, rate limit, debug levels, debug selective subsystems
    • debugging by querying debugfs
    • oops debugging, asserting oops
    • Magic SysRq Key
    • kgdb/kdb
    • JTAG

Tracing

  • gcov
  • lcov
  • oprofile
  • ftrace
    • nop tracer
    • function tracer
    • sched switch tracer
    • function graph tracer
    • dynamic tracer
  • trace-cmd/kernelshark
  • perf
  • LTTng

Interrupts

  • interrupts vs. polling
  • interrupt
  • program sections
  • reentrancy
  • events
  • interrupt handler
  • shared interrupt handler
  • interrupt flow
  • interrupt control

Deferring Work

  • top/bottom halves
  • softirqs
  • tasklets
  • work queues
  • threaded interrrupts

Concurrency

  • critical region/section
  • atomic
  • race condition
  • synchronization
  • locking
  • locking solutions
  • deadlock
  • contention
  • what to lock?
  • what can be used?
    • atomic operations
    • spin locks
    • reader-writer spin locks
    • semaphore
    • binary semaphore
    • mutex
    • reader-writer semaphore
    • completion variables
    • sequential locks
    • disable preemption
    • orderig and barriers

Time

  • HZ
  • Jiffies
  • big/small delays
  • kernel timers

Hardware I/O

  • I/O Ports
  • I/O Memory
  • How to deal with side effects accessing registers?

User-Kernel Communication

  • put(get)_user()
  • copy to(from)_user()
  • Kernel I/O
  • memory mapping
  • procfs
  • sysfs
  • debugfs
  • relayfs
  • netlink
  • ioctl

Portability

  • word size
  • opaque types
  • signed/unsigned char
  • data alignment
  • integral promotion
  • code reuse
  • endianess
  • system tick
  • page size
  • instruction ordering
  • SMP/preemption/high memory

Inquiry

All fields with an asterisk (*) are required.

From *) 
Subject *) 
I am interested in   Embedded GNU/Linux Systems Architecture  
one or more   Embedded GNU/Linux Kernel Internals and Device Drivers  
of these items   The Yocto Project - An Overview  
   Introduction to Embedded Linux in Theory and Practice - a Crash Course  
   (Embedded) Linux Debugging  
   FreeRTOS in Theory and Practice  
   Custom Training  
   FlexNgage+Training  
Delivery Options   on-site  
   on-line  
   public  
Number of trainees *) 
Name *) 
Website *) 
Timezone *) 
Street Address 
Address Line 2 
City 
Postal / Zip Code 
State / Province / Region 
Country / Region 
Questions or comments? 
Please enter the following qzilrxir Help us prevent SPAM!
    

title-1

Course Objectives

The aim of this crash course is to provide a basic overview of embedded GNU/Linux. What are the components needed to build an embedded GNU/Linux system where to get them from and how to configure/build/install them? Where to get help from? What about licenses? Hands-on exercises provide you with the necessary practical experience to go ahead and configure/build an embedded GNU/Linux system with mainline components.

Description

This 3-day training class uses hands-on exercises combined with instruction to illustrate some basic concepts of Embedded GNU/Linux. Hands on sessions are performed with Yocto, on a Beagle-Bone Black Rev.C. The whole workshop is designed to bring you quickly up to speed. The concepts and commands necessary to make effective use of Embedded GNU/Linux are described through a combination of theory and on-the-job training. Don’t reinvent the wheel, but learn from an experienced trainer and take home a working knowledge of Embedded GNU/Linux and the ability to use it effectively in your own embedded development project.

Prerequisites

  • Basic knowledge of how to use Linux (Ubuntu)
  • Familiarity with embedded C concepts and programming
  • Ability to develop software using C syntax
  • Basic knowledge of embedded processor development boards
  • ... or no fear to learn the aboveand programming

Who should attend?

Project managers, software, hardware, development and systems engineers, technicians and those interested in technology who want to try to understand as quickly as possible how Embedded GNU/Linux works. You have to use GNU/Linux, or have the luxury to decide whether it makes sense to use it or not. You may already use Embedded GNU/Linux, but you are not quite sure if you do everything right. You currently use another operating system and want to find out whether Linux would maybe be more cost effective. . . .

Course Outline

Introduction

  • What is GNU/Linux?
  • Licensing
  • Standards
  • Working with free software
  • Spelunking
  • The Unix Philosophy
  • What is an embedded system?
  • What is a real-time operating system

Embedded Specifics

  • What’s an Embedded System?
  • Embedded vs. Desktop Linux
  • Portability
  • Build for your Target
  • Toolchains
  • C-libraries

Eval board

  • What is the Beagle?
  • Booting
  • Booting the Beagle
  • Partition/Format SD card
  • Populate partitions with given boot-loader, kernel, rootfs
  • Configure serial console
  • Board booting Linux 

Stuff needed

  • Install toolchain
  • U-boot
    • What is U-boot?
    • What does it do?
    • Fancy Stuff
    • Get/configure/build install
  • Flat device tree
    • What is a flat device tree?
  • Linux kernel
    • What is uImage?
    • Get/configure/build install
    • Kernel modules
  • Rootfs
    • Use rootfs from Yocto

Customizations

  • Add network support to board
    • U-boot scripting
    • Network support in U-boot
    • Custom kernel with network support
  • Rootfs from nfs
    • Nfs server setup/configuration
  • Init
    • Sys-V
    • Upstart
    • Initng
    • Systemd
  • Bootgraph
  • Bootchart

Kernel Modules

  • Hello Kernel, module-init-tools, Kconfig, Kbuild
  • out of tree, in tree

Device Drivers

  • Device Nodes
  • Registration, Initialization, Open, Release,...
  • Miscellaneous Character Drivers

Debugging/Profiling/Tracing

  • What is a bug?
  • What is debugging?
  • Simple debugging tools
    • lsof, ltrace, strace, proc, top, netstat, syslog
  • Advanced debugging tools
    • What’s a debugger?
    • gdb
      • target gdb
      • gdbserver
      • kgdb/kdb + agent-proxy
      • JTAG
  • What is profiling?
  • What is tracing?
  • Profiling tools
    • time, gprof, gcov, oprofile
  • Tracing tools
    • ftrace, kernelshark, LTTng
  • Misc. tools
    • top, latencytop, powertop, powerdebug, crash, systemtap

Inquiry

All fields with an asterisk (*) are required.

From *) 
Subject *) 
I am interested in   Embedded GNU/Linux Systems Architecture  
one or more   Embedded GNU/Linux Kernel Internals and Device Drivers  
of these items   The Yocto Project - An Overview  
   Introduction to Embedded Linux in Theory and Practice - a Crash Course  
   (Embedded) Linux Debugging  
   FreeRTOS in Theory and Practice  
   Custom Training  
   FlexNgage+Training  
Delivery Options   on-site  
   on-line  
   public  
Number of trainees *) 
Name *) 
Website *) 
Timezone *) 
Street Address 
Address Line 2 
City 
Postal / Zip Code 
State / Province / Region 
Country / Region 
Questions or comments? 
Please enter the following tqbbzcwu Help us prevent SPAM!
    

COURSE OBJECTIVES

To provide a practical knowledge and understanding of real-time kernel usage. What are the advantages? What are the trade-offs? Learn from an experienced trainer and take home a working knowledge of FreeRTOS and the ability to use it efectively in your own embedded development project.

Description

This 3-day training class uses hands-on exercises combined with instruction to illustrate the concepts of a real-time kernel. Examples using FreeRTOS form a series of practical coding exercises designed to bring you quickly up to speed. The concepts and commands necessary to make effective use of FreeRTOS are described through a combination of theory and ‘hands-on’ training. Learn from an experienced trainer and take home a working knowledge of FreeRTOS and the ability to use it effectively in your own embedded development project.

Prerequisites

  • Familiarity with embedded C concepts and programming
  • Ability to develop software using C syntax
  • Ability to use basic embedded compiler and debug tools
  • Basic knowledge of embedded processor development boards

Who should attend?

People with interest in or tasked with development of a resource constrained real-time system. For example - software engineers, field engineers, (project) managers.

Course Outline

  • Introduction

    • FreeRTOS overview, market position, the "free" in FreeRTOS, understanding the FreeRTOS license, software architecture, features.
    • LPCXpresso IDE download and installation, importing an example workspace.
  • Task Management

    • Tasks - Creation, states, priorities, the idle task, deletion.
    • Scheduling - Determinism, multitasking, endless loop, cyclic executives, issues with interrupts, non-preemptive, prioritized preemptive, rate monotonic, deadline, cooperative, hybrid.
  • Queue Management

    • Creation, sending, receiving
  • Interrupt Management

    • Deferred interrupt processing, interrupt handlers, interrupt safe functions, task with interrupt synchronization, efficient queue usage even from within an interrupt, interrupt nesting.
  • Resource Management

    • Mutual exclusion, critical sections, suspending/locking the scheduler, mutexes, priority inversion, priority inheritance, deadlock, gatekeeper tasks.
  • Memory Management

    • Resource constrained memory allocation schemes, determining the amount of free memory remaining.
  • Trouble Shooting

    • avoiding bugs and how to find those you did not avoid
  • FreeRTOS-MPU

    • User vs. privileged mode, access permissions, defining MPU regions, linker configuration, practical usage tips.
  • The FreeRTOS Download

    • Files and directories, demo apps, data types and coding style.

A customized version of this training like FreeRTOS on LPCXPresso 1769 is offered by FreeRTOS.

 

Inquiry

All fields with an asterisk (*) are required.

From *) 
Subject *) 
I am interested in   Embedded GNU/Linux Systems Architecture  
one or more   Embedded GNU/Linux Kernel Internals and Device Drivers  
of these items   The Yocto Project - An Overview  
   Introduction to Embedded Linux in Theory and Practice - a Crash Course  
   (Embedded) Linux Debugging  
   FreeRTOS in Theory and Practice  
   Custom Training  
   FlexNgage+Training  
Delivery Options   on-site  
   on-line  
   public  
Number of trainees *) 
Name *) 
Website *) 
Timezone *) 
Street Address 
Address Line 2 
City 
Postal / Zip Code 
State / Province / Region 
Country / Region 
Questions or comments? 
Please enter the following oiloyaif Help us prevent SPAM!
    

COURSE OBJECTIVES

To provide an understanding of the essentials of a real-time operating system. What are the advantages? What are the trade offs? Hands-on exercises provide you with the necessary practical experience to go ahead and use a real-time operating system with your own embedded system after successfully completing this training.  

SHORT COURSE INFO


Duration:

Three days


Format:

Delivered over the phone or Skype with instructor screen sharing - http://www.yuuguu.com


Language:

English - trainer has fluent German (as a first language)


Dates:   

On Demand


Time:      

TBD


Location:

At your office


Materials:

Handouts (book)

LPC1769 LPCXPresso Board by Embedded Artists or FreeRTOS NXP LPC1769 LPCXpresso Education-Evaluation Kit

USB Cable

Examples and solutions


Recording:

We do not permit recording and/or reuse of our coyrighted material


Concerning the registration please note, that for on-line trainings we don’t need to fill up a class room in order to cover our expenses for the room and the trip. We just need your written confirmation for the training to happen. It’s given to you as a private session if no other students sign up. In case you want to train multiple members of your team you might also want to query for an on-site training. Ask for multi-enrollment discounts.

Description

This 3-day training class uses hands-on exercises combined with instruction to illustrate the concepts of a real-time operating system. FreeRTOS will be used as an example. It is designed to bring you quickly up to speed. The concepts and commands necessary to make effective use of FreeRTOS are described through a combination of theory and on-the-job training. Don’t reinvent the wheel, but learn from an experienced trainer and take home a working knowledge of FreeRTOS and the ability to use it effectively in your own embedded development project.

Prerequisites

  • Basic familiarity with using a Windows system as an end user
  • Familiarity with embedded C concepts and programming
  • Ability to develop software using C syntax
  • Ability to use embedded compiler and debug tools
  • Basic knowledge of embedded processor development boards

Who should attend?

People with interest in or tasked with development of a resource constrained real-time system like software engineers, field engineers, (project) managers,…

Course Outline

Introduction

  • FreeRTOS
    • overview, market position, ”free” in FreeRTOS, free software, open source, modified GPLv2, SW architecture, features, hard/firm/soft real-time, RTOS vs. Linux,…
  • LPCXpresso
    • download, install, import example workspace
  • Download FreeRTOS

Task Management

  • tasks
    • what is a task?
    • crude loop periodic delay, task parameter, priorities, starvation,…
    • creation, states, priorities, idle task, deletion,…
    • TaskDelay, taskDelayUntil, polling vs. event driven, idle hook,…
  • scheduling
    • determinism, multitasking, endless loop, cyclic executives, issues with interrupts, non-/preemptive, prioritized preemptive, rate monotonic, deadline, cooperative, hybrid

Queue Management

  • What is a queue?
  • creation, send, receive,…
  • blocking on read/write,…
  • With multiple tasks blocking who will run first?
  • Large sets of data and queues.
  • Indirect/Direct synchronous and asynchronous message passing.

Interrupt Management

  • What is Interrupt vs. Polling?
  • Hardware-, Software-interrupts.
  • What if two interrupts arrive at the same time?
  • What is reentrant code?
  • What is an event?
  • What kind of events do you know?
  • What is a Semaphore and what can it be used for?
  • What kind of Semaphores do you know?
  • Signal/Wait pattern, state diagram, event states of binary semaphore…
  • Counting semaphores
  • Queues and ISRs
  • deferred interrupt processing, interrupt handlers, XXXFromISR(), task with interrupt synchronization, efficient queue usage even from within an interrupt, interrupt nesting…

Resource Management

  • concurrency, concurrent read/writes
  • mutual exclusion, critical sections, suspending/locking the scheduler, mutexes, priority inversion, priority inheritance, deadlock, gate-keeper tasks, mutex vs. semaphore…

Memory Management

  • memory types, fragmentation, memory exhaustion, memory allocation patterns, dynamic memory allocation in kernel
  • memory allocation schemes,
    xPortGetFreeHeapSize(),…

Trouble Shooting

  • spelunking, project planning, firmware standard, code review, binutils,…
  • debugging by stopping - FreeRTOS Simulator - State viewer,…
  • printf-stdarg.c, stack overflow and how to detect it
  • heap overflow and how to detect it
  • task statistics, run time statistics
  • profiling, tracing
  • common sources of error

FreeRTOS-MPU

  • memory management
  • user vs. privileged mode, access permission, defining MPU regions, linker, practical usage tips
  • find out why a program failed

A customized version of this training is offered by FreeRTOS.

Remember, purchasing from FreeRTOS helps support the FreeRTOS project! 

Course Objectives

The aim of this short crash course is to provide a basic overview of embedded GNU/Linux. What are the components needed to build an embedded GNU/Linux system where to get them from and how to configure/build/install them? Where to get help? What about licenses? Compared to other trainings offered here the time spend with hands-on will be limited in order to meet the one day goal. You will be provided with handouts and exercises so you can can go through them at your own pace at home in order to be able to go ahead and configure/build an embedded GNU/Linux system with mainline components. After this one day overview you might even want to book one of the more in-depth trainings which can be offered on-site and on-line as well. Feel free to ask for a quote.

Description

This one day training class uses hands-on exercises combined with instruction to illustrate some basic concepts of Embedded GNU/Linux. Hands on sessions are performed with a toolchain from the the freely available Yocto Project, on a Beagle Bone Black. This enables you to take the course material home and work with it. The whole workshop is designed to bring you quickly up to speed. The concepts and commands necessary to make effective use of Embedded GNU/Linux are described through a combination of theory and on-the-job training. Don’t reinvent the wheel, but learn from an experienced trainer and take home a working knowledge of Embedded GNU/Linux and the ability to use it effectively in your own embedded development project.

Prerequisites

  • Basic knowledge of how to use Linux (Ubuntu)
  • Familiarity with embedded C concepts and programming
  • Ability to develop software using C syntax
  • Basic knowledge of embedded processor development boards
  • ... or no fear to learn the above ...

Who should attend?

Managers, project managers, software-, hardware-, development- and systems engineers, technicians and those interested in technology who want to try to understand as quickly as possible how Embedded GNU/Linux works. You have to use GNU/Linux, or have the luxury to decide whether it makes sense to use it or not. You may already use Embedded GNU/Linux, but you are not quite sure if you do everything right. You currently use another operating system and want to find out whether Linux would maybe be more cost effective...

Course Outline

Introduction

  • What is GNU/Linux?
  • Licensing
  • Standards
  • Working with free software
  • The Unix Philosophy

Stuff needed (part 1)

  • Toolchain
  • nfs server
  • tftp server

Eval board

  • What is the Beagle?
  • Booting
  • Booting the Beagle
  • Partition/Format SD card
  • Populate partitions with given boot-loader, kernel, rootfs
  • Configure serial console
  • Board booting Linux 

Stuff needed (part 2)

  • U-boot
    • What is U-boot?
    • What does it do?
    • Fancy Stuff
    • Get/configure/build install
  • Flat device tree
    • What is a flat device tree?
  • Linux kernel
    • What is uImage?
    • Get/configure/build install
    • Kernel modules
  • Rootfs
    • Use rootfs from the Yocto Project

Kernel Modules

  • Hello Kernel, module-init-tools, Kconfig, Kbuild
  • out of tree, in tree

Device Drivers

  • Device Nodes
  • Registration, Initialization, Open, Release,...
  • Miscellaneous Character Drivers

Debugging/Profiling/Tracing

  • Simple debugging tools
    • lsof, ltrace, strace, proc, top, netstat, syslog
  • Advanced debugging tools
    • What’s a debugger?
    • gdb
      • target gdb
      • gdbserver
      • kgdb/kdb + agent-proxy
      • JTAG
  • What is profiling?
  • What is tracing?
  • Profiling tools
    • time, gprof, gcov, oprofile
  • Tracing tools
    • ftrace, kernelshark, LTTng
  • Misc. tools
    • top, latencytop, powertop, powerdebug, crash, systemtap
Page 1 of 2