Takis Zourntos

two sets of API/driver functions ... there's the kind in the SDK, yet another that comes preloaded with MCUXpresso... why?

Discussion created by Takis Zourntos on May 18, 2019
Latest reply on May 30, 2019 by Takis Zourntos



   I was wondering if anyone could shed some light on this issue.


   I am working with the LPC54114 board, a.k.a the OM13089 board, but I am assuming this issue exists for other MCUs/boards as well.


   I am puzzled about the existence of two separate sets of API/driver functions offered by NXP which seem to do essentially the same things. Is there a reason for the redundancy?  For example, to work with the SCTimer and PWM, on the one hand I could use: Chip_SCTPWM_Init(), Chip_SCTPWM_SetRate(), Chip_SCTPWM_SetDutyCycle(), and Chip_SCTPWM_Start(). But I could also use (available via the SDK): SCTIMER_Init(), SCTIMER_SetupPwm(), SCTIMER_StartTimer(), etc.


   As you can see, one set of board-level API functions, are prefixed by "Chip_". They come in a zip archive as part of MCUXpresso. To use these functions, there is just one massive "board.h/board.c" library that must be included in your application. The other API/driver functions seem like they are more suited to using the config tool, and a specific "fsl_" driver must be included in your application.


   I was just wondering what the design intention behind these sets of functions are, and whether one set is becoming obsolete. Which one should I invest my time learning about and/or using?


   Any insights would be greatly appreciated...