77范文网 - 专业文章范例文档资料分享平台

Vxworks BSP开发流程(3)

来源:网络收集 时间:2019-03-09 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

二. 预内核的特殊初始化函数

VxWorks映象里的特殊函数如下: ·romInit()函数 ·romStart()函数 ·sysInit()函数

romInit()函数和romStart函数是所有固化在ROM/Flash里的VxWorks映象(ROM型VxWorks映象)所必须执行的函数,而sysInit()函数仅仅只是所有装载型VxWorks映象执行的函数。

1. romInit()函数 (1) romInit()函数功能简述

romInit()函数包含在romInit.s文件中,且用汇编语言编写。它是系统加电后首先执行的代码,也是所有ROM型VxWorks映象入口点。它执行目标机最小的初始化操作及调用romStart()函数。romInit()函数必须包含下面的功能:

·屏蔽处理器中断和处理器复位 ·初始化系统内存

·初始化堆栈指针和其他寄存器,开始执行romStart()函数及传递启动参数 (2) 冷启动和热启动

冷启动是指硬件环境通过加电启动。在romInit()函数中需要保存系统启动类型,启动类型的宏定义为BOOT_COLD。

热启动是指通过调用reboot(),Ctrl+X或者异常中断等重新启动目标机系统的方式。 2. romStart()函数

romStart()函数是所有固化在ROM/Flash里VxWorks映象第一个执行的C语言函数。 (1) romStart()函数的功能描述

romStart()函数包含在../all/bootInit.c文件中,并且用C语言编写成。它是系统最先执行的一个C语言程序,为ROM映象执行必要的代码重定位、解压缩和RAM初始化操作,具体如下:

·拷贝适当的ROM映象段到RAM中 ·清理没有被使用的那部分内存 ·执行解压缩操作(如果有必要)

·调用预内核的通用初始化程序usrInit() (2) romStart()的修改

在BSP的开发过程中,可能需要修改bootInit.c文件。这个文件是BSP的一个公用文件,所以对于该文件的修改,情况比较特殊,具体步骤如下:

·拷贝bootInit.c文件。bootInit.c文件是一个公用文件,所以不可以直接修改..config/all目录下的bootInit.c文件,而是应该把该文件拷贝到某个BSP目录下,然后修改这个BSP目录下的bootInit.c文件。

·修改makefile文件。为了链接拷贝的bootInit.c文件,而不是原始的文件,需要修改BSP目录下的makefile文件。在HEX_FLAGS宏定义后面增加一行: BOOTINIT = bootInit.c

在构造VxWorks映象的控制文件rules.bsp文件中,系统通过使用BOOTINIT宏定义来访问bootInit.c文件。这个宏定义的默认的访问的值是../config/all/bootInit.c文件。 (3) romStart()配置宏定义

(4) ROM和RAM的布局

3. sysInit()函数 (1) sysInit()函数功能描述

sysInit()函数是装载型VxWorks映象的入口点。当映象被装载到RAM中以后,处理器将跳转到sysInit()函数处执行。该函数原形在sysAlib.s中,是用汇编语言编写成的。

当映象被装载到RAM中,sysInit()函数驻留在装载型VxWorks映象的装载地址处。它执行必须的最小初始化操作以及调用usrInit()函数,而硬件初始化推迟到预内核通用初始化代码中进行。

(2) sysInit()代码的获得

sysInit()函数的代码可以通过修改romInit()函数的代码获得,仅仅需要修改一些便可以得到sysInit(0函数代码: ·删除内存初始化代码

·把调用romStart()函数改为调用usrInit()函数

·sysInit()函数在RAM中执行,所以不需要设计成与地址无关的代码 (3) RAM布局

三. 预内核的通用初始化代码 1. 通用初始化代码概述 (1) 通用初始化代码的职责

·通用初始化代码必须为VxWorks内核提供一个环境,以便激活VxWorks内核 ·内核代码执行后,初始化系统需要的系统内存空间或者多任务环境 (2) 通用初始化

预内核的通用初始化操作是通过usrInit()进行的,该函数是用C语言编写的。其原型函数包含在usrConfig.c文件中。当构造VxWorks文件的时候,它被静态链接到映象中。系统调用该函数也就激活了VxWorks内核。

而初始化硬件的操作,主要是通过调用sysHwInit()函数来实现的,该函数主要包含主要功能如下:

·屏蔽所有硬件设备的中断

·初始化硬件设备到可知的静止状态

BSP的配置

用户在开发自己的目标机BSP之前,必须了解在VxWorks操作系统下BSP的配置,只有在熟悉BSP的配置之后才可以正确对BSP进行移植和修改工作,并根据自己的需要成功的配置一个BSP。

一.BSP的基本配置 (1) ROM和RAM布局

用户可以根据目标机的具体情况对ROM和RAM的空间布局进行配置,配置过程主要是通过修改地址宏定义的值而达到的,在config.h文件中定义了这些宏。在修改这些宏的时候,需要注意的是,同时也将makefile文件中定义的宏做对应的修改。 (2) 内存配置

内存配置包括用户驻留程序的内存基地址、局部总线内存基地址、内存基地址以及内存大小等。 (3) 启动设备及参数配置

启动设备及参数配置主要包含引导参数的配置,即从哪里下载VxWorks映象、系统热启动之后从什么设备上启动系统以及设备相关的其它参数的配置:

·默认引导参数配置 ·热启动设备和参数配置 (4) 外围设备驱动程序及相关参数的配置

·配置TrueFFS驱动程序 ·配置软盘驱动程序 ·并行端口驱动程序 ·时钟配置 ·浮点处理支持 ·硬盘配置 ·串口配置

(5) 文件系统配置 (6) 网络驱动程序配置 (7) 高级缓存配置 (8) 堆栈配置

二.VxWorks的基本配置 (1) 内核软件的配置 (2) 内核软件工具的配置 (3) 内核软件扩展工具的配置

VxWorks下设备驱动程序概述

VxWorks下的设备驱动程序在设计上继承了常规驱动程序的设计,同时也包含了自己的独到之处。VxWorks下的设备驱动程序都以模块为单位、各个模块之间功能明确、接口规范。VxWorks设备驱动程序是一个直接控制下层设备的上层软件接口。 一.VxWorks下常用设备驱动程序源文件

如下:

二.VxWorks下设备驱动程序的配置

配置VxWorks下系统自带的设备驱动程序,是一个非常简单的事情,只要在相关的文件中找到驱动对应的宏,就可以把设备驱动程序添加到系统中了。

在..\\Tornado\\tager\\config\\bspname目录下,可以找到config.h文件,在这个文件里包含了通用设备驱动程序的宏定义。比如网卡驱动程序、硬盘驱动程序、时钟驱动程序、软盘驱动程序等等。

设备厂商提供的设备驱动程序通常以库文件或者对象文件、加上头文件的方式提交给客户的。在其提供的readme文件里,描述了如何把这个设备驱动程序添加到VxWorks中的方法。该文件中通常还会包括驱动程序版本信息,编写厂家,介绍,系统需求及驱动程序使用说明。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Vxworks BSP开发流程(3)在线全文阅读。

Vxworks BSP开发流程(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/501628.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: