这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [原创]Tornado2.0下用CF卡作启动盘的详细步骤

共5条 1/1 1 跳转至

[原创]Tornado2.0下用CF卡作启动盘的详细步骤

菜鸟
2006-06-02 09:12:43     打赏

网络加载

一.修改和配置BSP

1. 把以下文件拷贝到 target/config/pcPentium文件夹里(该文件夹里存放的是目标板的BSP文件,注意备份原来的sysLib.c, config.h 和configNet.h):

config.h ;configNet.h;sysRtl81x9.c;sysLib.c.

2. 把rtl81x9.h 拷贝到target\h\drv\end\unsupported下。

3. 把rtl81x9.c 和Makefile拷贝到target\src\drv\end\unsupported下。

4. 修改config.h中的启动行(覆盖相应的原程序即可)。

#elif (CPU_VARIANT == PENTIUM)

#define DEFAULT_BOOT_LINE \

"rtl(0,0)host:vxWorks h=192.168.0.24 e=192.168.0.55 u=target pw=target tn=target"

5. 完成上述工作后就可创建编译器(GNU)了:

->cd D:\tornado2.0\host\x86-win32\bin 回车

->torvars 回车

->cd D:\tornado2.0\target\src\drv\end\unsupported 回车

->make CPU=PENTIUM 回车

成功后在目录D:\tornado2.0\target\src\drv\end\unsupported下会出现

depend.PENTIUMgnu文件。

二.编译和固化BootRom(即:引导映像)

6. 在tornado>build中选择Build Boot Rom,然后选择pentium和bootrom_uncmp。则会在D:\tornado2.0\target\config\pcPentium目录下自动编译生成bootrom_uncmp文件(这就是我们所要的引导映像)。把bootrom_uncmp拷到D:\tornado2.0\host\x86-win32\bin。

7. 然后进入cmd ,进入D:\tornado2.0\host\x86-win32\bin目录,输入命令mkboot(空格)H:(空格)bootrom_uncmp ,选择yes,再选择关闭。这样,引导映像就被固化到CF卡中,CF卡中会出现bootrom.sys文件。此时,可以将CF卡取出,并插入至目标机。

注意:当需要重新做启动盘时,进入D:\tornado2.0\host\x86-win32\bin目录,

输入命令del H:(回车),选择yes,

输入命令vxcopy bootrom_uncmp H:bootrom.sys

三.创建Bootable VxWorks Image

8. 新建一个Bootable工程 (可选择带应用程序或不带应用程序,假设路径是

D:\tornado2.0\target\proj\ Project2),首先使它编译通过,它将在

D:\tornado2.0\target\proj\Project2\default目录下自动生成vxworks,这也就是我们所要的VxWorks Image. 将vxworks拷到根目录D:\ 。

四.配置FTP Server

9. 首先打开FTP Server,

File>open Log中选择D:\tornado2.0\target\proj\Project2\default下的vxworks。Logging>Log option中都选中。

Security>Users/right 中的用户名,密码等要和config.h中保持一致。Home directory选择D:\ ,right中选择directory为*。

注意:FTP Sever必须在目标机启动之前开启,因为目标机是通过它来下载宿主机上的VxWorks Image.

10.配置好FTP Server后,上电启动目标机,CF卡中的引导映象首先对目标机进行简要的初始化,然后自动从宿主机上下载vxWorks映象至目标机执行,至此,目标机成功启动并进入VxWorks操作系统。

五.配置Target Server

11. 选择tornado下的tools> target Server>configure中Target Server Property选择Back end并设置为wdbrpc,再选择core file and symbol , file中选D:\tornado2.0\target\proj\Project2\default ,选中all symbol.

target IP address与config.h中的DEFAULT_BOOT_LINE一致。

【续】硬盘加载

【第一步】 修改config.h中的启动行参数:

(要注意你的CF卡是使用哪个ata控制器)

1 config.h

#define DEFAULT_BOOT_LINE \

“ata=1,0(0,0)host:/ata1/vxWorks h=192.168.0.24 e=192.168.0.55 o=rtl"

【第二步】 BSP中修改有关ata配置的部分:
2 config.h中包含定义:

#define INCLUDE_ATA /*包含IDEEIDE(ATA)硬盘驱动*/

3 config.h中将
#define SYS_WARM_TYPE SYS_WARM_FD

改为
#define SYS_WARM_TYPE SYS_WARM_ATA /*定义热启动设备为硬盘*/
4 config.h中把
#define SYS_WARM_ATA_CTRL 0
改为
#define SYS_WARM_ATA_CTRL 1 /*使用1#硬盘控制器进行热启动*/

5 config/bspname/sysLib.c中找到
ATA_RESOURCE ataResource[]=
{
................
PCMCIA
...................
}
修改为
ATA_RESOURCE ataResource[]=
{
................
IDE_LOCAL
...................
} /*
定义设备为IDE 硬盘*/

