Archive

Posts Tagged ‘debugging’

Beyond Debug Key Enables JTAG & UART Debugging, Supports OpenOCD

November 3rd, 2014 1 comment

Beyond Semiconductor, a fabless semiconductor company based in Slovenia which develops their own 32-bit BA2x IP cores, has sent me one of their development tool, namely Beyond Debug Key supporting JTAG and UART interfaces either with BeyondStudio for the company’s BA2x processor, or the open source suite OpenOCD for other processors. Since I don’t have any Beyond Semi boards, I instead configured it, and quickly tried it with Atmel SAMA5D3 Xplained ARM Cortex A5 development board, and OpenOCD (Open On-Chip Debugger).

Beyong_JTAG_Debug_Key_PackageThe debug tool comes in the package above describing the key features of the kit:

  • Performance
    • Transfer rate in excess of 600 kB/s
    • 30 MHz maximum JTAG clock
    • Less than 20 μW power draw from target board
  • Compatibility
    • Fully compatible with Beyond BA2x processor family
    • Access any 8-bit, 16-bit, 32-bit or 64-bit processors via JTAG
    • Works with all JTAG compliant devices
  • Software Support
    • OpenOCD for access to a range of CPLD, FPGA, flash and processor devices
    • BeyondStudio for graphical debugging of Beyond BA2x processors
  • Diagnostics – 7 autonomous status LEDs for power and flow control diagnostics
  • Target Debugging Integrated in BeyondStudio
    • Eclipse-based integrated development environment
    • Simplified and straightforward setup of target connection in just few clicks
    • Modern source-level debugger with hardware breakpoint, watchpoint and single step features
    • Integrated target console
  • Interfaces
    • USB 2.0 Hi-speed 480Mbps connection to PC
    • IEEE 1149.1 and IEEE 1149.7 JTAG interface standard pinout
    • RS232/RS422/RS485 UART Transfer Data Rate up to 12Mbaud
    • Simultaneous JTAG and UART operation
    • IO voltage range from 1.2 V to 3.3 V and including 5V CMOS compliant signaling
    • Independently controlled SRST and TRST signals
    • One Wire Debug (OWD) and Two Wire Debug (TWD) protocols support

Beyong_Debug_Key_JTAG
The kit include the Debug Key, a mini USB to cable, and a user’s manual describing the kit, explaining how to configured it with Windows and Linux computers, and listing the seven LED behaviours to diagonalize the connection. The tool uses a 20-pin JTAG connector, so as I did not want to wire JTAG signals manually, I went through my boards trying to find one with 20-pin JTAG receptacle, and I ended-up connecting it to Atmel SAMA5D3 Xpained development board as shown below.

Atmel_SAMA5D3_Xplained_JTAG_Debugger
Beyond Debug Key Connected to Atmel SAMA5D3 Xplained Board (Click to Enlarge)

JTAG can be used for board bring-up and flashing firmware, so I initially thought I would show how to configure the debug tool, and flash a firmware image to the board, but since Atmel SAMA5D3 configuration are not available, and it was my first time with OpenOCD, it took a little longer than usual, and I’ll just show the configuration part, and successful (I think) connection to the board.

The Debug key support both Windows and Linux, but I did everything from a computer running Ubuntu 14.04 LTS. The first thing is to install OpenOCD which is part of Ubuntu repo:

sudo apt-get install openocd

So it’s very easy to install, but OpenOCD version in Ubuntu is 0.7.0, and depending on the board you are using, you may want to build latest release (0.8.0), or directly from the source code tree:

git clone http://git.code.sf.net/p/openocd/code openocd-code
cd openocd-code
sudo apt-get install libusb-dev libftdi-dev texinfo libtool autoconf libusb-1.0-0-dev
./bootstrap
./configure --enable-ftdi
make -j8
sudo make install

OpenOCD requires config scrips both the JTAG key, and the target board. Beyond Semi provided the configuration files for their Debug Key, so that part was easy, and all I had to do was to create beyond.cfg with:

#
# Beyond Semi Debug Key
#
#
interface ftdi
ftdi_device_desc "Debug Key"
ftdi_vid_pid 0x0403 0x6010
ftdi_channel 0

ftdi_layout_init 0x0f38 0xff3b
ftdi_layout_signal nTRST -data 0x0100 -noe 0x0400
ftdi_layout_signal nSRST -data 0x0200 -noe 0x0800

adapter_khz 30000

You also need to create a udev rules to be able to access the JTAG debugger as a normal user. so I created 52-beyong-jtag.rules in /etc/udev/rules.d/ with the line:

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", ATTRS{product}=="Debug Key", MODE:="0666"

At this stage, if you run OpenOCD with beyond.cfg only, you get the following output:

openocd -f beyond.cfg
Open On-Chip Debugger 0.8.0 (2014-11-01-21:21)
Licensed under GNU GPL v2
For bug reports, read

