Linux
We have developed experience in embedded systems. For more than a decade we have worked and developed the Linux operating system. Linux is the core of most of the embedded systems. We are active daily in the development of Board Support Packages (BSP), device drivers, porting of protocol stacks and development of applications for the user space.
Typical tasks we have performed are:
• Porting services or required packages in the bsp
• Adjust the linux kernel or bootloader for the customer platform
• Development of several device drivers
A Linux BSP is the whole set of system customizations and it is required to enable Linux to run. The Amarula Solutions development team has been involved in various BSP customization activities. We have been successful with the products we were working on.
Our experience covers various architectures like: ARM, x86, PowerPc and SH processors. Regarding the ARM platform we collaborated with several vendors, such as Freescale (i.MX), Texas Instruments (OMAP) and Marvell (PXA).
Development of device drivers
This activity can be considered a sub-activity of BSP customization. We made multiple customizations and / or optimizations and developments drivers from scratch. The following list outlines some of the subsystems we have worked on:
Example of subsystems we have worked on:
• Block subsystem (disk, i/o, …)
• Video subsystem
• Multiple subsystem
• IIO subsystem
We also have experience in kernel core customizations such as Scheduler and Memory Management.
Android
One of Android’s success factors is its openness. Most of the Android software is licensed with Apache 2.0. Android uses Linux as a kernel. This was due to the well-known Linux models in terms of security, process and memory management, drivers and protocol stacks. Between the kernel and the application layer, Android has designed a complete mobile software stack. In this way he can take advantage of well-known projects outside the open source ecosystem. This approach has allowed the rapid growth of Android by covering the entire set of features exposed by a modern mobile device.
Our portfolio of Android projects allows us to help you in any part of the design of your product. We can focus on your specific needs, reducing development time and offering you solid and effective solutions.
Thanks to Amarula Electronics we are able to help you also in the hardware and mechanical design.
Typical tasks we have performed:
• Integration of components within Android
• Support kernel and bootloader
• Industrialization and design
• Power management and Networking
• Camera and multimedia
• Board design
We have rich experience in integrating custom components into Android devices as card readers, custom LEDs or various secure elements used for payments, cryptographic operations or tampering management.
We can provide complete support in low-level parts written in native C / C ++, as support on JNI Java interfaces. We can easily wrap any custom HW component protocol in the Android.
We can extend the android SDK as an sdk addon to export a completely new interface. Otherwise in some specific cases, the integration can be effective ub the existing Android APIs. We have experience in adapting HW NFC products. These products are very specific in the standard Android NFC stack together with the NXP and NCI implementation packages.
Compatibility
We follow the definition of Android compatibility whenever possible. We want to keep the system compatible and manageable. The custom API is provided through additional shared libraries. To clearly separate the custom API from the AOSP API. The Compatibility Test Suite (CTS) has been part of our quality control team for many years.
Development Test
The developer code always has unit tests and integration tests that use Android test frameworks. All changes to the operating system can be tested quickly by writing particular code tests which helps to develop very efficiently.
Have a project idea in mind?