分享
 
 
 

Tornado BSP Developer's Kit -4

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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创建的项目,从Build 菜单中可以找到一个按钮,该按钮执行传统的从命令行创建一个boot ROM image。请特别注意, 当build 一个boot ROM image 时, 特定项目的配置信息根本没有效果,只有传统的config.h, configAll.h, bootConfig.c 和bootInit.c这几个文件影响一个boot

ROM image 的build.

bootInit.c --ROM 初始化的第二阶段。

bootInit.c 文件是boot ROM 初始化的第二个阶段, 在romInit.o之后, romInit.s 文件中的函数romInit()在结束的时候跳转到romStart(), 而romStart()函数是定义在bootInit.c中的。 函数romStart()执行必要的代码解压缩和ROM images 的重定位, 首先, 它把text 和data 段 从ROM 拷贝到RAM中, 然后,它清楚在RAM中不再被使用的那些部分,最后它将image被压缩的部分解压缩。不同的配置选项可以决定这些操作如何被具体执行。

对一个ROM化的 VxWorks image 来说,在tornado 2.0 下的项目中, romStart.c 取代了bootInit.c 的功能,注意这不是针对一个boot ROM image来说的。

dataSegPad.s --VxVMI Text段保护。

文件dataSegPad.s 仅被用于VxVMI text段的保护, 它保证text 段和data 段不共享一个MMU 页面。

usrConfig.c -- VxWorks image 的初始化代码。

usrConfig.c 文件中包含了VxWorks images 的主要的初始化代码。 不象bootConfig.c 文件那样是自包含的, usrConfig.c 文件包含了target/src/config/usrExtra.c , 而usrExtra.c 文件又包含了 其它的用来提供子系统初始化和配置的文件。

usrConfig.c 仅用于从命令行进行build 时, 就象在Tornado 1.0 中一样。 当使用项目工具来build 项目时, 项目初始化组决定了部件初始化的顺序, 每个部件都有一套属性用来标识该部件属于哪一个初始化组并且也标识了在那个组中它应当被放在哪里。

目录target/config/comps/vsWorks下的文件

在此目录下的文件是VxWorks 实时系统内核的基本部件描述文件(CDF 文件)。 参考第六章( 部件)来了解关于部件是如何被创建,使用及交付的详细信息。 参考附录F.1 (部件描述语言CDL)来了解关于CDF文件的语法的细节。

目录target/config/comps/src 下的文件

在此目录下的文件 描绘了和内核部件相关的配置, 它们描绘了之前出现在target/config/all/usrConfig.c 文件中代码片段。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有