Saturday 14 December 2019

Developing & Delivering KnowHow

Home > Events > Embedded KnowHow Workshops
EKHWS

5 good reasons not to miss this opportunity...

1. A full day of Doulos training for just £99+vat (valued at £850!)
2. A choice of 4 streams in key subject areas
3. Live interactive presentations with Doulos expert trainers
4. Valuable take-away resources you can use in your working environment
5. Network with industry organisations and professionals


Sponsors

Choose a Stream of Training

Stream 1: Deep Learning

Stream 2: Moving to Embedded C++

Morning:

Python
Machine Learning vs Deep Learning

Afternoon:

Training & Deployment
Pretrained models & transfer learning

View full details below

Morning:

Language feature comparison
Basics of Object Oriented design

Afternoon:

Language features for optimization
Standard libraries and pre-written code

View full details below

Sponsored by:
Xilinx
Sponsored by:
Renesas

Stream 3: Embedded Security

Stream 4: Embedded Linux

Morning:

Common Attacks
and Mitigations

Afternoon:

Coding Standards & Defensive Programming
Secure Software Development Lifecycle

View full details below

Morning:

Anatomy of an Embedded Linux System
Yocto Kick-Start

Afternoon:

Linux User / Kernel Debug
Trace & Profile

View full details below

Sponsored by:
IoTSF logo
Sponsored by:
NXP

Who should attend & Pre-requisites

This event is for embedded engineers looking for a practical introduction to these key topics.

Minimal knowledge of the topic areas will be sufficient to attend the workshops.

What will I learn?


Stream 1: Deep Learning for Electronic Engineers

Deep LearningOverview:
Deep learning is a very hot topic right now. Deep learning algorithms are proving effective in many existing applications such as object detection, object recognition, speech recognition, and text analysis. New applications and new success stories seem to emerge daily, from smart homes to autonomous vehicles, from defense systems to medical diagnosis.

Deep learning impacts engineers in several ways: the kinds of product we design, how we design those products, and how we support our customers. This workshop will help you to understand exactly what deep learning is, how deep learning differs from other approaches to machine learning, and how to go about choosing the right approach for your particular problem. This workshop will help you to cut through the fog that sometimes surrounds discussions of deep learning by taking a no-nonsense look at the technical heart of the matter: what deep learning really is and what it is good for.

This workshop will teach the technical jargon, the main concepts you need to get started, and will give you an understanding of the elements that make up current neural network architectures and what makes them successful. Topics to be covered include the distinction between machine learning and deep learning, basic machine learning algorithms for regression and classification, the training and deployment of neural network models, an overview of the ecosystem including common deep learning software libraries and frameworks, and how to get started with deep learning using standard pre-trained models and transfer learning.

This workshop will be taught in 4 X 1.5 hour sessions (with lunch provided) and will include many examples of working code that you can try for yourself after the workshop.

To gain the most from this workshop, you should have a basic knowledge of Python programming. There are many tutorials on Python programming available on the web, such as the official Python tutorial at
https://docs.python.org/3/tutorial/

Register Now
This stream is organised in partnership with Xilinx.




Stream 2: Moving to Embedded C++

 

CandCPPOverview:
As a language, C++ has been available for over 30 years, yet its popularity has lagged behind its more popular predecessor, C. Much of this lack of use is down to a perception that C++ is complex, hard to learn and generates inefficient output code. While that may have been true in the past, things have changed over the years and many programmers are realising the benefits that using C++ can bring.

This track will help guide you through the process of switching to using C++ in your future designs rather than using pure C. It will look at the differences between the languages, features and pitfalls of converting existing code. It will also give an overview of Object-Oriented Design techniques and libraries that allow for more efficient embedded systems and quicker project completion.

The following presentations will be complemented by practical hands-on exercises based around the Renesas Synergy™ Platform (Target Board and software development tools). Handouts, with copies of slides presented and a Renesas Synergy Target Board Kit will be provided to attendees*.

Please note: Attendees must already be proficient in C and a good standard of knowledge of the language will be assumed.

Presentation 1:
Comparison of C and C++, covering some of the C++ enhancements. Also including methods for mixing C++ with existing C code

Presentation 2:
Introduction to Object Oriented Design. Hiding details and protecting data from inadvertent modification

Lunch (provided)

Presentation 3:
Letting the compiler do all the work. Language features for optimising the output code for size and speed

Presentation 4:

Standard libraries and pre-written code
Free Board with this Workshop

Register NowThis stream is organised in partnership with Renesas.
* Limited stock of boards available - provided on a first come first served basis on the day.


Stream 3: Embedded Security

