10. zynq应用开发--camke编译

使用SDK工具

如果只做 Linux 应用开发,只需要一个 sdk.sh 文件即可,可以脱离 Petalinux 和 Vitis,也可以编译其三方的应用,可以说一劳永逸。

  • 配置根文件系统
    • petalinux-config -c rootfs
  • 编译SDK
    • petalinux-build --sdk
      • Linux主机或者虚拟机需要连接网络,如果在之前设置离线编译的此时应该打开网络使能,而后可以关闭网络使能
      • !\[Pasted image 20241224165450.png]
    • petalinux-package --sysroot
      • petalinux-package --sysroot 是PetaLinux工具套件中的一个命令,用于生成一个系统根文件系统(sysroot),这个sysroot包含了为目标平台(如Xilinx的Zynq或Zynq UltraScale+ MPSoC等)编译的库、头文件和其他必要的文件
  • 安装SDK
    • ./project/images/linux/sdk.sh -d path
      • 默认在petalinux路径
  • 使用SDK
    • source 设置环境变量
      • source .../sdk/environment-setup-aarch64-xilinx-linux
    • 查看环境变量
      • aarch64
      • echo $CC
      • echo $CXX

使用cmake
  • 修改CMakeLists.txt
    • VERSION : 选择编译版本
    • project:自定义项目名称
    • CMAKE_SYSTEM_PROCESSOR :
      • MPSOC 64位:aarch64
      • zynq :arm
    • CMAKE_C_COMPILER : 根据实际修改(echo $CC)
    • CMAKE_CXX_COMPILER: 根据实际修改(echo $CXX)
    • CMAKE_FIND_ROOT_PATH :根据实际修改(echo $CC)
    • CMAKE_C_FLAGS :根据实际修改(echo $CC)
cmake 复制代码
cmake_minimum_required(VERSION 3.10)

# 定义项目名称
project(MyProgram)

# 设置交叉编译器
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(CMAKE_C_COMPILER aarch64-xilinx-linux-gcc)
set(CMAKE_CXX_COMPILER aarch64-xilinx-linux-g++)
set(CMAKE_FIND_ROOT_PATH /media/kemao/linux/pkg_install/sdk/sysroots/aarch64-xilinx-linux)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

# 设置编译选项
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8-a+crc -mtune=cortex-a72.cortex-a53 -g -Wall -O2")

# 添加可执行文件
add_executable(${PROJECT_NAME} hello.c)

# 调试目标
add_custom_target(debug
    COMMAND aarch64-xilinx-linux-gdb ${PROJECT_NAME}
)
使用CMake构建项目:
  • 安装:sudo apt-get install cmake
  • 检查:cmake --verison
  1. 创建构建目录:
bash 复制代码
mkdir build 
cd build
  1. 运行cmake生成构建文件:
bash 复制代码
cmake  ..
  1. 构建项目:
bash 复制代码
make
相关推荐
szxinmai主板定制专家2 天前
面向虚拟电厂协调控制:RK3588+FPGA+AI边缘控制器设计思路与算力评估
人工智能·嵌入式硬件·fpga开发·机器人·jetson·zynq·振动采集
JMchen2 天前
集成第三方 C/C++ 库到 Android NDK 项目:OpenCV 与 FFmpeg 实战指南
android·opencv·cmake
szxinmai主板定制专家7 天前
基于Zynq的高精度多通道数据采集卡完整解决方案(工业振动/高速采集/边缘传输)
fpga开发·zynq·数据采集卡
吉他英雄一里8 天前
zynq入门教程
fpga开发·zynq
火花页.9 天前
【正点原子ZYNQ领航者7020】PS写ramPL读ram实验
zynq
szxinmai主板定制专家15 天前
RK3588+FPGA异构架构|高速数据采集+边缘AI落地应用全解析
人工智能·嵌入式硬件·fpga开发·架构·zynq
阿钱真强道15 天前
15 嵌入式操作系统 | 库的下载、编译、安装与验证(libubox / ubus / uci)
ubuntu·cmake·uci·ubus·libubox
szxinmai主板定制专家15 天前
FPGA高速IO+RK182X AI算力|RK3576+CODESYS工业自动化运动控制平台设计
运维·人工智能·嵌入式硬件·fpga开发·自动化·zynq
阿钱真强道16 天前
22 嵌入式操作系统 | 串口命令行调试(socat / stty / printf / hexdump)
ubuntu·cmake·uci·ubus·libubox
五_谷_丰_登24 天前
cmake脚本学习——持续更新
脚本·cmake