Best in class embedded firmware and device driver development services from Embien
The software running on an embedded system is collectively called the firmware. Whether it is a simple bare metal or a complex Operating System based design, the firmware is responsible for the overall functionality of the system and to ensure a logical flow of events. Today with high level of integration and complex user requirements, there is a need to support multiple types of devices. Most likely, each of these devices will have a dedicated peripheral logic inside the SoC or close to it handling them. Every operating system provides a mechanism called Device Driver to enable access to the physical hardware.
Developing any embedded application or firmware is not possible without using the underlying hardware devices over this standard device driver interface. Being critical part which handles most of the data from/to the device, device driver design has to be thoroughly thought off. And the final quality of the firmware stems from right design of the driver.
At Embien, we have comprehensive device driver development experience on all the major operating systems including Linux driver development, WinCE/Windows driver development and Mac OS-X Driver development for various kinds of devices and bus technologies. Our drivers adhere to strict interface and quality requirements of the underlying embedded operating system to enable seamless interface with the device enabling to run faster without any performance bottlenecks. Our design ensures using minimum code to obtain maximum performance out of it. Also we are quiet versatile with Embedded Firmware Development without involving any operating systems as well.
Device Driver Development Expertise
We have highly developed skills in driver and diagnostics firmware development for a wide range of devices and technologies for embedded environments such as WinCE, Linux, Android, eCos, QNX etc. Our software is always optimized for your requirements and are done in the shortest development time. Our team practice quality process and stringent testing methodology to stream line development process.
Generally the device drivers operate in kernel space, where they have highest possible privileges vs applications running in lower privileged user mode. In newer generation of few operating systems like Windows, it is possible to have both User mode and kernel mode drivers. Embien is accustomed to both types of driver architectures. Apart of it, we are also highly capable in handling Flat Device Tree model (DTB files) in Linux, NDIS Drivers, run time configurable drivers, custom driver development from scratch, GStreamer/V4L2 integration, Mac OS X Audio/USB Driver development etc.
Some of the device driver development activities we have undertook so far includes, but not limited to
|Storage Devices||SD/MMC card, Disk on Chip, CF Card, NOR/NAND Flash, ATA/SATA Hard disks, USB Mass storage, EEPROM|
|Bus||USB Host and Device, USB OTG, PCI, PCIe, I2C and SPI|
|Display||HDMI, 480p to 1080p, VGA, HR-TFT, STN, Character LCD's and Axell Graphic Controllers|
|Protocols||TCP/IP, MODBUS-RTU/TCP, DeviceNet, CANOpen, Ethernet/IP, SNMP, UDP, TFTP etc|
|Audio||AC97, I2S, PCM, ADPCM Codec and MP3 Decoder|
|Video||Various Codecs, HW accelerator integration, Camera etc|
|Wireless Connectivity||GPS, GSM, Bluetooth Classic, Bluetooth Low Energy (BLE), Zigbee, WLAN 802.11b/g, WiFi-P2P, IR, 2.4GHz ISM|
|Wired Connectivity||Ethernet, HDLC, UART, CAN, PCI, Profibus, RS485, RS422 and RS232|
|Interfaces||Single/Multi-touch Touch Panels, Joy stick, Rotary Encoders, Keypad, Keyboard, mouse etc|
|Other Technologies||Accelerometer, Gyro, Compass, Barometer, Thermometer, Smart card, Battery, ADC, DAC, GPIO and DMA|
|RFID||Mifare IS014443A and ISO15693. Using Philips PN532, HID OEM75 and AWID SoC’s|
Embedded Firmware Development
Device Drivers are just one part of the story in embedded software development. When not using an OS or working in a highly resource critical environment, there may not be many layers of firmware but rather a single layer. We have done many such bare metal system developments successfully.
Our team is highly proficient in programming languages like C, C++, Assembly, Lua, Python, Java etc. We have accumulated a library of driver and firmware components that has stood the test of time over diverse application projects. Some of our firmware competence includes
- Low power designs like wearable, battery powered instrumentation devices for a larger battery life.
- Special processing algorithms for Analog Front Ends - AFEs
- Redundant system designs to enable high availability
- Displaying custom logo and splash screens
- Sub-second Quick boot for Linux and bare metal systems
- Using proprietary RTOS like those available in the BLE stacks/Communication stacks of vendors like TI, Freescale/NXP and Renesas
- Easy field upgradability with Over the Air Upgrade support
- Secure Boot
- Graphical interfaces like Sparklet UI library
Using Watchdog is a standard design procedure we follow to ensure prevention of dead lock state due to un-intended software effects.
Embien Technologies, well educated engineering team, also has extensive experience in porting proprietary and open source boot loaders like U-boot, e-boot, etc for custom hardware. We have written fast boot loaders to reduce the booting times of various systems. We have also developed Built-In Self-Test (BIST) and Power-On Self-Test (POST) diagnostics firmware to test the hardware integrity.
At Embien Technologies, our creative Embedded Firmware Development team endeavor to provide our best to develop firmware and device drivers to meet the strict needs of devices both in terms of performance and power requirements. With us, a specialist to take care of the low level firmware, the customer can concentrate in his part with peace of mind on higher level application software to showcase them in the right way to win the market. Feel free to get in touch with us right now for your firmware and Device driver development requirements.