2 BSP 组织结构
2.1 简介:
本章描述BSP的部件, 列出并描述了所有BSP相关的源文件和包含文件. 对于.h 文件, 本章描述了定义或取消标准符号常量所引起的后果; 对于.c 文件, 本章描述了和该文件相关的 所有必须的和可选的函数。 本章也描述了派生文件, 例如syslib.o, syslib.o 是介于板级依赖和板级独立的代码间的接口部分代码的目标文件。
在本章中, 将有一部分专注于列举重要的BSP相关的函数和它们的调用顺序(参考附录D VxWorks 启动顺序), 该部分信息将为你提供一个调试VxWorks 启动阶段必须的系统概念。
在本章结束, 将有一个关于BSP 开发新手常犯错误的讨论。
2.2 BSP 部件:
一个BSP 由一系列例程或程序组成, 这些例程把它们对于硬件环境的接口提供给VxWorks.
图1 显示了VxWorks的各种部件, 并标志出了哪些是硬件独立的, 哪些是硬件相关的。
图1
BSP例程包含在许多你必须创建的C或汇编文件中, 如果你从一个模板BSP开始的话, 这些文件可能只需要修改, 不必从头开发。下面总结BSP的文件和目录。
2.2.1 BSP 源和包含文件
本节介绍目录target/config/all 和target/config/bspname (bspname 是你的特定目录). 严格来讲,目录target/config/all下面的文件并不是BSP的部分, 但是定义在那里的模块是被所有BSP共享的。 因此如果你想理解你的特定的BSP的话, 这些模块的熟悉是十分必要的。当build 一个项目的image时,目录target/config/comps/src目录下的部件配置取代了目录target/config/all下的文件。 一个部件 配置是指作为项目build 步骤的一部分的那些被项目工具所编译的C源代码。 这些文件仅提供了最终项目
配置的一些有限的部分。
目录target/config/all 下面的文件
目录target/config/all 下面的文件是作为VxWorks架构的一部分被发布的, 除非绝对必要, 否则不要轻易地修改这些文件。 特别需要注意的是文件configAll.h。 这个文件设置了所有VxWorks images的缺省 配置, 你在这个文件中的定义应当是通用的, 因此可以被和你使用同样环境的大多数开发者所用, 如果不 是所有开发人员的话。如果你需要一个不同于缺省配置的VxWorks image, 那么可以使用你的BSP的config.h 中的值去覆盖(使用#define 或#undef )configAll.h 中的缺省值。
config/all 目录下的文件在build 一个项目时没有被直接使用, 它们只在从一个BSP新建一个项目的时候被扫描一次。 当一个新的项目建立后, 对config/all 目录下的文件所做的任何修改将不会再对项目有任何影响。 如果你期望某种改变能够在项目中体现, 那么你必须直接在项目中做更改而不是在config/all目录下的文件中做更改。
注意: 从命令行方式改变configAll.h 文件可能对其他和你使用相同机器的用户产生不好的副作用, 这种情况只应用于从命令行build。 Tornado 2.0的一个特性是变更不影响现存的项目, 只有从一个BSP创建的新项目才会继承之前对configAll.h 的修改。
bootConfig.c -- Boot ROM images 最主要的初始化文件。
bootconfig.c 是所有boot ROM images 的主要的初始化和控制文件。 它包含了完整的boot ROM shell 任务。 它包含了一个用于网络设备初始化的表(NETIF)。 这个模块实际上是usrConfig.c 的一个子集。 Boot ROM images 并不象一个完整的VxWorks images那样提供了所有的可选特性。特别注意是boot images 不使用MMU 库(除非是用于SPARC)。
Tornado 2.0 项目工具没有能力创建和维护一个boot ROM 项目, 对于从BSP创建的项目, [1] [2] 下一页 [Web开发]Tornado BSP Developers Kit -5 [Web开发]Tornado BSP Developers Kit(3) [Web开发][收藏]ASP.NET Starter Kit 是啥咪碗糕? [Web开发]使用 ASP.NET Community Starter Kit建造网站 [Web开发]解读ASP.NET Portal Starter Kit(1)——数据库篇 [Web开发]利用 ASP.NET Starter Kit 即刻开始 Web 站点开发 [Web开发]解读ASP.NET TimeTracker Starter Kit(2)——重… [Web开发]从ASP.NET Portal Starter Kit中学到的调整顺序新… [Web开发]解读ASP.NET Portal Starter Kit(3)——代码文件…
|