# 2.Build Software

# 2.1 For PhenixPro Devkit

This section will show you a simple way to build software for PhenixPro Devkit V2.0

# 2.1.0 u-boot

Get u-boot source code from github:

git clone https://github.com/RobSenseTech/PhenixPro_Devkit_V2.0
cd PhenixPro_Devkit_V2.0/uboot-xlnx

Make the configuration effective:

make phenixpro_devkit_config

Complie u-booot:

make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- -j8

Last step, rename u-boot to u-boot.elf.And you can use it to create BOOT.bin by SDK.

Note: compile error handle:

fatal error: openssl/evp.h install openssl:

sudo apt-get install libssl-dev

./bin/sh: 1: dtc: not found install dtc:

sudo apt-get install device-tree-compiler

# 2.1.1 Linux Kernel

Enter the linux kernel directory:

cd PhenixPro_Devkit_V2.0/linux-xlnx-4.9

Compile kernel:

cp arch/arm/boot/phenixpro-devkit-config/devkit-config .config

make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- menuconfig
Device Drivers  --->
        [*]Pulse-Width Modulation (PWM) Support  --->
        <*>   Xilinx PWM support

make ARCH=arm UIMAGE_LOADADDR=0x8000 CROSS_COMPILE=arm-xilinx-linux-gnueabi- uImage -j8

# 2.1.2 Linux Devicetree

Generate dtb file with command

cd PhenixPro_Devkit_V2.0/linux-xlnx-4.9
./mkdtb.sh

# 2.1.3 Linux Filesystem

Get Linux Filesystem from github:

https://github.com/RobSenseTech/PhenixPro_Devkit_Platform

generate Linux Filesystem with command

cd PhenixPro_Devkit_Platform/filesystem/ramdisk/
./mkramfs.sh rootfs

question 1: how to run your own application in Phenix Pro board.

if you want to run your own application,before you make Linux Filesystem,you must put you executable file in /usr/, our arducopter executable file also at here.

question 2:how to bind your own application to a specific CPU core.

our arducopter application was bound to run in a specific CPU core,if you want to do the same,reference document:/etc/init.d/rcS.

A command named "taskset" can achieve your goal.