http://openocd.sourceforge.net/doc/doxygen/bugs.html

Info : only one transport option; autoselect 'jtag'
adapter speed: 30000 kHz
Info : clock speed 30000 kHz
Warn : There are no enabled taps.  AUTO PROBING MIGHT NOT WORK!!
Warn : AUTO auto0.tap - use "jtag newtap auto0 tap -expected-id 0x974008ef ..."
Warn : AUTO auto0.tap - use "... -irlen 2"
Error: auto0.tap: IR capture error; saw 0x0003 not 0x0001
Warn : Bypassing JTAG setup events due to errors
Warn : gdb services need one or more targets defined

At this stage, I had to find or create the script for Atmel SAMA5D3 CPU, and you’ve got a list of scripts in /usr/share/openocd/scripts/ which can help. There’s also site claiming to support Atmel SAMA5D3 with OpenOCD, but checking out the code asked me for a password. So instead I read Atmel SAMA5D3 datasheet (Chip Identification section), where I found relevant information such as SRAM start address, and Cortex-A5 JTAG IDCODE (0x4BA00477). The SRAM address is exactly the same as SAM9G45 processor which has a config files in OpenOCD, namely at91sam9g45.cfg which also includes at91sam9.cfg, so I simply copied both files to create my own at91sama5d3.cfg,  by simply replacing set _CPUTAPID 0x0792603f by “set _CPUTAPID 0x4ba00477″.

Here’s the output if I use both the Debug Key and SAMA5 scripts:

openocd -f beyond.cfg -f at91sama5d3.cfg
Open On-Chip Debugger 0.8.0 (2014-11-01-21:21)
Licensed under GNU GPL v2
For bug reports, read

http://openocd.sourceforge.net/doc/doxygen/bugs.html

Info : only one transport option; autoselect 'jtag'
adapter speed: 30000 kHz
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst
adapter_nsrst_delay: 300
jtag_ntrst_delay: 200
RCLK - adaptive
1
Info : RCLK (adaptive clock speed)
Info : JTAG tap: at91sama5d36.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
Info : Embedded ICE version 0
Error: unknown EmbeddedICE version (comms ctrl: 0x00000000)
Info : at91sama5d36.cpu: hardware has 2 breakpoint/watchpoint units

So despite one error, the connection appears to be successful, and both TDO and TDO LEDs blinked on the debug key, which means both JTAG Tx and Rx were active. That’s all I have achieve so far with the amount of time I had.

If you are interested in getting such JTAG Debugger, you can purchase Beyond Debug Key for 90 Euros directly from Beyond Semiconductor.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Linaro 14.08 Release with Kernel 3.16 and Android 4.4.4

September 2nd, 2014 No comments

I’m a little late for that one, as Linaro 14.08 was released last Thursday. Nevertheless, this release features Linux kernel 3.16 (baseline), Linux 3.10.52 (LSK), and Android 4.4.4.

As usual Linaro has worked on member hardware such as Qualcomm based IFC6410 and ARM Juno &Vexpress boards. They’ve also committed changes for LLVM, big Endian, and added a workload generator tool (rt-app) to the Ubuntu and Android image. This tool has been developed and used by the power management working group, presumably to measure and optimize power consumption under various loads.

Here are the highlights of this release:

  • Linux Linaro 3.16-2014.08
    • GATOR version 5.19 (new version)
    • updated topic from Qualcomm LT (ifc6410 board support)
    • updated Versatile Express ARM64 support (FVP Base and Foundation models, Juno) from ARM LT (Landing Team)
    • updated Versatile Express patches from ARM LT
    • updated LLVM topic (follows the community llvmlinux-latest branch)
    • Big endian support (the 2014.05 topic version rebased to 3.16 kernel)
    • config fragments changes: CONFIG_DEBUG_INFO=y added to linaro-base.conf. This is needed to get the debug package containing vmlinux to be built, and vmlinux is required to run perf.
  • Linaro Toolchain Binaries 2014.08 – Based on GCC 4.9, and updated to latest Linaro TCWG releases:
    • Linaro GCC 4.9-2014.08
    • Linaro EGLIBC 2.19-2014.08
    • Linaro binutils 2.24-2014.08
    • Linaro GDB 7.8-2014.08
  • Linaro Android 14.08 – Built with Linaro GCC 4.9-2014.08
  • Linaro OpenEmbedded 2014.08
    • integrated Linaro GCC 4.9-2014.08, Linaro EGLIBC 2.19-2014.08, Linaro binutils 2.24-2014.08, and Linaro GDB 7.8-2014.08
    • added rt-app (contributed from Power Management WG)
    • updated GATOR to 5.19,  LSK kernels, and QEMU to 2.1.0
    • fixed boot wrapper build
    • upstreaming:
      • fixed kexec-tools
      • fixed udev startup script to fix mysql launch failure
      • updated PM QA to 0.4.12
      • fixed PHP build
      • fixed hugetlbfs
  • Linaro Ubuntu 14.08
    • added rt-app
    • updated packages: GATOR 5.19, LSK 3.10.52/3.14.16 and linux-linaro 3.16 kernels.
  • KVM ARMv8 Continuous Integration and Testing is completed
  • Make debug symbols available for Versatile Express ALIP image

