宜昌建设网站品牌策划案例
一、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>; // Rightdebounce-interval = <20>; // 20ms};gpio-key2 {label = "pl_key2";gpios = <&gpio0 58 GPIO_ACTIVE_LOW>;linux,code = <106>; // Leftdebounce-interval = <20>;};gpio-key3 {label = "ps_key1";gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;linux,code = <103>; // Updebounce-interval = <20>;};gpio-key4 {label = "ps_key2";gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;linux,code = <108>; // Downdebounce-interval = <20>;};touch-key {label = "touch_key";gpios = <&gpio0 59 GPIO_ACTIVE_HIGH>;linux,code = <28>; // ENTERgpio-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. 启动
串口终端