Hello, I am not familiar with NXP Processors so please forgive my simple question. I have been using ARM+DSP processors from TI. Most of their processors have many high-speed communication links such as SRIO, 10G-Ethernet, and PCIE. In order to get these peripherals to work you must use an RTOS which they provide for free.
I would like to know if there is an RTOS that is provided by NXP to get the peripherals working? My co-workers has spent long time developing Baremetal projects and I realize that if I'm going to use these types of devices I'm going to use an RTOS.
Thank you,
Joe
Hi Joe:
NXP provides FreeRTOS to get the peripherals working. Please refer to below link for more info
https://docs.aws.amazon.com/freertos/index.html
Regards
Daniel
Hello, thank you for responding to my post. Will the RTOS help get the PCIe and SATA interfaces working on the LS1012A processor? What are you comments on writing Baremetal code instead of using an RTOS? It's so hard to convince management that today's modern processors require an RTOS.
Respectfully,
Joe
Hi Joe:
As for my experience, systems with bare metal code can have good performance and good memory footprint. If your application is very simple and doesn't need multi tasks, bare metal code is good.
As your applications grows in size or complexity, maybe RTOS is a better choice.
An RTOS can have have multiple tasks simultaneously and can switch between them based on events and priorities. It has many synchronization tools that are included by default in a RTOS. for example, mutex, semaphore, events, message queue.. For bare metal code, it is a big problem.
An RTOS has a scheduler that can decide which task to be executed based on the priority of the task. It can suspend a task in order to execute a higher priority task.
Also it is easier to develop with an RTOS. and code can be ported to other platform.
......
For PCIe and SATA interfaces working on the LS1012A processor, I would suggest you ask questions on OorIQ forum
https://community.nxp.com/community/qoriq
Regards
Daniel