Software components include many types of code from ROM, downloaded firmware, real-time software, and application software.
- Real-time and application software:
- Arm application real-time processors.
- Platform processing unit (PPU) MicroBlaze™ triple-redundant processor.
- MicroBlaze processors instantiated in the PL.
- Embedded firmware
- PLM firmware generated by the design tools to program the PL using the configuration frame unit (CFU).
- PSM firmware to configure the device and provide power management.
Software has several hardware mechanisms to communicate between processors.
- Inter-Processor Interrupts with small message buffers.
- Set of 32 mutex registers, PMC_MUTEX_n .
Software can be developed on several platforms.
- Bare-metal software stack with standard C libraries: libc and libm, based on the open source Newlib library.
- Middleware libraries that provide networking, file system, and encryption support.
- Application examples include test applications.
- Linux-based tools and operating system software including:
- PetaLinux to quickly build an embedded OS.
- U-Boot and Yocto-based tools.
The software environments are described in the Versal ACAP System Software Developers Guide (UG1304).
- Xilinx system debugger (XSDB) in coordination with Arm CoreSight™ .