Overview
The PetaLinux toolkit can be used to build the YumaPro SDK code for Xilinx target boards.
- The 19.10-16 and 20.10-4 releases fully support cross compilation for PetaLinux.
- Installation and setup of the PetaLinux SDK is out of scope. This tutorial assumes the SDK has been correctly installed.
- The PetaLinux build environment scripts need to be sourced into the shell that is used to run "make" to build the software
- Several make command options specific to YumaPro are available for cross-compiling (described below)
- In the examples below the "aarch64-xilinx-linux target is used
- Other make parameters are allowed, unrelated to cross-compilation. They are shown in the example as positioned last, but the parameter order should not matter
Example:
make INC_PREFIX=/opt/SDK/sysroots/aarch64-xilinx-linux/usr/include \ YP_SYSROOT=/opt/SDK/sysroots/aarch64-xilinx-linux \ CROSS_TARGET=aarch64-xilinx-linux- \ EXTRA_CFLAGS="-march=armv8-a+crc -mtune=cortex-a72.cortex-a53" \ HOST=aarch64-xilinx-linux \ PRODUCTION=1 TIMER_MONO_CLOCK=1 WITH_CLI=1 WITH_YCONTROL=1
Make Parameters For PetaLinux Cross Compiling
Mandatory Parameters
CROSS_TARGET
CROSS_TARGET=<string>: Define the prefix to use for a cross target toolchain. Example CROSS_TARGET=arm-linux-gnueabi- Note that cross compiling requires that the target architecture linker finds the correct external libraries such as libxml2 Do not use this parameter for uCLinux. Use UCLINUX=1 Do not use this parameter for Yocto. Use BITBAKE=1 The tool names will be appended to the $(CROSS_TARGET) value if it is set. E.g. $(CROSS_TARGET)gcc will resolve to arm-linux-gnueabi-gcc
INC_PREFIX
INC_PREFIX=string: set the base string for the include path The default is $(DESTDIR)$(INSTALL_PREFIX)/include Used for cross-compiling to change the location for all built-in include file searches. The USER_INC parameter can be used to inject -I directives into the compiler command. The INC_PREFIX and USER_INC parameters can be used together.
HOST
HOST=string: standard make variable for cross-compile Must be set correctly together with CROSS_TARGET Example: make HOST=mips64-octeon-linux-gnu CROSS_TARGET=mips64-octeon-linux-gnu-
YP_SYSROOT
YP_SYSROOT=<path-string> : specify the --sysroot parameter for the compiler and linker. The poath cannot have any whitespace in it. Example: YP_SYSROOT=/opt/SDK/sysroots/aarch64-xilinx-linux Added to CFLAGS and CXXFLAGS: --sysroot=/opt/SDK/sysroots/aarch64-xilinx-linux
Optional Parameters
EXTRA_CFLAGS
EXTRA_CFLAGS=<string> : Additional compiler flags to add to the CFLAGS directive. It will be added to CPPFLAGS as well for C++ compilation