Petalinux最简开发

一、Petalinux

Petalinux工具是Xilinx推出的嵌入式Linux开发套件,包括了u-boot、Linux Kernel、device-tree、rootfs等源码和库,以及Yocto recipes,可以很方便的生成、配置、编译及自定义Linux系统。

二、使用Petalinux定制Linux系统

1. 创建Vivado硬件平台

根据项目需求搭建Vivado硬件平台,导出.hdf文件。
这里直接使用正点原子搭建的Phosphor_7020硬件平台。

硬件平台架构如下:
在这里插入图片描述

2. 创建petalinux工程

创建一个Petalinux工程,工程模板为zynq平台模板,工程名为ALIENTEK-ZYNQ。

petalinux-create -t project --template zynq -n ALIENTEK-ZYNQ

3. 将hdf文件导入petalinux工程

cd ALIENTEK-ZYNQ //进入到petalinux工程目录下 
petalinux-config --get-hw-description ../hdf/Phosphor_7020.sdk/ //导入hdf文件

4. petalinux工程参数配置

内核、跟文件系统直接使用Xilinx官方提供的,无需修改。
设备树需要根据开发板修改一下。

vi project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
/include/ "system-conf.dtsi"
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "Phosphor Development Board"; 
	compatible = "alientek,zynq-7020","xlnx,zynq-7000";

	leds {
		compatible = "gpio-leds";

		gpio-led1 {
			label = "led1";
			gpios = <&gpio0 54 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};

		gpio-led2 {
			label = "pl_led0";
			gpios = <&gpio0 55 GPIO_ACTIVE_HIGH>;
			default-state = "on";
		};

		gpio-led3 {
			label = "pl_led1";
			gpios = <&gpio0 56 GPIO_ACTIVE_HIGH>;
			default-state = "on";
		};

		gpio-led4 {
			label = "ps_led0";
			gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
			default-state = "on";
		};

		gpio-led5 {
			label = "ps_led1";
			gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
			default-state = "on";
		};

		gpio-led6 {
			label = "led2";
			gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
			default-state = "on";
		};
	};

	keys {
		compatible = "gpio-keys";
		autorepeat;

		gpio-key1 {
			label = "pl_key1";
			gpios = <&gpio0 57 GPIO_ACTIVE_LOW>;
			linux,code = <105>;   // Right
			debounce-interval = <20>;  // 20ms
		};

		gpio-key2 {
			label = "pl_key2";
			gpios = <&gpio0 58 GPIO_ACTIVE_LOW>;
			linux,code = <106>;   // Left
			debounce-interval = <20>;
		};

		gpio-key3 {
			label = "ps_key1";
			gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
			linux,code = <103>;   // Up
			debounce-interval = <20>;
		};

		gpio-key4 {
			label = "ps_key2";
			gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
			linux,code = <108>;   // Down
			debounce-interval = <20>;
		};

		touch-key {
			label = "touch_key";
			gpios = <&gpio0 59 GPIO_ACTIVE_HIGH>;
			linux,code = <28>;   // ENTER
			gpio-key,wakeup;
			debounce-interval = <20>;
		};
	};

	beeper {
		compatible = "gpio-beeper";
		gpios = <&gpio0 60 GPIO_ACTIVE_HIGH>;
	};

	usb_phy0: phy0@e0002000 {
		compatible = "ulpi-phy";
		#phy-cells = <0>;
		reg = <0xe0002000 0x1000>;
		view-port = <0x0170>;
		drv-vbus;
	};
};



&i2c0 {
	clock-frequency = <100000>;

	eeprom@50 {
		compatible = "24c64";
		reg = <0x50>;
		pagesize = <32>;
	};

	rtc@51 {
		compatible = "nxp,pcf8563";
		reg = <0x51>;
	};
};


&usb0 {
	dr_mode = "otg";
	usb-phy = <&usb_phy0>;
};

5. 编译Petalinux工程

petalinux-build

6. 制作BOOT.bin启动文件

启动文件BOOT.BIN一般包含fsbl文件、bitstream文件和uboot文件。

petalinux-package --boot --fsbl --fpga --u-boot --force

7. 制作SD启动卡

将SD卡分为boot和rootfs两个分区。
将Petalinux工程ALIENTEK-ZYNQ/image/linux目录下的启动文件BOOT.BIN和内核镜像image.ub复制到boot分区。

8. 启动

串口终端

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值