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
Solved! Go to Solution.
In a MCUXpresso SDK archive there are two sets of 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.
In a MCUXpresso SDK archive there are two sets of 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.
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
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.