zoukankan      html  css  js  c++  java
  • Zynq ZC706 传统方式移植Linux -- 编译kernel 文件系统 devicetree

    1.kernel

    实际操作时候,下面两条命令就够了。

    make ARCH=arm xilinx_zynq_defconfig

    make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- uImage LOADADDR=0x00008000

    2.文件系统

    下载arm_ramdisk.image.gz

     https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842473/Build+and+Modify+a+Rootfs

     实际操作命令:

    gunzip ramdisk.image.gz

    mkdir file_tmp

    sudo mount arm_ramdisk.image -o loop ./file_tmp/

    sudo umount ./file_tmp

    gzip ramdisk.image

    sudo apt-get install u-boot-tools
    sudo mkimage -A arm -T ramdisk -C gzip -d ramdisk.image.gz uramdisk.image.gz

    3.devicetree

    设备树编译出错

    https://blog.csdn.net/qq_28398969/article/details/85235534

    a.错误信息
    $ ./scripts/dtc/dtc -I dts -O dtb -o devicetree.dtb ./arch/arm/boot/dts/zynq-zc706.dts
    Error: ./arch/arm/boot/dts/zynq-zc706.dts:7.1-9 syntax error
    FATAL ERROR: Unable to parse input tree
    b.原因
    根据提示,是zynq-zed.dts这个文件的15行出错。
    将该行修改为 /include/ “zynq-7000.dtsi”
    c.重新执行命令
    ./scripts/dtc/dtc -I dts -O dtb -o devicetree.dtb ./arch/arm/boot/dts/zynq-zc706.dts
    可以在顶层目录看到生成的 devicetree.dtb 设备树文件
    d.另一个解决方法:
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xilinx_zynq_defconfig
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
    在./arch/arm/boot/dts/目录下会生成zynq-zed.dtb文件,
    两个设备树文件内容是一样的,只是文件名不同。

    实际操作执行以下命令:

     make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs (一路Y)

    在路径/home/zhangyi/work/linux-xlnx-master/arch/arm/boot/dts下生成zynq-zc706.dtb

    改名为devicetree.dtb

    将BOOT.bin devicetree.dtb uImage uramdisk.image.gz 拷贝到sd卡 然后上电

    Hooray!

    Zynq>

    • 5.当然还是要体验一把helloworld了
      在电脑linux环境中,创建一个hello.c:
    #include <stdio.h>
    int main()
    {
        printf("hello hlf
    ");
        return 0;
    }


    在hello.c路径下,生成可执行文件:

    cd /home/hlf/mnt/zynq_pro #hello.c所在目录
    source /opt/Xilinx/SDK/2017.1/settings64.sh #定位
    arm-xilinx-linux-gnueabi-gcc hello.c -o hello -static #生成执行文件

    zynq> mkdir -p /mnt/mmc
    zynq> mount /dev/mmcblk0p1 /mnt/mmc
    zynq> cd ./mnt/mmc/
    zynq> ./zynq_hello
    hello hlf


    hello hlf
  • 相关阅读:
    Java工具类
    集合 -- 嵌套表
    集合--索引表
    第一章
    记录Record
    序列Sequence
    操纵数据库 DML
    表的集合操作
    视图
    索引
  • 原文地址:https://www.cnblogs.com/idyllcheung/p/10538209.html
Copyright © 2011-2022 走看看