You can visit https://wiki.linaro.org/Cycles/1408/Release for a list of known issues, and further release details about the LEB, LMB (Linaro Member Builds), and community builds, as well as Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain components.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

ARM TechCon 2014 Schedule – 64-Bit, IoT, Optimization & Debugging, Security and More

July 23rd, 2014 No comments

ARM Technology Conference (TechCon) 2014 will take place on October 1 – 3, 2014, in Santa Clara, and as every year, there will be a conference with various sessions for suitable engineers and managers, as well as an exposition where companies showcase their latest ARM based products and solutions. The detailed schedule for the conference has just been made available. Last year,  there were 90 sessions organized into 15 tracks, but this year, despite received 300 applications,  the organizers decided to scale it down a bit, and there will be 75 session in the following 11 tracks:ARM_TechCon_2014

  • Chip Implementation
  • Debugging
  • Graphics
  • Heterogeneous Compute
  • New Frontiers
  • Power Efficiency
  • Safety and Security
  • Software Development and Optimization
  • Software Optimization for Infrastructure and Cloud
  • System Design
  • Verification

There are also some paid workshops that take all day with topics such as “Android (NDK) and ARM overview”, “ARM and the Internet of Things”, or “ARM Accredited Engineer Programs”.

As usual, I’ve gone through the schedule builder, and come up with some interesting sessions with my virtual schedule during the 3-day event:

Wednesday – 1st of October

In this session, Dr. Saied Tehrani will discuss how Spansion’s approach to utilize the ARM Cortex-R line of processors to deliver energy efficient solutions for the automotive MCU market has led the company to become a vital part of the movement toward connectivity in cars. Beginning with an overview of the auto industry’s innovation and growth in connected car features, he will explain how these systems require high performance processing to give drivers the fluid experience they expect. Highlights in security and reliability with ARM Cortex-R, including Spansion’s Traveo Family of MCU’s will also be presented.

HEVC and VP9 are the latest video compression standards that significantly improves compression ratio compared to its widely used predecessors H.264 and VP8 standard. In this session the following will be discussed:

  • The market need for GPU accelerated HEVC and VP9 decoders
  • Challenges involved in offloading video decoding algorithms to a GPU, and how Mali GPU is well suited to tackle them
  • Improvement in power consumption and performance of Mali GPU accelerated decoder
  • big.LITTLE architecture and CCI/CCN’s complementing roles in improving the GPU accelerated video decoder’s power consumption

ARM’s Cortex-M family of embedded processors are delivering energy-efficient, highly responsive solutions in a wide variety of application areas right from the lowest-power, general-purpose microcontrollers to specialised devices in advanced SoC designs. This talk will examine how ARM plans to grow the ARM Cortex-M processor family to provide high performance together with flexible memory systems, whilst still maintaining the low-power, low-latency characteristics of ARM’s architecture v7M.

IoT devices as embedded systems cover a large range of devices from low-power, low-performance sensors to high-end gateways. This presentation will highlight the elements an embedded engineer needs to analyse before selecting the MCU for his design. Software is fundamental in IoT: from networking to power management, from vertical market protocols to IoT Cloud protocols and services, from programming languages to remote firmware update, these are all design criteria influencing an IoT device design. Several challenges specific to IoT design will be addressed:

  • Code size and RAM requirements for the major networking stacks
  • Optimizing TCP/IP resources versus performance
  • Using Java from Oracle or from other vendors versus C
  • WiFi (radio only or integrated module)
  • Bluetooth (Classis versus LE) IoT protocols

Thursday – 2nd of October

Amongst ARM’s IP portfolio we have CPUs, GPUs, video engines and display processors, together with fabric interconnect and POP IP, all co-designed, co-verified and co-optimized to produce energy-efficient implementations. In this talk, we will present some of the innovations ARM has introduced to reduce memory bandwidth and system power, both in the IP blocks themselves and the interactions between them, and how this strategy now extends to the new ARM Mali display processors.

Designing a system that has to run on coin cells? There’s little accurate information available about how these batteries behave in systems that spend most of their time sleeping. This class will give design guidance on the batteries, plus examine the many other places power leakages occur, and offer some mitigation strategies.