另外需要改写其他的参数。例如ATA1_CONFIG等等。

6 sysLib.c中将原来的ataTypes数组
ATA_TYPE ataTypes[ATA_MAX_CTRLS][ATA_MAX_DRIVES] =
{
................
{{761, 8, 39, 512, 0xff}, /* ctrl 1 drive 0 */
...............
};
改为
ATA_TYPE ataTypes[ATA_MAX_CTRLS][ATA_MAX_DRIVES] =
{
................
{{980, 8, 32, 512, 0xff}, /* ctrl 1 drive 0 */
...............
}; /*
使它和你的CF卡的几何参数(磁道,扇区,柱面等)一致*/
这个参数可以在BIOS中查找到,使用IDE HDD AUTO DETECTION 就可以查看你的CF卡的参数,这对于硬盘也是一样的。

7 config/bspname/pc.h中找到
#define ATA1_INT_LVL 0x9
改为
#define ATA1_INT_LVL 0xf /*定义中断请求号*/

注意在制作“硬盘加载”方式下的引导盘之前,必须先完成“网络加载”方式下的第1.2.3.5步,主要是为了生成工具链:depend.PENTIUMgnu,为下面的编译作准备。

【第三步】 创建BootromVxworks image

8 首先用Dos 6.22 启动pc104,格式化 CF 卡为一个主DOS分区.

执行以下的步骤:
C:\>format C: 回车;
C:\>vxsys C: 回车;
(成功后vxld会成功写入CF卡的引导扇区,表明你的CF卡已经在vxworks下被认可了,现在就可以创建Bootrom了。)

9 参照《网络加载》中的第二步:编译和固化Bootrom,创建一个引导映像bootrom_uncmp,并将bootrom.sys文件做到你的CF卡中。

10 创建VxWorks Image(可选择带应用程序或不带应用程序),并将其拷贝至CF卡中。至此,引导盘制作完毕,现在可以将CF卡插入目标机并启动,出现了心爱的loading

其加载顺序是这样的:
VxLd-->bootrom.sys-->VxWorks image

【最后】 下载调试应用程序

11 如果硬盘中的vxWorks映象没有封装应用程序,单纯只是为了从硬盘启动vxWorks,则启动成功后,还可以配置你的FTP Servertarget server,通过网络(连接好网线)来下载调试运行你的应用程序,也就是说硬盘加载方式不仅可以封装运行,还可以下载调试。若硬盘中的vxWorks映象已经封装应用程序,则不能再进行下载调试。

注意:

1. 在默认设置情况下,如果在config.h中包含定义#define INCLUDE_ATA,则vxworks 从一个ata 设备上启动。但是如果有两个ata controller的话,需要修改sysLib.c中的ataResources 来解决这个问题,来支持更多的ata drive。而一般的CF卡是在ata1 controller上面的,所以这就是问题的关键所在。

2. 在启动行参数设置中,

“ata=1,0(0,0)host:/ata1/vxWorks h=192.168.0.24 e=192.168.0.55 u=target o=rtl"

“ata=1,0(0,0)”中括号外的1表示ata controler1(硬盘控制器1),0表示drive 0

(驱动器0);括号内的前一个0表示硬盘编号,和drive 0是同样的意思,后一个0表示硬盘的分区编号。

host:/ata1/vxWorks”是需要Bootrom加载的映象文件,其中“ata1”不是必须的,只是选择的设备名称,可根据喜好任意设定,如“gaoping”。特别注意的是这里的vxWorks一定要与生成的映象文件名一致。

3. 在硬盘加载方式中,虽然我们是将CF卡作为硬盘,但它与普通的硬盘还是有差别的,一般的CF卡作为ata1 controllersecondary,普通的硬盘才作为ata0 controllerprimary

4. 驱动器也有主从之分:drive 0master表示主驱动器 C:”;drive 1slave表示从驱动器D:”。



[align=right][color=#000066][此贴子已经被作者于2006-6-2 1:20:59编辑过][/color][/align]




关键词: 原创     Tornado2.0     下用     卡作     启动     详细    

菜鸟
2006-06-02 09:22:00     打赏
2楼

硬盘加载

【第一步】 修改config.h中的启动行参数:

(要注意你的CF卡是使用哪个ata控制器)

1 config.h

#define DEFAULT_BOOT_LINE \

“ata=1,0(0,0)host:/ata1/vxWorks h=192.168.0.24 e=192.168.0.55 o=rtl"

【第二步】 BSP中修改有关ata配置的部分:
2 config.h中包含定义:

#define INCLUDE_ATA /*包含IDEEIDE(ATA)硬盘驱动*/

3 config.h中将
#define SYS_WARM_TYPE SYS_WARM_FD

改为
#define SYS_WARM_TYPE SYS_WARM_ATA /*定义热启动设备为硬盘*/
4 config.h中把
#define SYS_WARM_ATA_CTRL 0
改为
#define SYS_WARM_ATA_CTRL 1 /*使用1#硬盘控制器进行热启动*/

5 config/bspname/sysLib.c中找到
ATA_RESOURCE ataResource[]=
{
................
PCMCIA
...................
}
修改为
ATA_RESOURCE ataResource[]=
{
................
IDE_LOCAL
...................
} /*
定义设备为IDE 硬盘*/

另外需要改写其他的参数。例如ATA1_CONFIG等等。

6 sysLib.c中将原来的ataTypes数组
ATA_TYPE ataTypes[ATA_MAX_CTRLS][ATA_MAX_DRIVES] =
{
................
{{761, 8, 39, 512, 0xff}, /* ctrl 1 drive 0 */
...............
};
改为
ATA_TYPE ataTypes[ATA_MAX_CTRLS][ATA_MAX_DRIVES] =
{
................
{{980, 8, 32, 512, 0xff}, /* ctrl 1 drive 0 */
...............
}; /*
使它和你的CF卡的几何参数(磁道,扇区,柱面等)一致*/
这个参数可以在BIOS中查找到,使用IDE HDD AUTO DETECTION 就可以查看你的CF卡的参数,这对于硬盘也是一样的。

7 config/bspname/pc.h中找到
#define ATA1_INT_LVL 0x9
改为
#define ATA1_INT_LVL 0xf /*定义中断请求号*/

注意在制作“硬盘加载”方式下的引导盘之前,必须先完成“网络加载”方式下的第1.2.3.5步,主要是为了生成工具链:depend.PENTIUMgnu,为下面的编译作准备。

【第三步】 创建BootromVxworks image

8 首先用Dos 6.22 启动pc104,格式化 CF 卡为一个主DOS分区.

执行以下的步骤:
C:\>format C: 回车;
C:\>vxsys C: 回车;
(成功后vxld会成功写入CF卡的引导扇区,表明你的CF卡已经在vxworks下被认可了,现在就可以创建Bootrom了。)

9 参照《网络加载》中的第二步:编译和固化Bootrom,创建一个引导映像bootrom_uncmp,并将bootrom.sys文件做到你的CF卡中。

10 创建VxWorks Image(可选择带应用程序或不带应用程序),并将其拷贝至CF卡中。至此,引导盘制作完毕,现在可以将CF卡插入目标机并启动,出现了心爱的loading

其加载顺序是这样的:
VxLd-->bootrom.sys-->VxWorks image

【最后】 下载调试应用程序

11 如果硬盘中的vxWorks映象没有封装应用程序,单纯只是为了从硬盘启动vxWorks,则启动成功后,还可以配置你的FTP Servertarget server,通过网络(连接好网线)来下载调试运行你的应用程序,也就是说硬盘加载方式不仅可以封装运行,还可以下载调试。若硬盘中的vxWorks映象已经封装应用程序,则不能再进行下载调试。

注意:

1. 在默认设置情况下,如果在config.h中包含定义#define INCLUDE_ATA,则vxworks 从一个ata 设备上启动。但是如果有两个ata controller的话,需要修改sysLib.c中的ataResources 来解决这个问题,来支持更多的ata drive。而一般的CF卡是在ata1 controller上面的,所以这就是问题的关键所在。

2. 在启动行参数设置中,

“ata=1,0(0,0)host:/ata1/vxWorks h=192.168.0.24 e=192.168.0.55 u=target o=rtl"

“ata=1,0(0,0)”中括号外的1表示ata controler1(硬盘控制器1),0表示drive 0

(驱动器0);括号内的前一个0表示硬盘编号,和drive 0是同样的意思,后一个0表示硬盘的分区编号。

host:/ata1/vxWorks”是需要Bootrom加载的映象文件,其中“ata1”不是必须的,只是选择的设备名称,可根据喜好任意设定,如“gaoping”。特别注意的是这里的vxWorks一定要与生成的映象文件名一致。

3. 在硬盘加载方式中,虽然我们是将CF卡作为硬盘,但它与普通的硬盘还是有差别的,一般的CF卡作为ata1 controllersecondary,普通的硬盘才作为ata0 controllerprimary

4. 驱动器也有主从之分:drive 0master表示主驱动器 C:”;drive 1slave表示从驱动器D:”。


菜鸟
2006-06-03 03:41:00     打赏
3楼
有一个问题,

我们在使用硬盘盘发现,每当开机第一次使用硬盘的时候,比如用ls,ll等关于fat32文件系统的所有函数,都要等上一段时间,好象实在检测。下一次后就很快就执行完成了。

但下一次开机后有是同样问题。


菜鸟
2007-01-19 03:30:00     打赏
4楼

多谢楼主分享


菜鸟
2007-03-02 00:54:00     打赏
5楼

多谢楼主分享


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]