查看: 1409|回复: 0

创龙TLZ7x-EasyEVM评估板试用7:Linux下动态加载PL程序和设备树

[复制链接]
  • TA的每日心情
    开心
    2022-8-6 16:18
  • 签到天数: 72 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2020-6-15 09:47:03 | 显示全部楼层 |阅读模式
    分享到:
    创龙TLZ7x-EasyEVM评估板试用7:Linux下动态加载PL程序和设备树
    本文拟就创龙科技提供的tl-axi-gpio-led-demo例程为例,演示生成、编译PL端设备树文件并动态加载PL程序和PL设备树,并在Linux系统下进行基本的测试,下面为具体步骤:
    1、拷贝创龙科技提供的第一张光盘的Demo\All-Programmable-SoC-demos\tl-axi-gpio-led-demo目录到一个工作目录,然后打开vivado2017.4工具的Tcl Console窗口,输入下面命令进入脚本所在目录,如cd C:/ tl-axi-gpio-led-demo/hw/src/scripts目录;然后执行vivado -mode batch -source tl_axi_gpio_led_project.tcl -tclargstlz7x-easyevm xc7z020clg400-2,Tcl脚本执行完成后,在工程源码" hw \src\runs"目录下生成对应开发平台的Vivado工程。
    2、进入Vivado工程所在的hw\src\runs路径,双击tl-axi-gpio_led.xpr文件打开工程,在工程左侧的Flow Navigator界面双击PROGRAM AND DEBUG下的Generate Bitstream进行编译,等编译完成后在Vivado的菜单栏"File -> Export -> Export Hardware…",弹出对话框中点击OK导出硬件描述文件,生成的文件位于工程目录的" hw\src\runs\tl_axi_gpio_led.sdk\tl_axi_uart_wrapper.hdf"文件,再点击Vivado的菜单栏"File -> Launch SDK",在弹出对话框中点击OK,打开XILINX SDK工具。
    3、把创龙科技提供第一张光盘的“Linux-system\device-tree-xlnx\src\”目录下Xilinx设备树源码device-tree-xlnx-gde1472e-v1.0.tar.gz文件拷贝到工作目录(要求非中文目录)并将其解压。
    4、添加device-tree-xlnx设备树源,点击Xilinx SDK菜单栏"Xilinx -> Reposistories",在弹出的XilinxSDK资源库配置界面中,点击"Local Repositories -> New…",弹出对话框中选中第3步解压后的目录,点击“确定”将其添加进来,如下图示:
    71.jpg
    5、生成PL设备树,点击Xilinx SDK菜单栏"File -> New ->Board Support Package",新建Board Support Package。在弹出的配置界面中,在把CPU选择为ps7_cortexa9_0,Board Support Package选项中勾选"device_tree"后其它用默认值,如下图示:
    72.jpg
    最后点击Finish完成配置,在弹出的界面,选择左侧的device_treen, 然后将右侧dt_overlay的值修改成true,该选项将支持设备树文件的动态加载,最后点“OK”。再打开虚拟机,在Ubuntu下新建"/home/tronlong/Zynq/Linux-system/device-tree-xlnx"工作目录,先把上一步生成的"hw\src\runs\tl_axi_gpio_led.sdk\device_tree_bsp_0\pl.dtsi"设备树文件拷贝虚拟机共享目录, 再用下面命令到该目录:
    cp -a /mnt/hgfs/share/pl.dtsi/home/tronlong/Zynq/Linux-system/device-tree-xlnx /
    使用上一篇试用报告编译Linux内核时生成的设备树编译器dtc工具,输入下面命令编译设备树:
    /home/tronlong/Zynq/Linux-system/kernel/scripts/dtc/dtc-q -@ -O dtb -o pl.dtbo pl.dtsi
    6、动态加载PL程序和设备树,首先把开发板连接好电源、串口线和网线,确保开发板的启动拨码开关编号1~6对应拨到了100101,然后上电启动进入文件系统,输入下面命令新建一个目录:
    mkdir -p /lib/firmware
    把Vivado工程编译生成的" hw \src\runs\tl_axi_uart.runs\impl_1"目录下的tl_axi_uart_wrapper.bin文件重命名为system_wrapper.bin,然后通过虚拟机共享目录拷贝到和第5步生成的pl.dtbo文件同一个目录,再通过Ubuntu自带的SSH工具把这两个文件复制到开发板上的"/lib/firmware"目录,输入命令类似如下:
    sudo scp /home/tronlong/Zynq/Linux-system/device-tree-xlnx/pl.dtboroot@172.16.129.185:/lib/firmware
    sudo scp /home/tronlong/Zynq/Linux-system/device-tree-xlnx/system_wrapper.binroot@172.16.129.185:/lib/firmware
    这里172.16.129.185为开发板的IP, 具体操作命令如下图所示:
    73.jpg
    拷贝完成后在PSC串口终端上输入以下指令在文件系统根目录下新建configfs目录及设备节点,并从"/lib/firmware"目录下动态加载PL端程序和dtbo文件。
    mkdir /configfs
    mount -t configfs configfs /configfs
    mkdir /configfs/device-tree/overlays/full
    echo -n "pl.dtbo" > /configfs/device-tree/overlays/full/path
    PL程序和设备树加载成功后,在"/sys/class/gpio"路径下可以看到gpiochip905,依次输入如下图所示命令可以进行LED点亮和熄灭的测试:
    74.jpg
    以上参考创龙科技提供的《3-2-3-生成PL设备树及动态加载PL程序和设备树.pdf》和《3-3-1-All-Programmable-SoC开发例程使用手册.pdf》文档。



    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-3-29 15:26 , Processed in 0.109690 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.