64-bit is the “new black” across the electronics industry, from server to mobile devices. So if you are building or considering building an ARMv8-A SoC, you shall attend this talk to either check that you know everything or find out what you shall know! Using the ARMv8 Juno ARM Development Platform (ADP) as reference, this session will cover:

  • The ARMv8-A hardware compute subsystem architecture for Cortex-A57, Cortex-A53 & Mali based SoC
  • The associated ARMv8-A software stack
  • The resources available to 64-bit software developers
  • Demonstration of the Android Open Source Project for ARMv8 running on Juno.

Rapid prototyping platforms have become a standard path to develop initial design concepts. They provide an easy-to-use interface with a minimal learning curve and allow ideas to flourish and quickly become reality. Transitioning from a simple, easy-to-use rapid prototyping system can be daunting, but shouldn’t be. This session presents options for starting with mbed as a prototyping environment and moving to full production with the use of development hardware, the open-source mbed SDK and HDK, and the rich ARM ecosystem of hardware and software tools.Attendees will learn how to move from the mbed online prototyping environment to full production software, including:

  • Exporting from mbed to a professional IDE
  • Full run-time control with debugging capabilities
  • Leveraging an expanded SDK with a wider range of integration points
  • Portability of applications from an mbed-enabled HDK to your custom hardware

Statistics is often perceived as scary and dull… but not when you apply it to optimizing your code! You can learn so much about your system and your application by using relatively simple techniques that there’s no excuse not to know them.This presentation will use no slides but will step through a fun and engaging demo of progressively optimizing OpenCL applications on a ARM-powered Chromebook using IPython. Highlights will include analyzing performance counters using radar diagrams, reducing performance variability by optimizing for caches and predicting which program transformations will make a real difference before actually implementing them.

Friday – 3rd of October

The proliferation of mobile devices has led to the need of squeezing every last micro-amp-hour out of batteries. Minimizing the energy profile of a micro-controller is not always straight forward. A combination of sleep modes, peripheral control and other techniques can be used to maximize battery life. In this session, strategies for optimizing micro-controller energy profiles will be examined which will extend battery life while maintaining the integrity of the system. The techniques will be demonstrated on an ARM Cortex-M processor, and include a combination of power modes, software architecture design techniques and various tips and tricks that reduce the energy profile.

One of the obstacles to IoT market growth is guaranteeing interoperability between devices and services . Today, most solutions address applications requirements for specific verticals in isolation from others. Overcoming this shortcoming requires adoption of open standards for data communication, security and device management. Economics, scalability and usability demand a platform that can be used across multiple applications and verticals. This talk covers some of the key standards like constrained application protocol (CoAP), OMA Lightweight M2M and 6LoWPAN. The key features of these standards like Caching Proxy, Eventing, Grouping, Security and Web Resource Model for creating efficient, secure, and open standards based IoT systems will also be discussed.

Virtual Prototypes are gaining widespread acceptance as a strategy for developing and debugging software removing the dependence on the availability of hardware. In this session we will explore how a virtual prototype can be used productively for software debug. We will explain the interfaces that exist for debugging and tracing activity in the virtual prototype, how these are used to attach debug and analysis tools and how these differ from (and improve upon) equivalent hardware capabilities. We will look in depth at strategies for debug and trace and how to leverage the advantages that the virtual environment offers. The presentation will further explore how the virtual prototype connects to hardware simulators to provide cross-domain (hardware and software) debug. The techniques will be illustrated through case studies garnered from experiences working with partners on projects over the last few years.

Attendees will learn:

  • How to set up a Virtual Prototype for debug and trace
  • Connecting debuggers and other analysis tools.
  • Strategies for productive debug of software in a virtual prototype.
  • How to setup trace on a virtual platform, and analysing the results.
  • Hardware in the loop: cross domain debug.
  • Use of Python to control the simulation and trace interfaces for a virtual platform.
  • 14:30 – 15:20 – GPGPU on ARM Systems by Michael Anderson, Chief Scientist, The PTR Group, Inc.

ARM platforms are increasingly coupled with high-performance Graphics Processor Units (GPUs). However the GPU can do more than just render graphics, Today’s GPUs are highly-integrated multi-core processors in their own right and are capable of much more than updating the display. In this session, we will discuss the rationale for harnessing GPUs as compute engines and their implementations. We’ll examine Nvidia’s CUDA, OpenCL and RenderScript as a means to incorporate high-performance computing into low power draw platforms. This session will include some demonstrations of various applications that can leverage the general-purpose GPU compute approach.

Abstract currently not available.

That’s 14 sessions out of the 75 available, and you can make your own schedule depending on your interests with the schedule builder.

In order to attend ARM TechCon 2014, you can register online, although you could always show up and pay the regular on-site, but it will cost you, or your company, extra.

Super Early Bird Rare
Ended June 27
Early Bird Rate
Ends August 8
Advanced Rate
Ends September 19
Regular Rate
VIP $999 $1,299 $1,499 $1,699
All-Access $799 $999 $1,199 $1,399
General Admission $699 $899 $1,099 $1,299
AAE Training $249 $299 $349 $399
Software Developers Workshop $99 $149 $199 $249
Expo FREE FREE $29 $59

