玩转Zynq连载29——[ex51] 制作裸跑程序的启动文件BOOT.bin

发布时间:2019-9-30 14:19    发布者:rousong1989
玩转Zynq连载29——[ex51] 制作裸跑程序的启动文件BOOT.bin
更多资料共享
腾讯微云链接:https://share.weiyun.com/5s6bA0s
百度网盘链接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw
提取码:ld9c
1.jpg
腾讯微云链接:https://share.weiyun.com/5s6bA0s
百度网盘链接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw
提取码:ld9c
1概述
         对于Zynq的裸跑程序加载,比linuxSD卡启动文件制作要简单得多。
         只需要在FAT32格式化后的SD卡中放置一个BOOT.bin文件即可。如图所示,BOOT.bin中需要包含2~3个文件,对Zynq部分外设初始化并搬运下一阶段代码和配置PLfsbl.elf文件、PL的配置比特流文件(.bit)、用户裸跑程序(.elf)。如果用户只是在ZynqCortex A9上跑程序,无需使用PL做任何工作,那么PL的配置文件.bit也可以免了。 2.jpg
         Zynq上电后,BootROM率先工作,加载BOOT.bin中的FSBLFSBL初始化一些必要的外设,如SDIO外设,用于SD卡的读写;FSBL也可以将PL的配置比特流.bit文件加载到PL中启动PL的逻辑运行,随后加载用户裸跑程序(通常是elf后缀的文件),裸跑程序随后就在DDR3中运行起来。
         这里,我们来实际操作一把,使用fsbl.elf.bit和用户裸跑程序(.elf)这3个文件产生BOOT.bin文件。
         为了更好的理解Zynq的启动原理,建议参考文档《玩转Zynq-基础篇:Zynq的启动过程.pdf》。
2 导出硬件信息并启动SDK
         参考文档《玩转Zynq-工具篇:导出PS硬件配置和新建SDK工程》。
3 创建FSBL工程
         打开EDK后,在Project Explorer中,出现了名为zstar_zynq_ps_wrapper_hw_platform_0的文件夹,下面的一些文件都是前面Export Hardware产生的PS硬件配置信息以及系统初始化代码。 3.jpg
         在打开的SDK中,点击菜单File --> New --> Application Project,新建一个应用工程。 4.jpg
         弹出的New Project中,输入Project name(这里命名为fsbl_project)。对应的Hardware Platform必须是前面Export Hardware所对应的PL工程。然后点击Next 5.jpg
         选择Avaliable TemplatesZynq FSBL。点击Finish 6.jpg
4 创建HelloWorld实例工程
         再次点击菜单File --> New --> Application Project,新建一个应用工程。 7.jpg
         工程名(Project name)命名为HelloWorld,操作系统(OS Platform)选择standalone,硬件平台(Hardware Platform)选择zstar_zynq_ps_wrapper_platform_0,点击Next 8.jpg
         Templates页面中,选择Hello World工程模板。点击Finish完成工程创建。 9.jpg
         新建HelloWorld工程出现在Project Explorer中,展开HelloWorld-->src,打开helloworld.c源文件,修改源码,实现每隔2s通过UART打印一串带计数值的Hello World!信息。 10.jpg
         保存修改后的helloworld.c源文件,SDK会自动编译并生成新的HelloWorld.elf文件。 11.jpg
5生成BOOT.bin文件
         展开Project Explorer中新建好的fsbl_project工程,找到Binaries下的fsbl_project.elf文件。选中fsbl_project.elf文件,右键单击后,点击Copy选项。Paste到专门新建的sd_image文件夹下。 12.jpg
         展开HelloWorld工程,找到Binaries下的HelloWorld.elf文件。选中HelloWorld.elf文件,右键单击后,点击Copy选项。也Pastesd_image文件夹下。 13.jpg
         打开...\zstar.sdk\zstar_zynq_ps_wrapper_hw_platform_0文件夹,把PL配置文件zstar_zynq_ps_wrapper.bit也复制到sd_image文件夹下。 14.jpg
         生成裸跑程序的启动文件BOOT.bin所必须的3个文件齐聚在sd_image文件夹下。 15.jpg
点击SDK的菜单Xilinx -->Create Boot Image 16.jpg
弹出的Create Boot Image对话框中,设定Output BIF file pathsd_image文件夹下,产生output.bif文件到该文件夹。然后依次点击Boot image partitions按钮加载fsbl_project.elfzstar_zynq_ps_wrapper.bitHelloWorld.elf文件。 17.jpg
         特别需要注意的是,fsbl_project.elf的文件Partition type选择bootloader,而zstar_zynq_ps_wrapper.bitHelloWorld.elf文件则选择datafile。点击Boot image partitions右侧Add菜单,分别加载这3个文件。 18.jpg
         完成设定后,如图所示,点击Create Image按钮。 19.jpg
         sd_image文件夹下,出现了新产生的BOOT.bin文件。
20.jpg
6 SD卡启动板级调试
         Micro SD卡通过读卡器插入PC中,用FAT32进行格式化。然后将生产的BOOT.bin文件拷贝到Micro SD卡中。
         Micro SD卡插入Zstar板的SD卡槽中。
         Zstar板子上,设置跳线帽P3SD BOOT模式,即PIN1-2短接。
         连接好串口线(USB线连接PCUSB端口和Zstar板的UART接口)和Xilinx下载线(下载器连接PCUSB端口和Zstar板的JTAG插座)。使用5V电源给板子供电。
         打开串口调试助手PuTTY,正确设置端口号和波特率。 21.jpg 22.jpg
         接着我们就能看到PuTTY上不停的打印带数据递增的Hello World字符串了。
23.jpg
本文地址:https://www.eechina.com/thread-569261-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表