To step back from creating acceleration applications for platform verification, you can run emulation of baremetal host applications to test the hardware inside the platform. This lets you quickly test the embedded platform against the drivers required to access elements of the hardware through the baremetal application. This can help platform developers validate platform peripheral features and custom IP in the platform with simple applications. This validation requires you to convert the extensible platform to a fixed version for baremetal software development. This validation does not need Linux software components.
To create a fixed form of the extensible platform use the following steps.
- Export a Fixed-XSA from the Extensible Hardware Platform
- As described in Platform Types, there
are two general types of platforms: extensible platforms and fixed platforms.
Fixed platforms support embedded software development, and do not let you modify
the PL kernels or the target platform defined by the device binary. However, the
AI Engine flow does let you modify and
recompile the graph application on a fixed platform.
A fixed-version of the hardware platform (.xsa) can be generated during the linking process of the Vitis compiler (
v++
) when building an Application Project as described in Building the Device Binary.In the Vitis IDE, the fixed-XSA can be generated by enabling the Export hardware (XSA) check box in the Hardware Link Project Settings view. For the command-line flow, the feature must be enabled by adding the following option to a configuration file used during thev++ --link
command:[advanced] param=compiler.addOutputTypes="hw_export"
The Vitis compiler exports a fixed hardware specification containing elements of the target platform with any acceleration kernels and the AI Engine graph fixed into the hardware. The fixed-XSA provides a BSP for the system design that you can use for developing embedded software applications.
Important: The fixed-XSA matches the specified build target of the Vitis compiler. So a hardware emulation capable fixed-XSA is generated from thehw_emu
build target, and a hardware capable fixed-XSA is generated from thehw
build target. - Generate a Baremetal Platform
-
- The fixed-XSA can be used to create or generate a baremetal fixed-version of an embedded processor platform, that can be used to validate the platform. Open the Vitis IDE and select . This opens the New Platform Project wizard.
- Specify the Platform project name and click Next. This opens the Platform page as shown in the figure below.
- In this dialog box you can define the platform by
specifying the name of the XSA
File, selecting the Operating system,
Processor
domain, and Generate boot
components for the platform.
Select standalone for Operating system, specify the Processor, and Architecture to define the domain. Enable Generate boot components as shown above, and click Finish to generate the baremetal embedded platform.
When the platform is complete, you should see it added to your repository of available platforms. You will use it to create a baremetal application project as described next.
- Validate the Baremetal Platform with an Application Project
- With the baremetal platform built, you can use a simple application running on the Arm processor to validate the platform. This approach lets you quickly exercise various features of the platform from compiled ELF files.