In this session we will discuss techniques and tools for writing automated tests that are robust, extensible and maintainable. The speakers will provide an initial presentation of the their own point of view on the subject, but audience participation is expected, and encouraged. Some topics that will be covered: UIAutomator andAndroidViewClient for UI testing on Android; shunit2 and clitest for organizing test suites; best practices for shell scripts.
Being able to see the performance and power impacts of changes in a real world environment such as Android is a prerequisite to doing meaningful development on scheduler-guided frequency (or many other sensitive subsystems). The first half of this session will review setting up the tools to automate testing for performance and power in Android. The second half will cover the results of using these tests to compare the schedutil and interactive governors.
ARM mbed OS is an open source embedded operating system designed
specifically for the “things” in the Internet of Things. It includes all the features you need to develop a connected product based on very small memory footprint ARM Cortex-M microcontrollers, including security,connectivity, an RTOS, and drivers for sensors and I/O devices. You can start developing with mbed OS 5.1.0 today using a choice of 40 different development boards from 11 different providers and a wide choice of toolchains including a complete command line build management and configuration tool mbed CLI, industry standard desktop IDEs or ARM’s free online IDE.
OpenDataPlane provides a portable framework for data plane acceleration that is the basis for higher-level functions such as the full IP protocol stack provided by OpenFastPath (OFP). ODP+OFP in turn can be used to offer acceleration to applications like the open source NGiNX web server. This talk discusses experiences using these tools with a focus on the performance and scaling benefits of using ODP and OFP.
This session is an introductory course on Linux kernel upstreaming fundamentals. The course covers the definition the Linux mainline kernel tree as well as the maintainer hierarchy and processes used to contribute software into the mainline kernel. Special focus is given to understanding what documentation will help understand the process and mechanics in more detail while breaking the workflow into the various steps of upstreaming software patches. The target audience is both software engineers and engineering managers preparing to upstream software into the kernel. The topic requires a solid background in software configuration management terminology and the git SCM tool as well as a good technical understanding of the Linux kernel itself.
For connected embedded systems we can broadly consider security across four different areas: Security within a cloud application/platform. Lifecycle security for large deployments of embedded devices. Communication security between internet connected systems. Local device security implemented within end nodes. Each connected end node needs to support aspects of lifecycle, communication and device security according to application needs. It is not scalable (or secure or productive) to start from scratch, implementing all of these aspects for each development. It is also not a good idea to implement static, closed, proprietary security systems which rely more on “security by obscurity” than on thorough, continuous and open validation of security implementations. Developers need comprehensive and flexible SW security frameworks with strong links to MCU HW security features that enable them to efficiently implement, validate and deploy “right sized” security solutions. This session will discuss the solutions that are available today, how to reason effectively about application security requirements and opportunities to evolve embedded security solutions in the future.