首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

嵌入式操作系统VxWorks中文FAQ 02

嵌入式操作系统VxWorks中文FAQ 02

)BSP,bootImage,VxWorksImage三者的关系是什么?BSP是BootImage的一部分还是VxWorksImage 的一部
分?对于可以自启动的系统是不是三者合在一起生成一个VxWorks Image?
2)应用程序代码是和VxWorks内核一起编译生成一个VxworksImage吗?
以上问题是针对于代码存放在rom介质上的系统(如flash)。希望各位大侠不吝赐教!谢谢。。。

A:BSP 是用来支持你的硬件的软件, 它包含在你的VxWorksImg里面.
对于ROM启动的系统来说, BootImg是ROM里代码的第一部分, 用来
在开机时首先运行. 如果你的所有代码都在ROM上, 则引导程序把
VxWorksImg拷贝到系统内存, 然后再跳转的系统内存去执行.

BSP的作用屏蔽不同的硬件结构(如CPU和外围芯片)向VxWorks的Kernel提供
它所需要的一个统一的接口调用(如时钟)
(by 泡泡)

bsp: 板级支持包,主要完成目标硬件的初始化工作,提供操作系统一个统一的接口,负责硬件操作,
如中断处理,启动,停止,等工作。Bootimage:引导镜像,我向如果把boot翻译成启动不是很是当的说法,
这是一个引导程序,负责把目标系统环境初始化,最小的程度,如启动了串口,或者网络接口,可以使用这
些接口现在程序,与主机通信,然后获取你需要的OS-vxworksimage vxworksimage-包含vxworks内核以及
各种组件的镜像,也就是object images,这是真正的操作系统,通常bootimage负责获取这个镜像,然后跳
到镜像所在的位置开始执行。(by hongwind )

1.2 环境
1.2.1 斑竹tornado都是支持那些cpu??能列一下吗或哪里能找到
斑竹tornado都是支持那些cpu??能列一下吗或哪里能找到!!!
A:开发平台: Windows NT, Sun Solaris, SunOS, HP-UX, Win95
支持处理器: x86, 68k, PPC, CPU 32, i960, SPARC, SPARCLite, SH, ColdFire, R3000, R4000,
C16X, arm, MIPS ...

1.3 编程
1.3.1 vxworks,bsp中有些定义怎么找不到用到的地方,还有些定义找不到在哪里定义过了,比如
MAMR_PTA_SHIFT,哪位大侠给解答一下。不胜感激!
A:在h/drv/multi/ppc860Siu.h里。看代码还是用Source Insight
(by vxfree)


2.Tornado工具FAQ

2.1 编译器和链接器
2.1.1 当我把多个目标文件链接成一个时,出现了一个错误:
ldppc:built in linker script:43: syntax error 我怎么样才能消除这个错误?
A:请确定你的链接器使用了-r参数。
(From: weber.dirk@t-online.de)

2.1.2 我怎样使用新版本的编译器?
A:参看如下连接,有一个PPC的编译器
http://www.newgcc4vxworks4ppc.cjb.net/

2.1.3 当用另一个编译器编译代码时,得到更多的错误和警告,怎样才能让GCC生成更多的警告信息?
A:首先用-Wall参数打开所有警告开关;另一种生成更多报告的方法就是把文件看作是C++文件,参数为
-x c++.(From: Claudio Ortega, cortega@sinfomed.org.ar)

-Wall不能真正打开所有的警告,我采用由Bruce Evans推荐的参数
而且在FreeBSD环境下,BDECFLAGS变量比较固定。

# BDECFLAGS are a set of gcc warning settings that Bruce Evans has suggested
# for use in developing FreeBSD and testing changes.  They can be used by
# putting "CFLAGS+=${BDECFLAGS}" in /etc/make.conf.  -Wconversion is not
# included here due to compiler bugs, eg: mkdir()'s mode_t argument.
#
BDECFLAGS=      -W -Wall -ansi -pedantic -Wbad-function-cast -Wcast-align \
                -Wcast-qual -Wchar-subscripts -Winline \
                -Wmissing-prototypes -Wnested-externs -Wpointer-arith \
                -Wredundant-decls -Wshadow -Wstrict-prototypes -Wwrite-strings

This set of flags is *much* pickier than -Wall alone.
(From: W Gerald Hicks)

2.1.4 当编译我的模块时一切都是好的,但是当我试图下载时得到一个错误:missing symbol "__eabi"?
A:在你的模块里可能有个main函数,根据PPC "extended Application Binary Interface" (eabi)
标准,main函数必须调用__eabi函数,该函数为运行你的程序设置必要的运行环境。
    由于这个原因GNU编译器在main函数里插入 __eabi函数。
    Tornado不提供该函数,因为在实时环境下,你不必写main函数。VxWorks在应用程序运行前已经设置
好运行环境了,不再需要main函数了。
(From: Ilia, iliab@telegate.co.il)

2.1.5 我生成了2.95.2版本的编译器,一切正常,但当我开始链接我的映象时,出现了错误,下面是我
链接ctdt表时的错误:
ctdt.o(.data+0x3c):fake: undefined reference to `global constructors keyed to
_constructor_name_
... 许多类似的错误,有谁见过这种错误吗?
返回列表