As extracted from the SDK documentation:
PAL - Peripheral Abstraction layer
- Interface abstraction for a family of peripherals (E.g. LPUART + LINFlexD_UART + eSCI + FlexIO_UART + etc.)
- Single layer per SDK
- Same generic API on multiple platforms
PD - Peripheral Drivers
- IP dedicated low-level drivers
- Designed for efficiency and IP features set coverage
When to use the Peripheral Abstraction Layer (PAL)?
- Whenever an application needs a simplified, generic interface that abstracts as much as possible the underlying silicon features.
- Whenever developing portable higher level generic code that is meant to run on different NXP platforms. This may include anything from low level console utility libraries to communication stacks like TCP/IP.
When to use Peripheral Drivers?
- Whenever developing for high efficiency (code size, execution speed, etc.) or planning to use specific peripheral features.
thank you very much for the clarification, that makes sense. I can see now the difference. I noticed, that the PALs are enabling/using other resources (e.g. Timer Interrupts,...) that one has to be aware of in the design.