当前位置: 首页 > news >正文

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. 启动

串口终端

在这里插入图片描述

http://www.dtcms.com/a/123002.html

相关文章:

  • (2)网络学习之堡垒机
  • 如何避免Python爬虫重复抓取相同页面?
  • 【数据结构】树状数组
  • RTT中断管理学习
  • 苹果电脑MAC系统安装
  • 【MySQL篇】mysqlpump和mysqldump参数区别总汇
  • 【C++游戏引擎开发】第11篇:GLFW、GLAD环境搭建与第一个三角形渲染
  • 09-Spring 与线程安全:IOC 与多线程下的坑与解法
  • 解锁Midjourney创作潜能:超详细提示词(Prompts)分类指南
  • 【42期获取股票数据API接口】如何用Python、Java等五种主流语言实例演示获取股票行情api接口之沪深指数最新分时BOLL数据及接口API说明文档
  • 三、使用Keil5新建STM32工程
  • 【学Rust写CAD】29 Alpha256结构体(alpha256.rs)
  • torch.meshgrid()
  • 【OCR】总结目前流行的主要的OCR工具
  • Jenkins安装流程
  • 联邦学习研读笔记
  • printf
  • 【NLP 面经 9、逐层分解Transformer】
  • 第十一章 Python语言-高阶技巧(终章)
  • Dubbo(44)如何排查Dubbo的服务依赖问题?
  • 17. git pull
  • 6、nRF52xx蓝牙学习(nrf_gpiote.c库函数学习)
  • 基于 AI智能体、大模型、RAG、Agent 等技术构建公司内部闭环智能问答系统的详细方案,结合 Spring Boot + Vue 管理系统 的改造思路
  • Http代理服务器选型与搭建
  • Starrocks的Bitmap索引和Bloom filter索引以及全局字典
  • 基于微信小程序的志愿服务系统的设计与实现
  • 数字图像处理作业3
  • fuse-python使用fuse来挂载fs
  • 汽车软件开发常用的建模工具汇总
  • Joomla 常用模块 - 在线用户与Joomla 常用模块 - 自定义HTML模块