There are more types of pass this year, but the 2-day and 1-day pass have gone out of the window. The expo pass used to be free at any time, but this year, you need to register before August 8. VIP and All-access provides access to all events, General Admission excludes AAE workshops and software developer workshops, AAE Training and Software Developers Workshop passes give access to the expo plus specific workshops. Further discounts are available for groups, up to 30% discount.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Element14 Design Center Helps You find a Development Board and Tools for Your Project

June 27th, 2014 No comments

Element14 has just launched a Design Center, currently in beta version, which let’s you do parametric searches for development kits, debuggers, software tools, by tools vendor, silicon manufacturers, board features, and processor architecture / type. So for example if you want to work on a low power Linux based gateway with Ethernet and Zigbee, you may search for a board with Ethernet and Zigbee, and comes with an ARM Cortex A5 processor.

Element14 Design Center - Zigbee / Ethernet / ARM Cortex A5 Search

Element14 Design Center – Zigbee / Ethernet / ARM Cortex A5 Search

In this example, the website returned four SAMA5D3x evaluation kits from Atmel which support Ethernet, as well as Zigbee via an external module. Then if you want to find which tools are available from Atmel, you can select “Emulation and Debugging”, “IDE & Compiler”, and “Operating Systems & Stacks”, as well as “Atmel” and “ARM” core architecture which will return Atmel Studio 6, and a JTAG emulator. It’s not quite perfect, as the only features you can search for right now are: 802.15.4, Bluetooth, Ethernet, HDMI, LCD, RJ-45, RS232, USB and Zigbee. It won’t let you search for things like memory and storage capacity, the presence and minimum number of interfaces such as GPIO, SPI, I2C, CAN,  etc…, as is often seen for parametric searches for MCUs. I’m not quite sure the parametric search has to be that fine for development boards though, but more options would certainly be welcomed. Nevertheless, Element14 Design Center may be a starting point to find the development board you need for a given application.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Embedded Linux Conference 2014 Schedule

April 19th, 2014 1 comment

The Tenth Embedded Linux Conference (ELC 2014) will take place on April 29 – May 1, 2014 at the San Jose Marriott in San Jose, California. The event will feature 90+ sessions on embedded Linux, Android and IoT with over 450 attendees expected to attend. It will also be co-located with Android Builders Summit and the AllSeen Alliance Hackfest. Even if you can’t attend it’s still interesting to see what will be discussed at the event to get a grasp of on-going developments, learn a few things about different optimization techniques, and so on. So I’ve gone through the sessions’ description, and I’ve designed my own virtual schedule with sessions that could be of interest.

Embedded_Linux_Conference_2014April 29

Linux has taken the embedded world by storm.  Billions (with a ‘B’) of devices have now shipped with a Linux kernel, and it seems unstoppable.  But will the next 10 billion devices ship with Linux or with something else?  How can Linux be specialized for deeply embedded projects, as characterized by the Internet of Things, while still maintaining the network effects of community cooperation and sharing?  Is this possible or even desirable?  The startling truth might be revealed at this keynote. Or, Tim might just rant a bit about device-tree… who knows?

The past year has seen a remarkable growth of interest in super-low-power and super-low-form-factor computing, in the form of ‘wearables’, the ‘Internet of Things’, and the release of exciting new hardware such as Intel’s Quark and Edison SoCs. Taking advantage of this super-small hardware also implies the need for super-small operating systems and applications to match. This talk will describe a super-small-footprint Linux distribution called ‘microYocto”. The main focus will be the kernel and how we achieved what we think is close to the minimal possible kernel footprint, both in terms of static text size and dynamic memory usage. We’ll talk about the tools and methodologies we used and developed to analyze the problem, such as tracing and machine simulation, and will describe the various technologies developed and applied to achieving this minimalistic system.

Many community resources exist about boot time reduction. However, few of them are up to date and share the exact time savings that can be achieved on recent systems. This talk will detail today’s most efficient techniques to reduce boot time. For each of them, figures will be shared, obtained from recent boot time reduction projects and from the preparation of Free Electrons new workshop on this topic. If you attend this talk, you will know which optimization techniques are worth using first, and will save time not exploring techniques that won’t make a significant difference in your project. Don’t tell your boss, and this will leave your more time to contribute to community projects!

In this talk, Chris will describe the internal workings of the Android graphics stack from the Application layer down through the stack to pixels on the screen. It is a fairly complex journey, taking in two different 2D rendering engines, applications calling OpenGL ES directory, passing buffers on to the system compositor, Surface Flinger, and then down to the display controller or frame buffer. All this requires careful synchronisation so that what appears on the screen is smooth, without jitter, and makes efficient use of memory, CPU, GPU and power resources.

