These codes are cpmpiled in Vivado SDK 2018.2 in release mode use -O3 optimization. You should add -static in Liunx g++ linker cmd, and m in Linker->Libraries.
This project is tested in Zedboard and ZCU102 rev1.1. For Zedboard and ZCU102, both reserve 256MB DDR memory for PL.(Zedboard:reserved memory base address:0x1000_0000, memory size 0x1000_0000; ZCU102 start addr 0x6000_0000, size 0x1000_0000). More informations about Linux Reserved Meomory are available in Xilinx's Wiki Linux Reserved Memory.