收藏 分享(赏)

Zynq Linux移植.docx

上传人:weiwoduzun 文档编号:4296791 上传时间:2018-12-21 格式:DOCX 页数:14 大小:921.66KB
下载 相关 举报
Zynq  Linux移植.docx_第1页
第1页 / 共14页
Zynq  Linux移植.docx_第2页
第2页 / 共14页
Zynq  Linux移植.docx_第3页
第3页 / 共14页
Zynq  Linux移植.docx_第4页
第4页 / 共14页
Zynq  Linux移植.docx_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、1. 安装 VMware Workstation 102. 装载 Fedora17 的镜像。3. 安装完毕后,启动。从 Application 中添加 Terninal 到 Activitise。4. 切换到 root 用户。命令:su root。需要输入构建系统时的 root 账户密码。5. 更新 Fadora。命令:yum update。6. 切换回自己用户。 su bill7. 从 Mentor 上下载交叉编译工具:arm-2013.11.3.-arm-none-linux-gnueabi.bin ,并拷到Linux 的 home/(用户) 下。8. 安装交叉编译工具。首先修改安装工具的

2、执行权限,chmod +x *.bin ;安装命令: ./ arm-2013.11.3.-arm-none-linux-gnueabi.bin9. 然后再次用安装命令开始 GNU 安装: ./ arm-2013.11.3.-arm-none-linux-gnueabi.bin10. 设置环境变量 PATH。export PATH=/home/bill/MentorGraphics/Sour.-linux/bin:$PATH。11. 设置环境变量。export CROSS_COMPILE=arm-none-linux-gnueabi-12. 构建 u-boot. 1) 参考附录 1,从 Gith

3、ub 上下载 u-boot 的源码库(http:/ ) u-boot-xlnx release xilinx-v2013.4 Source code(tar.gz)或(zip)2) cd xilinx_vivado134/u-boot-xlnx-xilinx-v2013.43) make distclean由于 U-boot 中的 UART 使用的时钟默认是 50MHz,而 vivado 构建的系统中 UART 的时钟是 100MHz,导致 UART 的波特率不是设置要求的 115200.故要求修改构建 U-boot 的源文件 xilinx u-boot-xlnx-xilinx-v2013.4

4、includeconfigszynq_common.h。简单方法就是在桌面中找到该文件双击打开,修改下列代码的红色处:将 50000000 改为 100000000.保存退出。步骤:1. cd include/configs2. gedit zynq_common.h3. 检查 48 行和 54 行是否为 100000000, (源文件默认是 50000000) 。即 PS-UART 的配置源代码如下:/* Zynq serial driver */#ifdef CONFIG_ZYNQ_SERIAL_UART0# define CONFIG_ZYNQ_SERIAL_BASEADDR0 0xE0

5、000000# define CONFIG_ZYNQ_SERIAL_BAUDRATE0 CONFIG_BAUDRATE# define CONFIG_ZYNQ_SERIAL_CLOCK0 50000000 客户如果用的是uart0,看看这个时钟频率和客户在 xps 里面配置的是否一致#endif#ifdef CONFIG_ZYNQ_SERIAL_UART1# define CONFIG_ZYNQ_SERIAL_BASEADDR1 0xE0001000# define CONFIG_ZYNQ_SERIAL_BAUDRATE1 CONFIG_BAUDRATE# define CONFIG_ZYNQ

6、_SERIAL_CLOCK1 50000000 客户如果用的是uart1,看看这个时钟频率和客户在 xps 里面配置的是否一致#endif4. Save,Quit5. 退回到 xilinx u-boot-xlnx-xilinx-v2013.4。cd 6. cd 7. pwd. 确认在 xilinx u-boot-xlnx-xilinx-v2013.4 路径下。4) make zynq_zed_config5) make正确的显示截图如下:6) 拷贝 u-boot 到 Win7 文件夹下,并重命名 u-boot.elf。 (vmware 下可以直接将 u-boot拖到 win7 下) 。7) 在

7、 SDK 中,利用 toolsCreate zynq image,将 FSBL、System.bit、u-boot.elf 一起生成boot 镜像文件(注意三者的顺序不能颠倒) 。最后将 U-boot.bin,改为 BOOT.BIN,拷入 sd 卡。13. 构建 kernel 内核1 参考附录 1,从 Github 上下载 Kernel 的源码2 cd xilinx/linux- v2013.4/linux-xlnx-xilinx-v2013.4/3 (若需要,一般不用) 。sudo yum y install gcc4 make ARCH=arm distclean5 make ARCH=a

8、rm xilinx_zynq_defconfig6 将终端设置为全屏,然后敲 make ARCH=arm menuconfig选择 Device Drivers=Block Device 关于 Ramdisk 大小和个数改成下面的值(8) Default number of RAM disks (32768) Default RAM disk size (kbytes)OK,Save,Exit,Exit,7 make ARCH=arm uImage LOADADDR=0x00100000,在 linux-xlnx-xilinx-v2013.4 下开始构建内核镜像。 (约十几分钟) 。8 若出现

9、找不到 mkimage 命令,那么在 u-boot-mastertools执行拷贝命令 cp mkimage usrbin9 运行后的结果:10 拷贝 uImage 到 win7 的文件夹下。14. Device-tree 的生成。1. 拷贝 linux-xlnx-xilinx-v2013.4archarmbootdtszynq_zed.dts 到 linux-xlnx-xilinx-v2013.4,并修改文件名为 devicetree.dts。在 linux-xlnx-xilinx-v2013.4 路径下:cp arch/boot/dts/zynq-zed.dts ./devicetree.

