The basic steps are as follows:
- Create a user application by running
petalinux-create -t apps
from inside a PetaLinux project on your workstation:$ cd <plnx-proj-root> $ petalinux-create -t apps --template <TYPE> --name <user-application-name> --enable
For example, to create a user application called myapp in C (the default):
$ petalinux-create -t apps --name myapp --enable
or:
$ petalinux-create -t apps --template c --name myapp --enable
To create a C++ application template, pass the
--template c++
option, as follows:$ petalinux-create -t apps --template c++ --name myapp --enable
To create an autoconf application template, pass the
--template autoconf
option, as follows:$ petalinux-create -t apps --template autoconf --name myapp --enable
The new application sources can be found in the <plnx-proj-root>/project-spec/meta-user/recipes-apps/myapp directory.
- Change to the newly created application directory.
$ cd <plnx-proj-root>/project-spec/meta-user/recipes-apps/myapp
You should see the following PetaLinux template-generated files:
Table 1. Adding Custom Applications Files Template Description <plnx-proj-root>/project- spec/meta-user/conf/user-rootfsconfig Configuration file template - This file controls the integration of your application into the PetaLinux RootFS menu configuration. It also allows you select or de-select the app and its dev, dbg packages into the target root file system Makefile Compilation file template - This is a basic Makefile containing targets to build and install your application into the root file system. This file needs to be modified when you add additional source code files to your project. README A file to introduce how to build the user application. myapp.c for C; myapp.cpp for C++
Simple application program in either C or C++, depending upon your choice. Note: If you want to use the build artifacts for debugging with the third party utilities, add the following line in <plnx-proj-root>/project-spec/meta-user/conf/petalinuxbsp.conf:RM_WORK_EXCLUDE += "myapp"
Note: You can find all build artifacts under ${TMPDIR}/work/aarch64-xilinx-linux/myapp/1.0-r0/.Note: Applications created using thepetalinux-create -t apps
command have debug symbols by default in the following path if you comment outrm_work
: <plnx-proj-root>/build/conf/local.conf.<plnx-proj-root>/build/tmp/work/aarch64-xilinx-linux/<app-name>/1.0-r0/packages-split/<app-name>-dbg/usr/bin/.debug/<app-name>.Tip: Mapping of Make file clean withdo_clean
in recipe is not recommended. This is because Yocto maintains its owndo_clean
. - myapp.c/myapp.cpp file can be edited or replaced with the real source code for your application. If you want to modify your custom user application later, this file should be edited.
CAUTION:
You can
delete the app directory if it is no longer required. You must also remove the line:
CONFIG_myapp
from <plnx-proj-root>/project-spec/meta-user/conf/user-rootfsconfig.
Deleting the directory by keeping the mentioned line throws an error.