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\n");
    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

转载于:https://www.cnblogs.com/idyllcheung/p/10538209.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值