admin 管理员组

文章数量: 1086019


2024年4月30日发(作者:lua怎么读)

维普资讯

2006年 

第2期 

九江学院学报(自然科学版) 

Journal of jiujiang University(natural sciences) 

2006 

N0.2 

Vx Works系统下的BOOTROM在线编程方法 

蔡卫平 张怡典 

(1九江职业技术学院电子工程系;2九江职业技术学院电气工程系 江西九江332005) 

摘要:嵌入式系统中,通常使用可插拔的Flash芯片作为BOOTROM,每烧写一次 

BOOT,就需要拔插一次Flash芯片。在系统软件调试过程中,经常需要重烧BOOT,Flash 

芯片经多次插拔后,很容易损坏。如果采用在线编程的方法,则可以避免这一问题,而且 

还可以实现BOOTROM远程在线升级。基于VxWorks操作系统和MPC8241的硬件平台, 

介绍一种BOOTROM在线编程的方法。 

关键词:VxWorks;BOOTROM;在线编程 

中图分类号:rrN 9l文献标识码:A文章编号:1006-3838(2006)02—0030一(O3) 

l 引言 

SST39VF040或AMD29VF040,地址为0xffS00000 

VxWorks是由美国Wind River公司推出的一 

0xft87fff。 

种嵌入式实时操作系统,广泛应用于电子通信设 

备中,譬如程控交换机的单板。VxWorks的系统 

引导程序通常烧写在一片或两片512K Flash芯片 

上,该芯片被称为BOOTROM。由于在调试过程中 

3软件流程 

VxWorks系统正常启动后,CPU一般不再需 

要访问BOOTROM,因此其地址通常不可见,为了 

BOOTROM中的程序经常需要修改,因此单板上 

配有BOOTROM芯片插座,在编程器上将BOOT 

文件写入芯片,然后将芯片压入单板插座,上电 

即可运行。然而多次插拔芯片不仅会导致芯片与 

插座接触不良,还可能损坏芯片,如果BOOTROM 

有两片Flash,则先要将BOOT文件按奇偶地址劈 

成两个文件,再分别烧写到两片Flash上,采用在 

线编程的方法烧写BOOT则可以避免这些问题, 

此外,还可以实现BOOT远程在线升级,这对于 

交换机终端设备而言尤为重要。以某程控交换机 

实现在线编程,必须使该段地址允许访问,为此, 

需要在BSP文件sysLib.C中添加BOOTROM地址 

映射,代码如下: 

PHYS

MEM

DESC sysPhysMemDesc[]= 

{ 

{ 

(void )ROM—BASE—ADRS, 

(void )ROM—BASE—ADRS, 

ROM

VM

——

_

SIZE, 

STATE

MASK—VALID I VM

——

STATE 

—— 

单板为例,本文将详细介绍BOOTROM在线编程 

的方法。 

2硬件平台简介 

MASK

——

WRITABLE I VM

STATE MASK

CACHEABLE, 

VM

——

STATE

..

VALID I VM

..

STATE

WRIT- 

——

采用MPC8241为CPU,其core时钟为166M, 

地址映射方式为MAP B。SDRAM容量为16MB, 

ABLE I VM

STATECACHEABLE

NOT 

}, 

时钟66M,MPC8241片内集成有PCI总线控制器, 

PCI总线上挂有以太网控制器RTLS139,VxWorks 

}; 

系统正常运行后,可以通过该以太网控制器,用 

FrP将BOOT文件从主机download到单板内存。 

BOOTROM芯片为一片512K Flash,兼容两种型号 

sysPhysMemDesc[]是VxWorks系统管理下 

的物理内存表,每一段内存空间都用一个PHYS— 

MEM

DESC类型的结构体来描述,该结构体表 

_

[收稿Et期]2006—01—14 

[作者简介]蔡卫平(1973一 ),男,工学硕士,讲师。 

维普资讯

2006年第2期 九江学院学报(自然科学版) -31- 

明了该段内存的属性,如起始地址,长度,是否 

可写,是否能cache等。上述代码中ROM—BASE 

ADRS为BOOTROM基地址,即0xttS00000, 

ROM

SIZE为Ox80000.重新编译BSP,并运行 

VxWorks后,就可以读写BOOTROM了。 

在调试状态下,主机作为F'FP server,而单 

板作为agent,只要给定server IP,单板的兀P用 

户名和口令以及BOOT的文件名和路径,就可以 

从主机download BOOT文件,以下是BOOT在线 

升级的主要代码: 

STATUS FieldUpdateBoot() 

{ 

兀 PRAM ftp: 

unsigned char,lc buffer; 

unsinged int length; 

ftp.server

_

ip “168.1.141.68”: 

fcp.username=“sp3”; 

ftp.password=“sp3”: 

ftp.dimame=“E:/Tomado/target/config/ 

iad824l”: 

ftp.filename=“boot.bin”: 

buffer=malloc(Ox80000); 

if(FtpGetFile(&ftp,buffer,Ox80000, 

&length)!=OK) 

return ERROR; 

if(FlashBootErase()==0); 

FlashBootWrite(0,buffer,length); 

lfee(buffer); 

erturn OK; ’ 

} 

其中BOOT的文件格式必须是二进制文件, 

FtpGetFile()的函数原型如下: 

STATUS FtpGetFile(丌P—PRAM pftp,un— 

singed char,lc chBuffer,unsinged int bufsize,un— 

signed int,lc datasize) 

