| Embedded Trainings Overview |
OverviewWith vast experience in Embedded Systems and as a speaker at the Embedded World Conference we offer the following trainings. Please refer to our guide about trainings to see how we can present/customise them for your specific needs. Please check out our training workshop overview and contact us for further inquiries.
(More) Busting Bugs from Birth to Death of an Embedded System running an RTOSSave time, money and nerves by using the right "down to the earth debugging philosophy" depending on the problem you want to tackle while running your application on top of an RTOS and even before that. As much as you wish it to be otherwise, it's a fact, that most non trivial programs contain bugs. The growing complexity of embedded systems is making them buggy, and the later in the development phases bugs are detected the more costly it gets to eliminate them. We will start our journey with an introduction to real-time operating systems which contains, among other things, an explanation of the memory model utilized by C compilers, inter process communication mechanisms and the notion of processes/threads. After we reach a common understanding of these key concepts we'll enumerate typical development phases of an embedded system and discuss what can be done in each of them in order to deal with bugs starting from requirements gathering to after sales support. We'll highlight various methods and tools to fight bugs, when and how they can be applied, and will end the presentation by exploring the art of debugging dynamic systems. The mantra is simple: "It's cheaper to avoid bugs than to debug systems!"
Embedded Software Engineering as a Function of TimeHere we are not going to discuss how to optimize the system with respect to time, but how to use time effectively e.g. when writing software for embedded systems. We engineers usually lack soft skills like time management, which brings our work and life out of balance. But even if you are a hardcore techie and clearly value work over social life I can show you that performance and results are suffering from the fact that "the factor time" is usually neglected. When we are "in the flow" time is passing quickly, while when we are waiting for the latest hardware version it seems to take ages. In any case we never have enough time to do all we wanted to (remember your last missed deadline?). We never have enough time for proper designs and reviews. What is it that we value more than this? But why? How to meet the time to market challenges and lead on top of it a balanced life? When to use Agile and when to use "classical" methods? Those are the key questions we will ask in this presentation.
Real-time operating systemsDown to the earth introduction to real-time operating systems. The standard presentation uses FreeRTOS as an example, so you can get the book and study yourself the intrinsic details to deepen you knowledge. Among other things we explain different kinds of schedulers, what are processes, tasks, threads, interprocess communication mechanisms, difference between semaphores and mutexes, deadlocks and priority inversions and how to avoid them and rate monotonic scheduling analysis. Although the general ideas presented in the ucos-ii book are universal this training can be customized to your preferred real-time operating system.
C programming for embedded software engineersThis course is targeted at hardware and/or software people with little or no exposure to C (exposure to Java is considered harmful) who need a jumpstart to programming in C. Presentations of numbers and C, basic data types, how does a C compiler work, optimization and why to avoid it, memory organization, stack, heap, storage classes, scope rules, integral promotion, bitwise operations, pointers, call by value, call by reference, function pointers, reentrant code are some of the topics covered. We can customize the training specifically to your build environment and target platform.
Introduction to Embedded LinuxAre you switching to Embedded Linux and overwhelmed by all those new things? You need to build your own toolchain, libraries, kernel and root file system? How to you load the stuff on your embedded system? How are your developers going to deal with this? Do you need to have a couple of developers to handle the operating system business now for you who can not fully concentrate on your core business? Let us try to give you the full picture and show you ways we managed to cope with it. Embedded GNU/Linux System ArchitectureDescriptionThis 5-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. We describe the philosophy, concepts and commands necessary to make effective use of GNU/Linux through a combination of theory and on-the-job training. Don't reinvent the wheel, but learn from our experience 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 as an end user Who should attend?Those who are interested in or tasked with developing embedded GNU/Linux like software engineers, field engineers, (project) managers. COURSE OUTLINEIntroductionHistory of Unix/Linux, Free Software, Unix Philosophy HOST PLAYGROUND - Play with Linux TARGET PLAYGROUND - files needed to run something on board CRAMFS, ramdisk, MTD, JFFS2, roEXT2, comparison -debugging REAL-TIME-prerequisites SW RELEASEadministration, development, how to reproduce a SW release? MISCgetopt, endianess, cheat-sheets
|