Embedded Linux Software Development Capabilities

The PTR Group has extensive experience with embedded Linux development.  Our experience encompasses all aspects of software development related to device bring up.  This includes creating the BSP and boot firmware, porting the kernel, and developing device drivers.  The PTR Group can also create custom Linux distributions with toolchains as well as the user-space applications needed for fully operational deployed systems.

Below is a summary of just some of the processors, development boards, device drivers and application components that we have worked on.

 

Processor/SOC:
We have extensive board bring up, kernel porting and device knowledge of the following processors including: OMAP, ARM, XScale, PowerPC, MIPS, SA1110, Intel x86 and many others.  

  • TI ARM processors:  We are well versed on OMAP 3 and OMAP 4 processor lines as well as the newer SITARA processors.  Several of our training courses have labs hosted on OMAP and ARM-based platforms
  • Other ARM: AT91RM9200 (ARM9), IXP2850 (Xscale), DaVinci ARM9, ARM920T, ARM926EJ, ARM1136, XScale PXA 255/270/320, ARM Cortex M0/M3M4, ARM Cortex A8/A9/A15, Nvidia Tegra 3/4, Qualcomm S3/S4 and big.LITTLE architectures
  • PowerPC: PPC405, PPC440, MPC86x, MPC82xx, MPC85xx, MPC83xx
  • MIPS: RM7000C, RM9000, RM4650, BCM4704, MIPS330000
  • Other: Various embedded x86 SOCs, Atom, TI542x DSP, AD BlackFin

Boards/Platforms:
Pandaboard, LogicPD ZOOM/ZOOM2, Beagleboard-XM, BeagleBone, Raspbery-Pi, KwikByte KB9202, GumStix Overo, Spectrum Digital OSK5912, several non-ARM based and many customer proprietary boards

Embedded Linux Distros:
Custom “roll your own”, WindRiver, MontaVista, Angstrom, LTIB, OpenEmbedded, EmbeddedARM, ELDK, BuildRoot, OpenWRT, Yocto, Linaro, ARM Debian, Ubuntu for ARM

Kernel Components:
The PTR Group has extensive experience with Linux internals including efforts such as porting Linux to custom boards.  We have a long history of maintaining kernels for several ARM-based products, as well as custom kernel modifications throughout the kernel to meet memory footprint requirements, etc.  These modifications include low-level kernel architecture components (under Linux kernel arch/ directory), software/hardware interfacing, CPU pin setup/configuration, memory map layout logic and the drivers to enable custom CPLD and FPGA hardware.

Other components include modifications to networking, virtual memory manager, scheduler, exception framework, interrupt framework, multiprocessor synchronization, IPC, and file system major kernel subsystems.  Through our clients, many of the modifications have made it upstream into the mainline Linux kernel.

Device Drivers:
Examples of the extensive driver experience we have amassed over the years include numerous Ethernet, 802.11b/g/n/ac, IEEE 802.16, custom 802.16 (mobile mesh), IEEE 802.15.4 (mesh), USB client/host/OTG, serial, flash, PCI, PCIe, FibreChannel, I2C, SPI, T1/E1 WAN, DSL, audio (ALSA) and video device drivers, IPMI, and watchdog timers.
Customer-proprietary devices include:

  • UART serial device driver for custom FPGA
  • High data rate driver for AIS (Automatic Identification System) RF decoder FPGA and real time user space application
  • SEI (Specific Emitter Identification) RF decoder on custom cPCI board
  • Specialized high-speed ADC driver for Delphi ADC300 board used in RF decoding and capture
  • ADS7849 touch screen driver for handheld device
  • Custom high-speed interface (HSI) used to communicate between spacecraft and RF payload
  • Ported SystemACE driver to custom PowerPC hardware

The PTR Group has developed working solutions for cutting edge technologies including WiMAX (IEEE 802.16d) modem drivers, WiFi (IEEE 802.11a/b/g/n/ac) monitoring and testing tools, IEEE 1394 modem drivers for use in UWB wireless television transmission, satellite communication, SNMP monitoring systems and much more

Open-Source Software Development and the GPL

As a long-standing member of the open-source community, The PTR Group is well versed in working within the scope of the GPL (both V2 and V3) and well as a number of other open source license schemes.  We counsel our customers and help their legal staff understand the rights and obligations under those licenses to ensure that the customer stays in compliance without compromising their intellectual property.  When applicable, we work with the client to get their code upstream into the mainline kernel

OSS Development Techniques

Over the years, The PTR Group has stayed in sync with current open source development techniques and we support the establishment of good OSS development practices within our clients.  This includes the use of development tools such as subversion and git source management systems, the use of Eclipse with DSDP extensions, and the installation and configuration of systems like the TRAC bug tracking facility with LAMP servers for automating the software development process.

The PTR Group also contributes to user-space Linux projects.  The project contributions of PTR engineers include:

  • Original author of GRegex
    • A library to make working with regular expressions in C much easier
    • This is now a part of glibc since 2.14
  • Several kernel patches for the PowerPC kernel tree
  • Contributed convenience functions to Perl-Compatible Regular Expressions (PCRE) project
  • Developed documentation extraction tools for GNOME API
  • Developed the ftpput/ftpget applets for Busybox
  • Major contributions to the Orocos real-time control (robotics) project
  • Submissions to log4cpp, qwtplot3d and Macports projects
  • Developed Wiimote driver for Little John PalmOS OSS game console emulator
  • #2 contributor to Meld Linux Discussion Forum on a number of embedded Linux topics including both user-space and kernel-related issues