Emutex contributed to Intel® Quark™ SE BSP, providing its expertise and knowledge at all project levels.
INTRODUCTION
Our client contracted Emutex to contribute to the development of a set of drivers and libraries to enable the use of the Intel® Quark™ SE and the Intel® Quark™ Microcontroller Software Interface (QMSI) in an embedded system.
WHAT IS INTEL® QUARK™
The Intel® Quark™ SE is a low-power consumption system-on-chip that provides edge analytics by combining an x86 MCU with a sensor sub-system and pattern-matching capability through a hardware-accelerated engine. It is supported by Intel® System Studio for microcontrollers, an Eclipse-based* integrated development environment (IDE), which includes the Intel® Quark Microcontroller Software Interface (Intel® QMSI) board support package and Zephyr Project RTOS..
EMUTEX'S CONTRIBUTION
Emutex has contributed to three major projects related to Qark™ SE::
- The Quark™ Microarchitecture Software Interface (QMSI).
- Zephyr Real Time OS (RTOS).
- Integrated the Quark™ toolchain and software libraries with the Arduino IDE
THE QMSI
QMSI provides a comprehensive set of drivers that acts as a light and thin abstraction layer that enables software developers to exploit the full capability of the processor’s I/O ports and connected peripherals. During its development Emutex contributed to:
- The definition, implementation and/or enhancement of several device drivers, including I2C, SPI, UART and DMA and its support in other devices.
- The design and assembly of external hardware devices for driver testing
- The design, implementation and/or enhancement of unit and system integration tests including I2C, SPI, UART, PWM, Analog Comparators, DMA, memory protection and power states.
- The design, implementation and/or enhancement of example applications for several devices like I2C, SPI, UART and DMA.
- The design, implementation and/or enhancement of the Boot Rom and its support for DFU Util.
ZEPHYR OS
Zephyr supports Intel® microcontrollers by using the QMSI provided drivers through an abstraction layer. Emutex has helped in the development and integration of this layer assuring to guarantee the interoperability between Zephyr standard mechanisms and QMSI. For achieving a seamless integration the team has been involved in the development of the integration layer inside Zephyr and enabling the needed mechanisms in the QMSI drivers.
ARDUINO 101
Arduino™ 101 is the first Arduino™ board using Intel® SoC while keeping compatibility with other manufacturers’ versions. In this case, the software exposes mostly ARC I/O ports and the BSP guarantees full compatibility with Arduino™ sketches and the ability to flash the 101 board from Arduino™ Studio. For this project, Emutex team took QMSI as a base, but tailored it and developed specific functionalities to give full Arduino™ API support for the board.
Here are some of the ways in which Emutex provided its expertise:
- Designing and implementing standard libraries (I2C, SPI, PWM, ADC and EEPROM) for the Arduino IDE to integrate with the Arduino 101.
- Designing and implementing additional libraries (Accelerometer/Gyroscope & Bluetooth) not provided by any previous Arduino board.
- Designing and implementing a DFU class driver to provide a means for firmware download (cross-platform).
- Designing and implementing a serial monitor using cdc-acm (which provides a mailbox mechanism using the component framework between the Lakemont and the ARC module).
- Designing and implementing demos to demonstrate the capabilities of the Arduino 101 which consequently were showcased at Maker Faire Rome:
- Activity Tie with smart-phone interaction that provided three separate modes; step counter, sound detection & motion detection which helped exemplify the accelerometer & gyroscope. (see the project here)
- Destruction Derby contest using two toy cars controlled from a smart-phone instantiated the bluetooth on the chip. (see the project here)
- The Smart Dog Collar. (see the project here)
CONCLUSION
This is just one example of the work that Emutex has done to enable customers to bring new hardware designs to life with software. For other examples, and to learn more about the services and solutions that Emutex can provide, please visit our website at www.emutex.com.