8.zynq编译应用程序
MPsoc开发应用的三种方法
- 方法一:使用petalinux工具
- 方法二: 使用vitis工具
- 方法三:使用SDK工具
1. 使用petalinux工具
-
使用petalinux命令创建程序模版:
- petalinux-create -t appd --template -n myapp --enable
- petalinux-create -t apps --template c/c++ -n myapp --enable
-
在程序文件中编写应用程序
- cd <plnx-proj-root>/project-spec/meta-user/recipes-apps/myapp
- cd <plnx-proj-root>/project-spec/meta-user/recipes-apps/myapp
-
使用petalinux命令编译程序
- petalinux-build -c 应用程序名称
- petalinux-build -c myapp
- petalinux-build -c 应用程序名称
2. 使用vitis工具
这里不进行记录,因为不想安装vitis,只记录实现思路
- 在linux主机或者虚拟机中安装vitis
- 打开vitis创建Linux应用
- 编写Linux应用
- 编译工程
- 将elf文件放到SD卡中
- 启动开发板执行elf文件
3. 使用SDK工具
如果只做 Linux 应用开发,只需要一个 sdk.sh 文件即可,可以脱离 Petalinux 和 Vitis,也可以编译其三方的应用,可以说一劳永逸。
- 配置根文件系统
- petalinux-config -c rootfs
- 6.petalinux根文件系统配置(filesystem package)
- 7. petalinux 根文件系统配置(package group)
- 编译SDK
-
petalinux-build --sdk
- Linux主机或者虚拟机需要连接网络,如果在之前设置离线编译的此时应该打开网络使能,而后可以关闭网络使能
-
petalinux-package --sysroot
petalinux-package --sysroot
是PetaLinux工具套件中的一个命令,用于生成一个系统根文件系统(sysroot),这个sysroot包含了为目标平台(如Xilinx的Zynq或Zynq UltraScale+ MPSoC等)编译的库、头文件和其他必要的文件
-
- 安装SDK
- ./project/images/linux/sdk.sh -d path
- 默认在petalinux路径
- ./project/images/linux/sdk.sh -d path
- 使用SDK
-
source 设置环境变量
- source …/sdk/environment-setup-aarch64-xilinx-linux
-
查看环境变量
- aarch64
- echo $CC
- echo $CXX
-
- 在makefile中使用
- 指定编译器路径(全部参数,尤其是sysroot)
- echo $CC
- echo $CXX
# 定义交叉编译器前缀
CROSS_COMPILE := aarch64-xilinx-linux-
# 定义编译器
CC := $(CROSS_COMPILE)gcc
# 其他编译工具
CXX := $(CROSS_COMPILE)g++
LD := $(CROSS_COMPILE)ld
AR := $(CROSS_COMPILE)ar
# 编译标志
CFLAGS := -march=armv8-a+crc -mtune=cortex-a72.cortex-a53 --sysroot=/media/kemao/linux/pkg_install/sdk/sysroots/aarch64-xilinx-linux -g -Wall -O2
# 目标文件
TARGET := my_program
# 源文件
SRCS := main.c another_file.c
# 生成的目标文件
OBJS := $(SRCS:.c=.o)
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(OBJS) $(TARGET)
debug:
$(CROSS_COMPILE)gdb $(TARGET)
# 这里是示例,实际运行需要根据你的目标设备或仿真器来决定
run:
# 你可能需要使用QEMU或将程序传输到目标设备上运行
原文地址:https://blog.csdn.net/ssh18581030544/article/details/144721694
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!