10、dts(表示当前路径 )2. 由于 4.9 的 dts 文件中不再默认对以太网的 IP 进行设置,故无法自动启动后无法访问到主机 IP:192.168.1.10。故需要修改 devicetree.dts3. ./scripts/dtc/dtc -O dtb -I dts -o devicetree.dtb devicetree.dts4. 拷贝 devicetree.dtb 到 win7 的文件夹下。15 创建文件系统和初始化文件:1: gunzip ramdisk.image.gz 解压一个旧的 ramdisk.image.gz,这个旧的 ramdisk 是支持多少 M 的没有关系,只是需要

11、里面的目录树2:mkdir tmp_mnt 创建一个挂载旧 ramdisk 的目录3:sudo mount -o loop ramdisk.image tmp_mnt/ 讲旧的 ramdisk 解压后的ramdisk.image 文件挂载到 tmp_mnt 目录4:dd if=/dev/zero of=ramdisknew.image bs=1024 count=32768 创建一个新的ramdisknew.image 文件,这个 ramdisk 最大占用 32MB 的内存,此时 ramdisknew.image 文件里面没有任何目录,可以通过 hexdump 命令看到里面是全 0.5:mke

12、2fs -F ramdisknew.image -L “ramdisk“ -b 1024 -m 0 以 ext2 的方式格式化ramdisknew.image 文件,此时通过 hexdump 命令可以看到里面已经有了一些数据6:tune2fs ramdisknew.image -i 0 禁用时间检查7:chmod a+rwx ramdisknew.image 改变 ramdisknew.image 的访问属性8:mkdir tmp_mnt_new 创建 tmp_mnt_new 目录以挂载 ramdisknew.image9:sudo mount -o loop ramdisknew.image

13、 tmp_mnt_new/ 将 ramdisknew.image 挂载到 tmp_mnt_new 目录10:sudo cp -R tmp_mnt/* tmp_mnt_new/ 将 ramdisk.image 里面的目录树拷贝到 ramdisknew.image 里面11:cp something/you/need tmp_mnt_new/ 将你们编译出来的可执行文件拷贝到ramdisknew.image 中12:sudo umount tmp_mnt 卸载 ramdisk.image13:sudo umount tmp_mnt_new 卸载 ramdisknew.image14:gzip ra

14、mdisknew.image 压缩 ramdisknew.image,得到 ramdisknew.image.gz 文件15: mkimage -A arm -T ramdisk -C gzip -d ramdisknew.image.gz uramdisk.image.gz 将ramdisk.image.gz 添加一个 64bytes 的头,生成 uramdisk.image.gz16. 应用程序调试在 SDK 中生成 U-BOOT 镜像,改名成 boot.binLinux 软件调试1. 在 SDK 中,新建一个应用工程。2. 选择 Linux 平台。3. 选择程序模板4. 调试程序5. 配

15、置调试平台若有提示,选 Yes6. 在 SDK 的终端可以看到输出。7. 若想在 Zynq 的终端显示输出信息,应该在 Zynq 的 Linux 下执行该文件。8. 若需要自动启动则需要在生成 ramdisk 时将可执行文件拷进去。11 改成:cp hellow_linux tmp_mnt_new/ 9. 最后的结果:特别提醒:3.6 的内核,3.9 的 dts 的混搭一般一定会出问题,必须版本匹配。不搞一套,几乎肯定会出问题。搞成一套是必须的。附录 1 github 上下载内核 gz 压缩包的方法Step1:在浏览器中输入 https:/ github 并进入 Xilinx 的linux 页

16、面:Step2:在页面的右侧,目前只有 Download ZIP 的按钮,但这已经不是我们想要的东西了。这一次我们点击 359 release 那个地方,当然这个 359 随着版本发布的增多也会变大。Step3:此时可以看到每个版本有两种可供下载的压缩包,在这里我们选择 tar.gz 的压缩包。这种压缩格式的文件也可以在 windows 解压,更重要的是在 linux 下解压不会出错影响到后续的编译。以下是下载工具链的几个步骤:1:登陆 http:/ ARM Processors 的交叉编译工具链接地址:关于 GNU/Linux 和 EABI release 的差异请到右边网址了解 _ htt

17、ps:/ ABI used on GNU/Linux is not a special GNU variant of the EABI; it is just the EABI.两者没有本质区别。2:点击上图中任何一个链接都会进入一个注册页面:填写好相应的信息后,点击 Get Lite!按钮,系统会发一封邮件到你填写的邮箱中。Step 3:收到邮件后,会看到一个链接地址:Step 4:点击邮件中的链接地址会看到各种版本的交叉编译工具链的下载链接:Step 5:点击进入其中一个,会看到对应版本在 linux 或 windows 下的下载包:Step 6:下载后的文件如下图:其中第一个 bin 文件是 linux 下的安装工具,需要在图形界面下安装,会自动配置安装路径到 PATH 环境变量中去第二个是 windows 下的安装文件,应该也会自动配置环境变量第三个是编译器的源代码,对客户来说没有用第四个是 windows 下的压缩包,直接解压到某个目录,然后需要自己配置环境变量第五个是 linux 下的压缩包,直接解压到某个目录,然后需要自己配置解压的路径到 PATH 环境变量中去。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > linux/Unix相关

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报