Linux-based platforms such as the Beaglebone and Raspberry Pi are inexpensive powerhouses. But, beyond being cool on their own, what else can you do with them? This presentation will step you through the process of building a Wi-Fi enabled, Linux-based robot that you can build without breaking the bank and without special knowledge of robotics and robotic controls.

Since last year, we have been working on supporting the SoCs from Allwinner, a Chinese SoC vendor, in the mainline kernel. These SoCs are cheap, wide-spread, backed by a strong community and, until last year, only supported by an out-of-tree kernel. Through this talk, we would like to share the status of this effort: where we were a year ago, what solutions were in place, where we are currently, and what to expect from the future. We will also focus on the community around these SoCs, the work that is done there, etc.

April 30

GCC is an optimizing compiler, currently most common compiler to build software for Embedded Linux systems like Android, Yocto Project etc. This tutorial will introduce specific optimizations and features of GCC which are less known but could benefit optimizing software especially for embedded use while highlight the effect of common optimizations. While it will focus on squeezing most out of GCC, it will also cover some of “pessimizations” to avoid and will tip the developer to write code thats more conducive (compiler friendly) for general optimizations. They will also get some contrast with other compilers when needed.

Throughout the last two years, a team of engineers at Free Electrons has been involved in mainlining the support for several ARM processors from Marvell, converting the not-so-great vendor-specific BSP into mainline quality code progressively merged upstream. This effort of several hundreds working days, has led to the integration of hundreds of patches in the kernel. Through this talk we would like to share some lessons learned regarding this mainlining effort, which could be useful to other engineers involved in ARM SoC support, as well as detail the steps we have gone through, the mistakes we’ve made and how we solved them, and generally our experience on this project.

This BoFs is intended to bring together anybody that tests the Linux kernel to share best practices and brainstorm new ideas. Topics may range from .config testing, module/built-in drivers, test methods and tools for testing specific driver subsystems, VM/scheduler/interrupt stress testing, and beyond. The discussion is targeted at Linux kernel developers, test engineers, and embedded Linux product teams/consultants with the common task of testing Linux kernel integrity. Attendees should have a firm grasp of building and deploying the kernel as well as kernel/userspace kernel APIs.

Several vendors are getting ready to start enabling the upstream kernel for their upcoming 64-bit ARM platforms, and it opens up a few questions on things that are not quite sorted out yet, especially on the embedded and mobile platforms. This is an open discussion on the issues these maintainers are anticipating, and what we should do about it.

Communication between components is necessary for effective power management in mobile devices. The System Power Management Interface, also known as SPMI, is a standardized bus interface intended to provide power-management related connectivity between components. Josh Cartwright will provide a high-level architectural overview of SPMI and discuss how to leverage the Linux Kernel software interfaces (expected to land in 3.15) to communicate with devices on the bus.

May 1

While Android has been created for mobile devices — phones first and now tablets — it can, nonetheless, be used as the basis of any touch-screen system, whether it be mobile or not. Essentially, Android is a custom-built embedded Linux distribution with a very elaborate and rich set of user-space abstractions, APIs, services and virtual machine. This one-day workshop is aimed at embedded developers wanting to build embedded systems using Android. It will cover Android from the ground up, enabling developers to get a firm hold on the components that make up Android and how they need to be adapted to an embedded system. Specifically, we will start by introducing Android’s overall architecture and then proceed to peel Android’s layer one-by-one.

This half-day workshop is aimed at embedded developers that want to use Android in their embedded designs.

The MIPS processor cores are widely used in embedded platforms, including TVs and set-top-boxes. In most of those platforms dedicated graphics hardware exists but it may be specialized for its use in audio and video signal processing: rendering of web content has to be done in software. We implemented optimizations for the software-based QPainter renderer to improve the performance of Qt —including QtWebKit— in MIPS processors. The target platform was the modern 74kf cores, which include new SIMD instructions suitable for graphics operations (alpha blending, color space conversion and JPEG image decoding), and also for non-graphics operations: string functions were also improved. Our figures estimate that web pages are rendered up to 30% faster using hand-coded assembler fast-paths for those operations.

Software Freedom Conservancy announced last year a renewed effort for cross-project collaborative GPL compliance efforts, including copyright holders from BusyBox, Linux, and Samba. Conservancy uses an internal system of communication and collaboration to take input from stakeholders to discuss and engage in compliance activity to ensure compliance with the GPL throughout the technology industry and particularly in the embedded device market. Compliance with the GPL is the responsibility of copyright holders of the software, and Conservancy helps those copyright holders pursue the work, so those developers can focus on coding. In this talk, the President of Conservancy will discuss how Conservancy handles compliance matters, what matters it focuses on, and how the copyright holders that work with Conservancy engage in a collaborative effort to ensure compliance with the GPL.

