Board Support Packages

Data Patterns boasts of a dedicated team for the development and porting of Board Support Packages (BSP) for various platforms and architectures. We are experts in BSP development for processor architectures like x86, PowerPC, ARM and Blackfin. We create new device drivers for ARM, PPC, MIPS and x86- based devices as well. Applications can be developed to conform to Communication Protocols including 1553B, ARINC, RS422, RS485, DigiBus and many others.

Many of our BSP contributions, as a consequence of an experience of over two decades, come with ready-to-use configurable modules for many platforms and applications. For example, we can configure software so that it can be deployed flexibly for multiple OS on the same board. We can customize aspects in the OS design to fit the needs of the final product through reconfiguring the BSP, often without a need to touch the physical board. Our reusable modules for cross-platform support, results in reduced development time and effort, and a cost advantage we can pass on.

Data Patterns undertakes benchmarking and performance analysis of Processor, Kernel, File System and Networking Layers, and align with the OSI model as required. We also, using our domain and application architecture expertise, architect and design for scalability where required. All our BSP applications are tested rigorously for Functional Qualification and Acceptance.

Our BSP expertise extends to porting boot-loaders for processor boards, and porting Real-Time and Non-Real Time Operating System for different processor architectures. We also offer services for customizing Operating Systems add-ons, as per Customer Requirements. OS’s we can work with are Windows-CE, Linux, VxWorks, QNX, LynxOS, RTLinux, Xenomai, and niche OS’s like DeOS.

Data Patterns works cross-functionally, pooling the knowledge of our BSP team with our device driver team, to create drivers that support peripherals on-board such as a keyboard, touch screen, USB, audio and many others. A sampling of the comprehensive expertise we bring to the table is as below:

  • Memory devices – Flash (NOR/NAND), Compact Flash, NVSRAM
  • Bus interfaces – PCI/PCI-X/PMC, PCI-e/cPCI, VME, VXI, VPX, SRIO, RS232/422/485, SPI, I2C, I2S, CAN
  • I/O devices – USB, Ethernet, SATA/SCSI/SAS
  • Standard I/Os - Digital I/O, Analog I/O, Bluetooth, Zigbee, GPIB, LXI, GPS, SR10 Keypads
  • HID interface - Touchscreen
  • Ethernet MII and Physical Interface Driver
  • LCD Controllers and Display Drivers
  • Misc. devices – RTC, WDT, Timer/Counter, GPIO, Temperature Sensor etc.

We use an in-house software tool to configure Acceptance Test Procedures (ATP) across all applicable OS to qualify hardware with the board support package. A cross-platform in-house IDE tool covering compiling, debugging and profiling, called DP-Chrono, helps us capture and benchmark time and performance. In many instances, diagnostic routines support Built-in Tests in the region of 95% fault coverage. Our testing and optimization procedures are designed specifically for BSP and embedded devices, and not loosely generic.

Furthermore, cross-platform in-house expertise IDE covering compilation, debugging, memory leak detection, and performance profiling allow system-level tracing to help early detection of potential defects and contribute to root-cause-analysis for problems. Design and Code Reviews ensure requirement coverage and maintenance of software quality standards.

We have developed graphics libraries supporting Open GL ES/SC standards for safety – critical graphics applications. We have developed optimized, high performance, scalable Altivec vector processing libraries for Altivec engine supported processor architectures.

Performance is Benchmarked using tools like LMBench, LINX, LTS, etc. Aiding our designs are cross-platform IDE tools. Tools used range from VI Editor, GCC Compiler, Static Code Analyzer and CPP rule checker.

We are experts in embedded software development supporting tools like GNU tool chains for x86, PowerPC, ARM, AVR, AVR32, Embedded Linux Development kit, Visual DSP for Analog devices DSPs, and Keil for 8051 controllers. Other tools we use with ease are DIAB Toolchain, QNX Momentics IDE, Windriver Workbench, Freescale CodeWarrior IDE and Lauterbach IDE.

We deploy good practices, such as extending the use of DOXYGEN, the de facto standard for generating documentation from annotated code, to additionally flag code lines and generate traces for analyses and maintenance. This diminishes errors in the finished product and its intended use. Documentation (QT/AT, User Manual, Installation Manual etc. are a standard part of our deliverables. Documentation and development processes adhere to global standards including IEEE, MIL and DO. Maintaining development logs is never short-circuited as a process and helps us avoid recurring software errors.

Working with Data Patterns can accelerate progression, diminishing the time required to go through the learning curve, when adopting new tools and technologies. The result is a rapid return on your investment. Applying lessons learnt from past projects, we help you jump to not only the right answer, but to the best answer.

If you are particular that your vendor has the width and breadth of perspective that allows for rapid design, development, and realization of complex BSP systems for you, we are, in all likelihood your best bet.