赞
踩
写在前面
本文档基于zynq7100开发PS端代码的经验,没有操作系统,使用到了网口、GPIO、RAM读写、定时器等功能。
本文档描述了平台文件、BSP、静态库、应用程序创建的过程以及注意事项。同时在描述这些文件的过程中,对各中原理也进行了解释。
zynq7100中有两个核,目前开发只用了核0。
SDK使用
Xilinx的SDK也是基于eclipse的一个调试开发工具,其布局,使用方式和基于eclipse的其他工具类似。
无操作系统的PS端开发通常由三个部分组成:
新建/打开工作区
打开工作区后的视图如下所示:
在project explorer中新建一个project,类型选择Hardware Platform Specification:
点击next,指定工程名,并选择相应的hdf文件:
点击finish,最终创建出来的工程如下图所示:
创建bsp工程
创建好硬件定义工程后,即可创建BSP工程,新建工程中选择Board Support Package:、
点击next,其中BSP OS选择standalone,project name可以根据需要修改。
点击finish后,会要求选择标准支持库外的其他支持库,由于本次需要使用PS端自带的网口进行通信,因此选择了lwip库(该库包含了TCP/IP协议栈相关的功能):
同时,对lwip库进行进一步配置,打开了igmp功能:
点击OK后,SDK工具会进行自动构建(如果需要取消自动构建功能,则点击工具栏中的Project,把Build Automatically前面的√取消即可)。
构建完成后的工程如下图所示,头文件包含在include文件夹中,库文件包含在lib文件夹中,由于增选了lwip库,因此生成了两个库文件xil.a和lwip4.a。
创建静态库工程
由于BSP中的函数名称不利于理解,因此在BSP基础上根据使用需要及编码习惯重新编写了驱动,并且将其编译为静态库文件,供可执行应用程序调用。
创建静态库文件
点击next,选择OS为Standalone,库类型为静态库:
由于在创建库文件的过程中并不会有关联BSP的设置,但是驱动跟BSP紧密相关,因此手动关联BSP,在工程属性中做如下设置:
创建可执行应用工程
新建一个应用工程:
OS平台选择standalone,BSP选择之前创建的BSP,再点击next,选择空白工程:
由于需要使用之前创建的静态库,因此需要在工程属性中做如下设置,用于包含头文件及库文件搜索路径:
PS:OS Platform为standalone和freertos时,使用的编译工具链是Xilinx ARM v7 GNU Toolchain,如果为Linux,编译工具链为Xilinx ARM v7 GNU/Linux Toolchain。
SDK调试
调试步骤
可执行应用程序编译完成后,会生成.elf文件,选中工程文件,右键->Debug As ->Launch on Hardware(System Debugger):
弹出如下确认框,点击yes:
最终出来调试界面。
可以单步运行,也可以打断电,具体调试操作此处不详述。
常见问题或注意事项
需要勾选Reset entire system
调试时没有停在main函数入口处
在调试过程中遇到点击调试并没有停在main函数入口处,而是停在了某个汇编语言的位置,从网上搜索资料说要对Debug进行配置,勾选Stop at main,如下面两张图所示:
但是在实操过程中,往往遇到这样的情况时,该选框勾选后会报错从而中断调试,应该在调试过程中某些配置进行了更改从而导致出错,有效的办法是点击应用工程的属性,点击运行调试选项,删除后重新开始。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。