Zynq--Linux移植.docx_第1页
Zynq--Linux移植.docx_第2页
Zynq--Linux移植.docx_第3页
Zynq--Linux移植.docx_第4页
Zynq--Linux移植.docx_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 安装交叉编译工具。首先修改安装工具的执行权限,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,从Github上下载u-boot的源码库(/xilinx) 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.4includeconfigszynq_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 0xE0000000# 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_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) 在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=arm 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 若出现找不到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.dts(表示当前路径)2. 由于4.9的dts文件中不再默认对以太网的IP进行设置,故无法自动启动后无法访问到主机IP:0。故需要修改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的没有关系,只是需要里面的目录树 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:mke2fs -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.image 9:sudo mount -o loop ramdisknew.image 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.image 13:sudo umount tmp_mnt_new卸载ramdisknew.image 14:gzip ramdisknew.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. 配置调试平台若有提示,选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:在浏览器中输入/Xilinx/linux-xlnx/,登陆github并进入Xilinx的linux页面:Step2:在页面的右侧,目前只有Download ZIP的按钮,但这已经不是我们想要的东西了。这一次我们点击359 release那个地方,当然这个359随着版本发布的增多也会变大。Step3:此时可以看到每个版本有两种可供下载的压缩包,在这里我们选择tar.gz的压缩包。这种压缩格式的文件也可以在windows解压,更重要的是在linux下解压不会出错影响到后续的编译。以下是下载工具链的几个步骤:1:登陆/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/在此页面可以找到下图关于ARM Processors的交叉编译工具链接地址:关于GNU/Linux和EABI release的差异请到右边网址了解_ /sgpp/lite/arm/portal/kbentry38其实只要看一句话就可以了:The 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:点击邮件中的链接地址会看到各种版本的交叉编译工具链的下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论