LPCOpen vs. CMSIS

Now that I have the UDP demo running in the simulator, I want to port it to an LPC1769 with Embedded Artists base board. Should be a matter of just retargeting FreeRTOS to the ARM and plugging in a different NetworkInterface.c, right? So I found a NetworkInterface.c for the LPC17xx, which includes a couple of header files from lpc17xx.cmsis.driver.library. FreeRTOSConfig.h includes board.h that comes from lpcboardnxplpcxpresso1769, an LPCOpen board library, which in turn brings in lpcchip175x6x, an LPCOpen chip library. And somehow, CMSISp1v30LPC17xx is getting involved but creating incompatible type declarations. I realize that I’m just not clear on the relationship between LPCOpen and CMSIS. Which of these libraries do I really need? Thanks.

LPCOpen vs. CMSIS

LPCOpen probably includes CMSIS Core, which is a thin layer to provide standard interfaces to Cortex registers, so you probably want to use both but from the single LPCOpen package not separately.

LPCOpen vs. CMSIS

I believe CMSISp1v30LPC17xx are older libraries which have been replaced by the LPCOpen libraries – so I would stick with LPCOpen. As mentioned, LPCOpen makes use of the very low level CMSIS libraries, just as the older CMSISp1v30LPC17xx library did, but has different higher level code. Regards.