Common LPC driver API

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Common LPC driver API

Jump to solution
1,720 Views
j_bos
Contributor I

The CMSIS website states that it defines

"a common approach to interface to peripherals"

for example it shows a Driver API for an USART. However, for LPC devices, there is the LPCopen library (LPC1100 - 4300 series) or the MCUXpresso SDK (LPC800 and LPC541xx series) where both do not use this CMSIS USART Driver API, instead they both have their own USART API.

Can I conclude that there is no common USART API for all LPC devices even though CMSIS sort of suggests that this exists?

See also https://community.nxp.com/t5/LPCXpresso-IDE-FAQs/CMSIS-support-in-LPCXpresso-IDE/m-p/469104 and https://stackoverflow.com/questions/25681041/cmsis-and-peripherals-drivers

Tags (2)
1 Solution
1,591 Views
j_bos
Contributor I

In a MCUXpresso SDK archive there are two sets of drivers;

  1. CMSIS drivers with prefix fsl_* and the postfix *_cmsis.* in *\SDK_x.x.x_device\devices\device\cmsis_drivers.
  2. NXP drivers with the prefix fsl_* in *\SDK_x.x.x_device\devices\device\drivers

For the LPC1100 - 4300 series both sets are not available and creating these is currently not planned by NXP, see Supported Devices Table. So the answer to the question above is; yes.

View solution in original post

0 Kudos
3 Replies
1,592 Views
j_bos
Contributor I

In a MCUXpresso SDK archive there are two sets of drivers;

  1. CMSIS drivers with prefix fsl_* and the postfix *_cmsis.* in *\SDK_x.x.x_device\devices\device\cmsis_drivers.
  2. NXP drivers with the prefix fsl_* in *\SDK_x.x.x_device\devices\device\drivers

For the LPC1100 - 4300 series both sets are not available and creating these is currently not planned by NXP, see Supported Devices Table. So the answer to the question above is; yes.

0 Kudos
1,633 Views
Omar_Anguiano
NXP TechSupport
NXP TechSupport

Hello

If the SDK is available for the device we suggest using it. When the MCUXpresso SDK is not available we suggest the LPCOpen libraries.
Here you can consult the recommended software for each device: https://community.nxp.com/t5/MCUXpresso-General-Knowledge/MCUXpresso-Supported-Devices-Table/ta-p/11...

Let me know if this solves your questions, if you have more questions do not hesitate to ask me.
Best regards,
Omar

0 Kudos
1,305 Views
danielholala
Senior Contributor II

Hi Omar,

you are recommending to use the SDK API (e.g., fsl_usart.h) when available. 

So my question is: why does the "Peripherals" tools generate code using CMSIS based API (e.g., fsl_usart_cmsis.h) instead? 

UPDATE/EDIT: Peripherals tools generates different code based on user's choice. If "Peripheral drivers (Universal)" is selected, CMSIS based code is generated. If "Peripheral drivers (Device specific)" is selected, code based on standard SDK driver is generated. However, I did not find any documentation about this.