I'm studying the user guide for the mmWave SDK, and got a question on the layers or sub-components as presented in the doc; specifically the "drivers" layer.
This is what the guide has (snippers from various places):
So my question is, or what I don't understand, why are "IP Drivers" (IP - internal peripheral?) are part of mmWave SDK at all. Arent' / should' these logically sit as part of SoC support package , below or at level of TI-RTOS? What is the HW IP lowest block? Another set of low-level drivers?
Looking at what code includes, as e.g.:
#include <ti/drivers/soc/soc.h> #include <ti/drivers/esm/esm.h> #include <ti/drivers/crc/crc.h> #include <ti/drivers/uart/UART.h> #include <ti/drivers/gpio/gpio.h> #include <ti/drivers/mailbox/mailbox.h>
So by the include path, those seems to be part of a general driver's package from ti, which is probably/likely shared among few socs/mcus/chips.
On the other hand, mmWave SDK stack contains OSAL, which is, apparently used by the higher IP Drivers layer. I cannot think of low-level drivers requiring an OS, so would thus guess that the mmWave SDK extends the basic low-level drivers which are not using any OS services..?
Just from the driver table list from the SDK guide, I'm convinced I've seen at least couple of those drivers listed _without_ ever having used mmWave SDK, so I'm lost about what's the difference then if any.
e.g. GPIO, CRC, I2C, SPI etc ....
none of these I can think of requiring any OSAL (unless written specifically on top of a RTOS)
Whats the difference between drivers outside of mmWave SDK and inside this SDK?