📄 100.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://202.112.58.200"><font face="黑体"><big><big>Tsinghua</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center"> 嵌入式系统 (BM: turbolinux jacobw) </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="100" align="center" valign="top"><br><p align="center">[<a href="嵌入式系统.htm">回到开始</a>][<a href="59.htm">上一层</a>][<a href="101.htm">下一篇</a>]
<hr><p align="left"><small>发信人: lzy (心灵钻石), 信区: Embedded <br>
标 题: 自己写的一点,大家指正 <br>
发信站: BBS 水木清华站 (Tue Jun 19 08:57:53 2001) <br>
<br>
vxworks下bsp制作教程 <br>
1 vxworks概述 <br>
vxworks是WIND RIVER公司的产品。作为一种商用的嵌入式操作系统?vxworks拥有 <br>
强大的功能和友好的用户界面。与免费的嵌入式操作系统相比?商用操作系统 <br>
经过严格的测试?具有良好的实时性?易用性和大量的文档支持?但是它的源码是 <br>
不公开的并且价格昂贵;免费的嵌入式操作系统有很多?大都是linux的移植?公开 <br>
源代码?但缺乏文档?要对照源码进行开发。 <br>
2 BSP的流程 <br>
BSP流程分成两部分。首先是位于BootRom中的Boot代码?它的作用是实现配置硬件和 <br>
启动vxworks下载程序。接下来是下载后跳转到vxworks的入口地址运行操作系统和 <br>
应用程序。 <br>
流程入图: <br>
ROM中的启动代码部分: <br>
RomInit在文件在文件romInit.s中。它是运行的开始?实现这一部分是首先的。 <br>
它实现判断启动类型?配置内核和非内核寄存器以及内存和外围设备的读写时序 <br>
?因此可以在此处加入内存检测功能。在BSP中无法进行调试?只能通过闪灯实现 <br>
云信正确与否的判断。闪灯功能函数也要在此加入。 <br>
判断启动类型和配置寄存器?这一部分不需要改动。 <br>
配置内存和外围设备读写时序?要进行改动。这一部分的SDRAM?ROM?FLASH?FPGA <br>
有相应的模板可以参考。它的实现是通过使用宏定义来实现的。但是要改动的 <br>
话也不难?一般是改动空间大小的屏蔽位?读写位数?以及片选寄存器OR和BR。 <br>
至于特殊外设的读写有待讨论。 <br>
内存检测在这里实现较复杂?它根据相应的内存检测算法实现。主要是对地址线 <br>
和数据线的检测。通过写入数据再会读出数据来判断。使用"走步1"和"走步0" <br>
算法。这一部分较多的依赖硬件?可移植性较差?根据自己的单板改动。 <br>
闪灯在这一部分是强烈推荐的。因为闪灯才能定位程序的运行位置。闪灯函数 <br>
可移植?一般要改动?因为灯可能接在不同的I/O口上。另外注意860SAR的PORT B <br>
是32位的。具体的端口见相应的CPU的I/O口的参数?配置相应的寄存器。 <br>
RomInit在函数结尾跳入RomStart。 <br>
RomStart在BootInt.c文件中。它是系统运行的第一个C函数。这一部分是 <br>
Wind River公司提供的标准程序?一般不需改动。该函数是C的入口函数, <br>
由汇编程序调用,主要完成清内存,将ROM中的程序拷贝到RAM,解压并跳 <br>
至解压后的程序处运行。 <br>
UsrInit在BootConfig.c文件中。它主要是实现硬件的初始化。其中涉及 <br>
到串口?网口的初始化?CONSOLE的配置等。 <br>
其中串口和网口的配置是BSP的重要部分?但860CPU对串口和王口有很好的 <br>
支持?只要做很小的改动即可?串口很简单?网口较复杂一些。 <br>
UsrRoot在BootConfig.c文件中。它主要是实现vxworks文件的下载?并且 <br>
跳转到vxworks的入口地址。从而进入到操作系统中去。 <br>
VXWORKS文件中的代码部分: <br>
SysInit在sysAlib.s中。它是vxworks的启动代码。它与RomInit的作用 <br>
相同?对于这个文件?我们一般不需要去改动它。 <br>
UsrInit在Usrconfig.c中。它的作用与Boot中的UsrInit的作用相同? <br>
他们都调用SysLib.c中的子函数。实现相同的硬件初始化功能。 <br>
UsrRoot在UsrConfig.c中。它的作用与Boot中的UsrRoot的作用类似 <br>
。但是这里的UsrRoot是最终进入到应用程序中去。 <br>
<br>
-- <br>
<br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.38.81.18] <br>
</small><hr>
<p align="center">[<a href="嵌入式系统.htm">回到开始</a>][<a href="59.htm">上一层</a>][<a href="101.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -