Is there an example for I2C with freeRTOs or should I go to the MCU manufacturer's libraries? (PIC32MZ)


I must implement the management of an I2C device.

The manufacturer of the microcontroller I’m using (PIC32MZ) seems to me to have its own libraries.

Is there a way to implement it with freeRTOs without resorting to such libraries?

You can always implement peripheral drivers yourself - to do so you would need the PIC32MZ user manual which will provide details of all the required hardware registers. Most people will use the drivers provided by the MCU vendor though - at least in the first instance.

1 Like

Thanks for answering.

It seems that it is that way.

I wanted to take advantage of the freeRTOs libraries, but it seems that they are only for some peripherals, for example I managed to create a TCP/IP server without resorting to the manufacturer’s libraries.

Using the “bare metal” drivers provided by the manufacturer works well under freeRTOS; interrupt management (connecting a handler to an interrupt or exception, enabling and disabling interrupts, and other things that affect the interrupt controller in the microcontroller are done through fairly light-weight system calls, but the rest is handled through the driver APIs.

1 Like


Thank you very much for answering.
I used the manufacturer’s libraries and it works fine.