本帖最后由 blackroot 于 2015-8-16 17:05 编辑
接前面的章节:
这段时间一直很忙,但是保持每周更新一下帖子,给自己一个交代吧
-------------------------------------up up up-----------------------------------------
1、在xilinx SDK中基于光盘中的工程mys_xc7z010_trd创建启动镜像BOOT.bin,包括三个文件用于创建镜像,这三个文件是f***l.elf mys_xc7z010_trd.bit u-boot.elf
2、将BOOT.bin用SDK工具烧进QSPI flash。
3.选择从flash启动,重新给板子上电,打开minicom,敲击键盘使u-boot启动终止
4、配置linux kernel,按照网上的方法:
内核支持NFS分区(即编译时在File system中选中 Root file system on NFS),
以及支持内核IP_PNP(即编译时在Networking中选中 IP: kernel level autoconfigura
tion)
File systems --->
Network File Systems --->
<*> NFS file system support ## 必选
Provide NFSv3 client support ## 可选
Root file system on NFS ## 必选
Networking --->
Networking support
Networking options --->
IP: kernel level autoconfiguration ## 必选
需要打开IP:Kernel level autoconfiguration 以及下面所有的选项包括DHCP, BOOTP, RARP,而且NFS Client Support不能是模块,必须编译进内核
5、编译内核:make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- uImage
6.生成zynq-zturn.dtb:make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- dts
7、将zynq-zturn.dtb重命名为devicetree.dtb
8、搭建tftp nfs调试环境(这两个服务器测试完全没有问题,完全能正常使用)
9、将uImage devicetree.dtb拷贝到tftpboot目录下。
10、安装busybox,安装没问题,自己手动制作一个简单的文件系统,并放在共享目录下面。
11、设置
开发板和PC虚拟机在同一网段,并采用桥接方式,可以ping通
12、设置启动变量
setenv bootargs 'noinitrd console=ttyPS0,115200 root=/dev/nfs rw earlyprintk nfsroot=192.168.1.13:/opt/myrootfs ip=192.168.1.55:192.168.1.13:192.168.1.1:255.255.255.0:ubuntu:eth0:off'
13、用tftp的方式将内核我设备树文件下载到DDR对应的地址
14、bootm kernel_addr devicetree_addr
另外也可以不采用tftp的方式:
setenv bootargs 'noinitrd console=ttyPS0,115200 root=/dev/nfs rw earlyprintk nfsroot=192.168.1.13:/opt/myrootfs ip=192.168.1.55:192.168.1.13:192.168.1.1:255.255.255.0:ubuntu:eth0:off'
setenv bootcmd 'tftp 0x2000000 devicetree.dtb;bootm 0x2000000';'tftp 0x2080000 uImage;bootm 0x2080000'
bootm kernel_addr devicetree_addr
结果图片如下:
-------------------------------no zuo no die why you try----------------------------------------------
这里为了验证挂载的正确性,在linux里面编译hello.c用嵌入式编译器arm-xilinx-linux-gnueabi-gcc编译生成hello可执行文件文件,放在共享目录里面。
----------------------------我完美的黄金分割线-------------------------------------------------------
首先在linux下面执行,提示如下
所以只能在板子上执行!!!!!!
然后在板子上执行./hello ,结果如下:
时间有限,敬请指正错误!!!!!!!
后续有时间开始上层软件开发。。。。。。。。