微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 生成有效的板支持包

生成有效的板支持包

时间:04-29 来源:Eefocus 点击:
自动创建与硬件设计完全匹配的 BSP 使用预认证的组件消除 BSP 设计错误 立即启动应用软件开发,增加设计者的产量

创建用于 WindRiver VxWorks 的 BSP

Platform Studio 可生成用于 Xilinx Virtex™-II Pro 和 Virtex-4 FPGA 中的 PowerPC™ 405 处理器及其外设的定制 Tornado 2.0.x (VxWorks 5.4) 或 Tornado 2.2.x (VxWorks 5.5) BSP。生成的 BSP 包含系统必需的所有支持软件,包括:引导代码、设备驱动程序和 VxWorks 初始化。

在 Platform Studio 定义完具有 PowerPC 405 处理器的硬件系统后,只需遵循以下三个步骤即可生成用于 VxWorks 的 BSP:

使用软件设置对话框(见图 2)选择要为系统使用的操作系统。Platform Studio 用户可选择 vxworks5_4 或 vxworks5_5 作为其目标操作系统。 选择了操作系统后,可转到资料库/操作系统参数标签(如图 3 所示),根据定制硬件调整 Tornado BSP。您可以选择系统中的任意 UART 器件作为标准 I/O 器件(标准输入和标准输出)。这将使该设备被用作 VxWorks 控制台器件。
您还可以选择将哪些外设作为连接外设,将哪些器件紧密集成到 VxWorks 操作系统。例如,Xilinx 10/100 以太网 MAC 可以集成到 VxWorks 增强型网络驱动(Enhanced Network Driver 即 END)接口。或者,不必将以太网器件连接到 END 接口,而从 VxWorks 应用程序直接访问它。 选择"工具 > 生成资料库"和 BSP 菜单选项,生成 Tornado BSP。生成的 BSP 与传统的 Tornado BSP 相似,位于 ppc405_0/bsp_ppc405_0 下的 Platform Studio 项目目录中(见图 4)。

注:ppc405_0 为硬件设计中 PowerPC 405 处理器的实例名。Platform Studio 用户可指定其他实例名,此时,BSP 的子目录名称会匹配处理器实例名。

图 2 – 设置选择嵌入式操作系统

图 3 – 配置具体操作系统的参数

图 4 – 生成的 BSP 目录结构

通过 Platform Studio 生成的 Tornado BSP 具有一个 Makefile 文件,如果希望使用 Diab 编译器而不是 Gnu 编译器,可在命令行修改此文件。

Tornado BSP 完全独立,并可以传输到其他目录位置,如 BSP 的标准 Tornado 安装目录:target/config。

定制 BSP 详细信息

由 XPS 生成的用于 VxWorks 的 BSP 与大多数其他 Tornado BSP 相似,只是 Xilinx 设备驱动程序代码的位置有所不同。与 Tornado 相关的现成的设备驱动程序代码通常位于 Tornado 分布目录的 target/src/drv 目录中,而由 Platform Studio 自动生成的 BSP 的设备驱动器代码位于 BSP 目录本身中。

图 5 – Tornado 2.x 项目:VxWorks 标签

基于 FPGA 的嵌入系统之动态特性是造成此微小差别的原因。因为基于 FPGA 的嵌入系统可以用新的或更改后的 IP 重新编程,设备驱动程序可以改变,因此就需要对设备驱动程序源文件进行更为动态的放置。表 4 为自动生成的 BSP 的目录树。Xilinx 设备驱动程序放置在 BSP 子目录 ppc405_0_drv_csp/xsrc 中。

Xilinx 设备驱动程序在 C 盘中执行并分布在数个源文件中,这点不同于传统的、通常由单个 C header 和执行文件组成的 VxWorks 驱动程序。此外,对于设备驱动程序,既有独立于操作系统的执行,又有可选的依赖于操作系统的执行。

驱动程序的操作系统独立部分应同任何操作系统或处理器一起使用。它提供了一种应用程序接口 (API),能提取基础硬件的功能。驱动程序的操作系统附属部分对驱动程序进行调整,使其得以在 VxWorks 之类的操作系统下使用。例子有串行端口使用的 Serial IO 驱动程序和以太网控制器使用的 END 驱动程序。只有能被紧密集成到标准操作系统接口的驱动程序才要求操作系统附属驱动程序。

Xilinx 驱动程序源文件加入 VxWorks 映像构件的方式同其他 BSP 文件加入的方式相同。针对每个驱动程序,在 BSP 目录中都有一个名为 ppc405_0_drv_<driver_version>.c 的文件。此文件包括针对给定设备的驱动程序源文件 (*.c),并自动由 BSP makefile 编译。

该过程与 VxWorks sysLib.c 针对 Wind River-supplied 驱动程序纳入源文件的过程相似。Xilinx 驱动程序文件不像其余驱动程序一样单纯纳入 sysLib.c 的原因,在于命名空间的冲突和可维护性问题。如果所有的 Xilinx 驱动程序文件都是单个编译单元的一部分,那么静态功能和数据就不再处于保密状态了。这会对设备驱动程序产生限制,也会抵消其操作系统独立性。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top