{ 

int n32CtrlSock; 

int n32DataSock; 

int n32Bytes,i,total; 

int dwFtpReplayGet,dwFtpComm; 

char P; 

STATUS status; 

status=fipXfer(pfip一>server_ip,PfiP 

>usemame. 

PfiP一>password,“”, 

“RETR%S”. 

pftp一>dimame, 

pl 一>filename, 

&n32CtrlSock, 

&n32DataSock 

); 

if(sattus==ERROR) 

{ 

prinff(“ftpXfer()is failure…….. 

\n”); 

return ERROR; 

} 

prinff(“fipXfer()is SUCCESS……..\ 

n”); 

n32Bytes=O: 

i=0; 

total=0; 

P chBuffer; 

n32Bytes=read(n32DataSock,chBuffer, 

bufsize); 

P+=n32Bytesl 

while(n32Bytes>0) 

{total=total+n32Bytes; 

i++: 

taskDelay(1); 

n32Bytes=read(n32DataSock,P,buf- 

size); 

P+=n32Bytes: 

} 

taskDelay(60); 

close(n32DataSock); 

dwFtpReplayGet = ifpReplyGet 

(n32CtrlSock,TRUE); 

if(dwFtpReplayGet!=F]rI)一COM— 

PLETE) 

{ 

status=ERROR; 

ntf(“fipReplyGet fail!\n”); 

} 

dwFtpComm=ftpCommand(n32CtrlSock, 

“QUIT”,0,0,0,0,0,0); 

if(dwFtpComm!=丌P_COMPLETE) 

{ 

status=ERROR: 

prinff(“QuIT error!\n”); 

} 

close(n32CtrlSock); 

维普资讯

32・ 蔡卫平 张怡典:Vxw0rks系统下的BOOTROM在线编程方法 

赤datasize=total: 

需要兼容更多型号的Flash,可以把这些Flash的 

retum OK; 

驱动做成一个文件库,根据ID号来调相应的擦写 

} 

函数。此外,在FlashBootErase()中还要判断 

其中ftpXfer为vxw0rks提供的函数,得到 

Flash是否写保护(Lock Down),若写保护则由于 

BOOT文件后,存放在首地址为buffer的SDRAM 

软件无法解锁,必须在编程器上才能去掉写保护, 

中,length为文件长度。FlashBootErase()是 

因此返回擦除失败。事实上,新买来的Flash一般 

Flash擦除函数,FlashBootWrite()是Flash写函 不会写保护,在编程器上用过的Flash如果不特地 

数,返回0表示成功,否则失败。由于BOOTROM 加锁,也不会有写保护。擦写过程中还可仿照编 

兼容两种Flash芯片,因此这两个函数中应首先读 

程器,打印进度,擦除完成后作空白检查,写完 

芯片ID号,据此调相应型号Flash的驱动。如果 

成后作校验。完整的软件流程如图1所示。 

图1 BOOTROM在线编程软件流程 

4结束语 

程序运行稳定,无一例失败。如果是正式发布的 

采用本文介绍的方法编写的BOOTROM在线 

软件,可以通过人机命令调用前文介绍的函数进 

编程代码,在多块程控交换机单板上经大量测试, 

行BOOTROM在线升级。 (下转第37页) 

维普资讯

谢凌陈志荣:北美岩沥青改性沥青混凝土配合比设计 ・37・ 

参考文献: 

[1]JTJ058—2000,公路工程集料试验规程[S].北京:人民交通出版社,2000.57—236 

[2]JTJ052—2000,公路工程沥青及沥青混合料试验规程[S].北京:人民交通出版社, 

2000.233—397 

[3]沈金安.沥青及沥青混合料路用性能[M].北京:人民交通出版社,2003.57—60 

TIIE PROPORTION DESIGN OF MODⅡ1匝D ASPHALT CONCRETE 

XIE Ling ,CHENG Zhi—rong 

(1 Huazhong University of Science and Technology Hubei Wuhan 430074,China; 

2Jiujiang University Jiujiang 332005) 

ABSTRACT UINTAITE Mastic Asphalt iS 811 excellent natural bituminous materia1.which can im— 

prove the performance of asphalt pavement when mixed with conventional asphalt mixture.The proportion of 

UINTAITE mastic asphalt modified asphalt concrete is designed by using the desin tgheory of traditional as. 

phah pavement.Also,this material was applied in the surface of highway pavement,which showed good du. 

rability and service performance. 

KEY WORDS UINTAITE Mastic Asphalt;proportion;design 

(责任编辑陈平生) 

(上接第32页) 

参考文献: 

[1]Wind River systems Inc.VxWorks Programmerg Guide.5.4 Edition 1,1 999 

[2]Motorola,Inc.MPC8245 Integrated Processor User's Manual,Rev 1,10/2001 http://www 

motorola.corn/semiconductors 

BOOTROM FIELD PROGRAMMING IN VXWORKS 

CAI Wei—ping;ZHANG Yi—dian 

(Electronic Engineering Department,Jiujiang Vocational&Technical College,JiuJiang,332005; 

Electrical Engineering Department,Jiujiang Vocational&Technical College,JiuJiang,332005) 

ABS I1队CT A plug capable flash memory device often be used as the B00TR0M in embedded sys. 

tem.The chip must be removed and instaUed once every time the B00TR0M be programmed.During the 

test of system software,the B00TR0M need to rewrite more than one times,so the flash chip must be plug 

again and again.It is easy to damage the chip.The problem can be avoid by BOOTROM field programming. 

moreover,a BOOT update online become realistic.Based on the VxWorks operation system and a hardware 

platform of MPC8241.this paper introduces a way of B00TR0M field programming. 

KEY W0RDS VxWorks;B00TR0M:Field program . 

(责任编辑陈平生) 


本文标签: 芯片 地址 单板 沥青