Ubuntu Touch is the new Ubuntu-based OS for phones and tablets. Announced at the beginning of 2013, it gives a new UI and design proposal, but also a new way of developing and supporting many different devices, using either the Android HAL or the traditional Linux stack to build the platform. This talk will go over the Ubuntu Touch internals, presenting the technical decisions and also the work that was done to bootstrap this new platform (camera, radio, video decode, GLES and etc) and the future challenges to support a single stack across mobile and the traditional desktop.

These are just a few sessions out of the 90+ sessions available at the Embedded Linux Conference and Android Builder Summit. You can check the full schedule to find out which sessions are most interesting to you.

If you’d like to attend the event, you’ll need to register online.

The attendance fees have significantly gone up compared to last year, at least for hobbyists, but include entrance for both ELC and Android Builder Summit:

  • Professional Registration Fee - US$600 (Was US$500 until March 29, 2014)
  • Hobbyist Fee – US$150
  • Student FeeUS$150

After the events, many videos are usually uploaded by the Linux Foundation, and you should be able to find the list of talks with links to presentation slides oneLinux.org.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Linaro 14.01 Release with Linux Kernel 3.13 and Android 4.4.2

January 31st, 2014 No comments

The first release of the year, Linaro 14.01, is now out with Linux Kernel 3.13 (baseline), Linux Kernel 3.10.28 (LSK), Android 4.4.2, and Ubuntu Linaro 14.01.

The most important part of this release is support for Arndale Octa, which makes big.LITTLE processing code available to a low cost platform. Android 4.4.x is now on par with Android 4.3 in terms of support. Linaro has also decided to provide quarterly stable released with GCC, and Linaro GCC 4.7-2014.01 is the first quarterly stable release with the next one planned with Linaro 14.04.

Here are the highlights of this release:

  • Linaro Stable Kernel (LSK) 3.10.28-2014.01 with latest version of GTS patch set for big.LITTLE, and Android support
  • Linux Linaro 3.13-2014.01:
    • gator version 5.17
    • updated linaro-android-3.13-merge topic by John Stultz, the “Revert “PM / Sleep: Require CAP_BLOCK_SUSPEND to use wake_lock/wake_unlock” patch included
    • uprobes v4
    • updated big-LITTLE-pmu topic from ARM Landing Team (LT)
    • updated basic Capri board support from Broadcom LT (clock framework support added)
    • Arndale Octa board support added by Samsung LT
    • updated Versatile Express patches from ARM LT
    • updated big endian topic
    • vexpress64 support (FVP Base and Foundation models)
    • config fragments changes: BeagleBone / BeagleBoneBlack config fragment created, more config options enabled for libvirt support, virtio mmio support enabled in vexpress.conf.
  • Linaro Toolchain Binaries 2014.01 including Linaro GCC 4.8-2014.01, with enhanced multilib support.
  • Linaro Android 14.01
    • libjpeg-turbo refreshed on Android builds from the Graphics Working Group
    • Kernel CI loop for Android was streamlined for stability and faster builds
    • built with Linaro GCC 4.8-2014.01
  • Linaro OpenEmbedded 2014.01
    • updated LTP to 20140115 releases
    • updated apica-tools to 20131218 release
    • integrated OpenDataPlane
    • merged external toolchain fixes contributed from Freescale
    • integrated Linaro GCC 4.8-2014.01
    • allowed native builds for OpenJDK 8
    • upstreaming: updated acpica-tools to the latest release, updated LTP (Linux Test Project) to the latest release, added Aarch64 support to GRUB2, added Aarch64 support to klibc
  • Linaro Ubuntu 14.01
    • Added packages to support Arndale Octa: arndale-octa-pre-boot, linux-linaro-arndale-octa and u-boot-linaro-arndale-octa
    • Added idlestat package
    • Packages updated: edk2-uefi, flash-kernel, gator and sbsigntool
  • Linux Linaro LNG 3.10.25-2014.01 – PREEMPT_RT patchset rt23, Arndale support
  • Linux Linaro LT HiSilicon 3.13-rc2-2014.01
    • Supports both K3V2 board and S40V200 FPGA board.
    • K3V2 support includes: basic soc, smp, hotplug, clock, i2c, touch, regulator, mmc. S40V200 support includes basic soc, smp, hotplug, clock
    • Integrated into the linux-linaro tree, and HiSilicon BSP code is now available in linux-linaro monthly releases
  • Linaro UEFI 2014.01
    • Rebased to Tianocore EDK2 SVN revision 14795
    • the latest version of the EDK2 code contains support for aarch64 plaforms upstream.
  • Linaro Image Tools 2014.01 – Arndale Octa support
  • Linaro Test Suites 2014.01
    • Android: Added Ethernet Test for Linaro Android
    • Ubuntu: Added WiFi Test for Linux Linaro Ubuntu
    • ltp: Improve parser & add tests
    • netperf: Add parameters and default to eth0
    • acpica-tools: Add acpica-tools test defination
    • ubuntu: Added acpi-smoke-test
    • acpica asl: Update source repository link
    • ltp-realtime: Parse ltp-realtime results for LAVA measurements
    • ubuntu: Added SD MMC Test for Linaro Ubuntu
    • ubuntu: Added Gator Data Streaming Test for Linaro Ubuntu
    • android: Added SD MMC Test for Linaro Android
    • Fixed parse pattern in min_max_avg_parse.py
    • mauve: move the tests instead of making a copy
    • ubuntu: remove unnecessary clone operation
    • oe: remove unnecessary clone operation
    • hackbench: Running hackbench properly with timeout and removed background dd
    • ubuntu/ltp-network: add ltp network test
    • netperf: set the result to skip, remove Sz in test name
  • Linaro idlestat – Tool which can show how long a CPU or cluster enters idle state with information gathered using traces from trace-cmd or ftrace tools
  • Linaro GCC 4.8-2014.01 with enhanced multilib support
  • Linaro GCC 4.7-2014.01