Common Attacks and Mitigations

Secure Embedded LogoPresentation 1:
This session introduces the most common vulnerabilities in embedded software and shows ways that you can protect your system against them. We will discuss fundamental software vulnerabilities, including security problems introduced during the design and implementation of software. This can lead to issues such as stack and heap attacks, string format attacks, integer overflow and memory management issues.

Practical:
In this exercise we will investigate how binary code is structured and also take a look at common vulnerabilities in applications written in C. We examine examples of common attacks like buffer overflow and command injection and see how to use debugging tools like GDB to analyse potential weaknesses.

Lunch (provided)

Coding Standards and  Defensive Programming

Presentation 2:
C is the most widely used programming language for embedded application. Although a powerful language, it is widely understood that this power has the downside that unsafe, insecure and unreliable code is all to easy to write. A good solution is to develop code that is compliant with an appropriate set of guidelines that help avoid the pitfalls. MISRA C and CERT C are two examples of such guidelines. In this presentation these two standards are introduced, compared and contrasted, so you have opportunity to make an informed choice for your specific project. Each of the two standards has some excellent characteristics, but every embedded project is different; one size does not fit all!

Secure Software Development Lifecycle

Presentation 3:
This session looks at the secure software security lifecycle, examining in detail how the SSDL process is structured and how the attack surface for a device can be defined. A process for modelling security threats is introduced and we can examine how to use this to define a security requirement.

Practical:
In this exercise a threat model is generated for an example embedded system (a set-top box), using the techniques described in the presentation.

Register NowThis stream is sponsored by the IoT Security Foundation and the practical labs will be supported by a Doulos CTI from embedded security consultants MathEmbedded.The labs for this session will be provided for free on a Doulos USB stick running a Virtual Linux machine. Attendees are required to provide their own laptops for this session. Full details will be provided with our joining instructions.



Stream 4: Embedded Linux

Anatomy of  an Embedded  Linux System:

TuxPresentation 1:
In this session we cover each of the components required for Linux to work on an embedded system (i.e. the Linux kernel, toolchain, bootloader, filesystem). We will review how each of these components fit into the system and what functionality they provide for development and in the final deployed product. We will review some of the choice that can be made, looking at what options there are for creating an integrated development environment for embedded Linux.

Practical 1:
In the first practical we will boot the target board and communicate with it via the serial console and the ethernet connection. We'll see how graphical applications can be used via SSH X forwarding.

Yocto Kick-Start

Presentation 2:
We explore how a minimal Linux system can be extended to include custom, packaged software. We demonstrate how standard Linux tools drop out of the build system and can be used in a stand-alone SDK. In the process, key concepts of the Yocto Project build system such as recipes, tasks and layers will be introduced.

Practical 2 :
We can now use Yocto to build software for our target, adding a recipe for a new package and then testing that new application on the target.

Lunch (provided)

Linux User/Kernel Debug

Presentation 3:
An essential part of the process for developing embedded Linux systems is debugging. Whether to remove bugs or verify the behaviour of the system it is vital for developers to know how to debug their code running on a Linux target. We look closely at embedded Linux application & kernel debugging and review the different tools and methodologies available in a typical embedded Linux system.

Practical 3:
In the first part of the practical we can see how we can cross debug an application on our target. In the second part we can debug the kernel itself using KDB.

Trace & Profile

Presentation 4:
Linux provides a wide range of tracing and profiling tools which you can use to understand performance issues and also investigate bugs and unexpected behaviours. In this session we introduce some of the tools available in a typical embedded Linux system and show how they can be used to analyse the kernel, applications and the wider system helping you to optimise your products. We use real-life case studies and demos to show how they work in practice. 

Practical 4:
Now we can use some of the tracing and profiling tools to analysis the behaviour of user space and kernel space processes when carrying out basic operations such as reading a file.

Free Board with this Workshop

Register NowThis stream is organised in partnership with NXP Semiconductors.

* Limited stock of boards available - provided on a first come first served basis on the day.
Our thanks to NXP for also providing the attendee laptops for this workshop.



ABOUT DOULOS

Doulos has set the industry standard for developing and delivering high quality training and know-how in electronic system design and verification for 28 years, covering languages and methodologies for system, hardware, and embedded software designers. The essential choice for more than 4000 companies across over 70 countries, Doulos provides scheduled classes across North America, Europe and India, and delivers on-site, team-based training and interactive on-line learning events worldwide.

KNOWHOW

Doulos is dedicated to providing engineers with useful technical information, models, guidelines, tips and downloads.

Check out these free KnowHow resources here »

Privacy Policy Site Map Contact Us
Book Now