Newbie here (very limited experience with microcontroller/embedded system). V5 brain is already loaded with VEXos (firmware/OS). How come PROS (another OS) can be loaded onto V5 brain as well. V5 only has one processor (ARM cortex A9?)
There are actually 4 processors inside the V5 Brain (5 if you count the FPGA):
|VEXos Processor||One Cortex A9 at 667 MHz
Two Cortex M0 at 32 MHz each
|User Processor||One Cortex A9|
User programs, such as those from PROS, run exclusively on the “user” Cortex A9. VEXos runs on the “master” Cortex A9, with the Cortex M0’s and FPGA helping with certain tasks (touch input, 3-wire ports, etc.).
This master-user processor configuration was actually used in the previous generation microcontroller too. It means the firmware provided by VEX can always override user code, for example if rogue user code tries to run motors in (field control) disabled mode.
You can learn more about the architecture of V5 here:
PROS (for V5) is not an OS.
A PROS program is simply a compiled binary linked to the PROS kernel (a helper library) that runs on the V5, which talks directly to VEXos.
PROS does not talk to the motors directly, but instead calls VEXos commands.
You can use any programming language and it will automatically generate as a program, so you don;t have to worry about it not installing onto the brain.
Thanks for all the great info!
Another way of looking at things:
Think of vexOS not as an OS but as a Hardware Abstraction Layer (HAL). This is closer to the way PROS uses the vexOS SDK, in that we don’t use any of its scheduling functions-- instead we provide freeRTOS.
This combination of vexOS (hardware interface) and PROS (memory management and scheduling) could be considered an OS.