Visit https://wiki.linaro.org/Cycles/1401/Release for a list of known issues, and further release details about the LEB and community builds, Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain (GCC / Qemu) components.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Cheap Accessories for Raspberry Pi – Camera, microSD adapter, Debug Board, Heatsink and Enclosure

January 26th, 2014 14 comments

The Raspberry Pi just a great low cost ARM Linux board that costs $25 (Model A) to $35 (Model B), but once you start to add accessories the total cost of ownership may creep up quickly, and in some cases accessories may be more expensive than the board itself. I’ll list some alternative accessories that can be purchased online for a fraction of the cost of the more famous one.

$18 Raspberry Pi Camera

Raspberry_Pi_Camera_CloneThe official Raspberry Pi camera costs $25 + shipping and tax, but you can get a similar 5MP CSI camera for just $18.13 including shipping on Banggood.com. This camera clone should be software compatible with the original one according to the listed features:

  • Plugs directly into the CSI connector on the Raspberry Pi
  • 5MP resolution image (2592 x 1944), or 1080p HD video recording at 30fps
  • 5MP (2592 x 1944 pixels) Omnivision 5647 sensor in a fixed focus module
  • 15 pin Ribbon cable to the dedicated 15-pin MIPI camera serial interface (CSI) included
  • The camera is supported in the latest version of Raspbian
  • Dimensions – 25 x 24 x 9mm

It appears to have similar specifications as the original camera up to to sensor, so I’d guess the image quality should just be the same, but this would probably have to be tested and and compared it to the original R-Pi camera. The Raspberry Pi foundation is most likely getting some funds from your purchase via RS components or Farnell as well, which is not the case with the clone.

$1.62 microSD card adapter

The Raspberry Pi comes with a full sized SD card slot, and when you insert the SD card in the board over half of the card is outside the board, which is not always looking nice, and in some applications may be an issue due to lack of space. To solve this problem, there are a few microSD card adapters from Adafruit ($6) and Pimoroni (about $10) among others, but you could save quite a lot by purchasing a microSD card adapter with the same functionality for $1.62 including shipping from BuyinCoins.

$1.45 USB To TTL debug board

usb_tll_adapterIf you want to see what’s going on at boot time in the bootloader and the linux kernel, you need to connect a USB to TTL to the UART pins of your Raspberry Pi in order to get the boot log in putty, minicom (Linux) or hyperterminal (Windows). Adafruit sells one for $9.95, but you can also buy a cheaper one which should work just as well for $2.19, and yes, it includes shipping, from BuyinCoins. [Update: the previous product uses +5V, so using another one supporting +3.3V won’t damaged the R-Pi, and is even cheaper: $1.45]

$1.26 Heat sink set for the Raspberry Pi

The Raspberry Pi should not need heat sinks, but if your board is an environment where proper ventilation is not possible, and/or you overclock your Raspberry Pi to 1GHz or more, hits may be useful, a heat sink kits with 3 heat sinks for Broadcom BCM2835 SoC, LAN9512 Ethernet chip, and the voltage regulator are sold, and made of different materials such as ABS, aluminum and copper. Banggood is probably selling one of the cheapest aluminum kit for $1.26 including shipping. If you want a copper heatsink just for the SoC, there’s one for $1.19.

$3.52 Raspberry Pi Case

Pimoroni Pibow case is one of the most commonly used case for the Raspberry Pi, and it looks very nice, but costs a little over $20. There are many cases for a cheaper price, but this transparent Raspberry Pi case may be one of the cheapest ones for $3.52 including shipping.

Do you know any other cheap accessories for the Raspberry Pi? If so, let us know in the comments.

Thanks to onebir for the links.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter