【声明】纯属原创,未经允许,禁止转载。
5.嵌入式软件设计嵌入式软件设计
5.1 将硬件信息导入到SDK嵌入式软件工程中
由于嵌入式软件必须依赖于设计的硬件系统结构,因此需要将硬件信息导入到SDK中,以供软件编译时参考使用。导入操作的启动方式如下所示:
之后显示提示信息如下:
建议勾选Include Bitstream,这样SDK中就会包含前边生成的Bitstream文件,将来调试时,可以由SDK软件下载硬件配置信息,否者还需要切换回Vivado下载硬件配置信息,然后再回到SDK下载嵌入式软件。
导出硬件操作成功后,在工程文件夹下,会出现一个.sdk的文件夹,如下所示。
在该文件夹下会生成一个.hdf的文件,该文件将包含硬件系统的全部信息和bitStream文件。
6.2 启动SDK
在Vivado软件中启动SDK,操作如下所示:
弹出提示信息如下:
保持默认,点击OK即可。
之后软件会自动调用SDK软件,前提是必须安装了SDK。对于14.4版本,Vivado和SDK在一个安装包中,在安装过程中可以选择。但是是单选,因此需要安装两次。
启动完成后,会自动在软件工程中加载硬件信息,显示如图所示。
其中工程窗口中,生成了与硬件相关的驱动函数。
在System.hdf文件显示了内存映射信息。
6.2 创建板载支持包
硬件加载后,其实就可以直接编写软件代码了,但是此时,什么函数包都没有,所有功能都需要用户自己写函数,而写的函数基本都是需要对指定地址的寄存器进行读写操作,这样太原始了,而且开发效率并不高。
Xilinx公司针对zynq子系统,其实开发了很多库函数,可以根据配置的硬件信息提取相应的库函数,供用户使用。这些库函数被称为Board Support Package。创建库函数的操作入口如下所示。
显示配置信息:
点击Finish按钮,系统会生成函数库,之后还有一个配置页面如下所示.
该函数库是基于Standalone操作系统(没查到该OS的资料,应该是Xilinx公司自己开发的一个简单架构)的。
可以勾选下面的配置,是的库函数包含支持TCP/IP的库函数,支持文件系统过的库函数等等。这些可以大大简化用户程序的开发流程。
点击Drivers项会看到库函数对硬件模块创建的驱动函数,这样对于这些硬件模块,就不需要通过读写寄存器进行操作了,而是通过驱动函数,在业务层面进行操作。
可以看出对支持的硬件模块生成了相应的驱动函数。
在system.mss文件中,会显示相应的信息。
比如uart模块,在xuartps.h文件中定义了如下结构体:
通过该结构体是否就能够配置串口的参数了?通过查找发现下面两个函数:
文章评论(0条评论)
登录后参与讨论