This i.mx8 controller family is a very complex device with many functional blocks that each of them is a whole world of complexity in its own right. ARM has delivered the CMSIS library as a common API for its ARM Cortex devices. Something equivalent is required so that not everyone using it has to reinvent the wheel! For the CMSIS library every licensee has to supply the drivers for its peripherals so that CMSIS offers a common API to any ARM Cortex and it is the license that delivers the libraries to make available the peripheric functions of their implementation. A device like the i.MX8 family, as shown in the evaluation kit multi sensorics from NXP mades the wealth of functionality visible.


  • albrecht wrote

    I agree that HW/OS independent APIs are necessary to feed any i.MX8 based board to a broader audience. The CMSIS library you mentioned seems to be for Cortex-M devices only, and only for the ARM core itself. What about the onboard peripherals that do not come from ARM but from NXP?

    For the i.MX6, wehn Freescale was still independent, there used to be a free "Platform SDK" with a community-friendly BSD license. Something of that sort, but more complete and actively maintained, would be necessary.

  • Hellmut1956 wrote

    My work horse is the LPCXpresso1769 from NXP that uses the LPC1769 controller, a Cortex M3 from NXP. Thats the great think about CMSIS, ARM licensing his core, here the Cortex M3 demands in its license to NXP to deliver de CMSIS library for the peripheral it combines with the ARM Cortex M* core. Due to this, i.e. you can get for the FreeRTOS a book that teaches how the RTOS is implemented and works with the LPC1769.

    Since NXP acquired Freescale, NXP has adapted its free IDE and now it has the name MCUXpresso IDE, which formerly was called LPCXpresso IDE. This is to document that the IDe is now also supporting devices coming from Freescale!