Showing posts with label IT Compliance Training. Show all posts
Showing posts with label IT Compliance Training. Show all posts

Wednesday, June 25, 2014

Why Your Embedded Device needs an Operating System

Overview: This webinar makes the case that, for all but the smallest 8-bit microcontroller-based systems, an operating system of some form makes sense. We begin by defining the problem: how can we most effectively organize the software/firmware of an embedded device to maximize performance within the constraints of the provided hardware? 

We'll examine the polling loop model and analyze its shortcomings. Then we'll look at asynchronous hardware interrupts and see that they are the source of much of the complexity of device-based software. The real-time operating system will be introduced as a way to abstract out the inherent complexity of asynchronous interrupts. We'll then dive into the characteristics and features of operating systems: the tasking model, the scheduler, inter-task communication and synchronization, timing, and of course interrupt handling. We'll consider the problems of sharing resources among multiple tasks. We'll discuss the distinction between an operating system and a kernel. FreeRTOS, a small Open Source kernel, will serve as the model for this entire section.

Next we'll explore design considerations for an OS-based system. How to partition the problem into tasks. We'll look at the idea of dynamic task creation, that is, creating and destroying tasks while the system is running. Solving the resource sharing problem sometimes introduces problems of its own. We'll look at two of these problems, priority inversion and deadly embrace, and assess tech-niques for dealing with them.

Finally, we'll survey some other popular operating systems, both Open Source and pro-prietary, to see where they fit in the grand scheme of things.

Why should you attend: If you're designing and building embedded devices, you really should consider basing the firmware on a real-time operating system (RTOS). Especially in this age of "the Internet of Things", the need for low latency, and in many cases deterministic, response becomes ever more important. Polling loops just can't keep up. The operating system model has a number of advantages. It tends to make systems more modular and reliable. Code breaks down into smaller, more comprehensible units. It scales well. The ultimate result is faster, more efficient software development.

An operating system isn't as mysterious as you might think. It is based on relatively straightforward design principles. It may take some effort to master programming for an OS, but once you do you'll wonder why you wasted time coding polling loops. And operating systems don't always require excessive resources either. Free RTOS, for example, will even run on PIC microcontrollers.

Areas Covered in the Session:

  • Background
    • Nature of Device Programming
    • Polling Loop
    • What is an interrupt
  • Introducing Multi-tasking Operating Systems
    • What is a task?
    • Inter-task Communication and Synchronization
    • Managing Time
    • Handling Interrupts
  • Designing with a Multi-tasking OS
    • Task Partitioning
    • Dynamically Creating Tasks
    • Problems with Solving the Resource Sharing Problem
  • Survey of Multi-tasking Operating Systems
    • Open Source
    • "Kind of" Open Source
    • Commercial/Proprietary

Who Will Benefit:

  • Embedded engineer
  • Software engineer
  • Firmware engineer
  • System architect
  • Engineering Manager

Setting up a Linux Cross-Development Environment

Overview: This webinar shows you how to set up a Linux-based cross-development environment for doing development work on a typical ARM target board. Live demonstrations com-plement the lecture material to show you exactly how the process works. While the examples presented utilize an ARM processor, the basic concepts are applicable to any architecture. 

We'll begin by reviewing the basic cross-development paradigm and describing a typical toolchain. We'll configure the workstation's network interface to support the Network File System (NFS). We'll also need a simple serial terminal emulator for talking to the target board's boot loader. A typical ARM-based target single board computer (SBC), the Mini2440, will be intro-duced. We'll configure the board's network interface to connect with the workstation when it boots up.

Then, after reviewing the Linux notion of "mounting" file systems, we'll use NFS to mount the target board's root file system. Eclipse will be introduced to illustrate the value of an Integrated Development Envi-ronment (IDE). Eclipse is a popular Open Source project that has been adapted by several commercial tool vendors as the basis for their own IDEs. We'll demonstrate how a network-based target file system, together with Eclipse, speeds up the ed-it/compile/debug cycle.
Having built and tested a simple application program, we'll move on to review several Open Source build systems that aim to simplify the process of setting up a development environment. These packages encompass all of the elements of the environment in-cluding: tool chain, libraries, utilities in the form of BusyBox, Linux kernel, and boot loader.

Want to use Windows? Well, if you must. While it's a little more involved, it is possible to set up a usable Linux development environment in Windows. One of the problems is that Windows doesn't ship with an NFS server. We'll wrap things up then, by taking a look at a Windows-based cross-development platform.

Why should you attend: Any task is accomplished faster, easier and more efficiently with the right set of tools. Thus, when developing embedded devices with Linux, good practice requires that you have a well-structured development environment. While it may be possible to do develop-ment on the target device itself, it's usually not the most efficient or productive environment. The preferred alternative is a cross-development environment on a workstation class PC.

How or where do you get a cross-development environment? You can go to a commercial tool vendor and pay a lot of money. Or you can set one up yourself. The goal of this presentation is to show you that it's not that difficult, especially if you use one of the popular Open Source build systems. Even if your target does not use Linux, a proper Linux-based cross-development envi-ronment is still a good investment in productivity. You can just as easily use other target operating systems or program to the bare metal.

Especially if you're new to embedded development, this webinar will get you started on the right track toward greater productivity and quicker time to market.

Areas Covered in the Session:

  • Cross-development tool chains
  • Configuring the workstation for NFS
  • The target board
  • Mounting the target's root file system over the network
  • Eclipse
  • Open Source build systems
    • Yocto
    • OpenEmbedded
    • Buildroot
    • Linaro
  • What about using Windows?

Who Will Benefit:

  • Embedded engineer
  • Software engineer
  • Firmware engineer
  • System architect
  • Engineering Manager