一种奔腾ii处理器系统的引导方法

文档序号:6420361阅读:180来源:国知局
专利名称:一种奔腾ii处理器系统的引导方法
技术领域
本发明涉及一种奔腾II处理器系统的引导方法,尤其涉及应用于嵌入式系统的奔腾II处理器系统的引导方法。
背景技术
奔腾II处理器是广泛应用于个人计算机和服务器等大型计算设备的高性能处理器,通过和外围的北桥芯片和南桥芯片的配合,就构成了完整的处理器系统。和同等级性能的嵌入式专用处理器系统相比,使用奔腾II处理器系统在价格上便宜很多,具有很好的性价比,应用前景广阔。
在个人计算机和服务器中,处理器系统的启动都是使用主板自带的BIOS(基本输入输出系统)。但是,对于嵌入式系统,普通主板的BIOS有如下的缺点1.普通主板的BIOS过于庞大,有很多功能是不必要的,比如,通常主板BIOS会提供修改BIOS配置的简单用户界面,监测键盘、鼠标、USB接口等,在嵌入式系统中,这些功能都不是一定需要的,而在嵌入式系统中常用的许多功能普通主板的BIOS却又不能够提供;2.普通主板针对的处理器系统的硬件结构是标准的,而嵌入式系统的硬件结构是定制的,这也使得不可能在嵌入式系统中直接使用个人计算机主板使用的BIOS;3.普通主板的BIOS的程序只在实模式下运行,只有最多1M的可使用内存空间,不能使用处理器系统所提供的全部内存资源,然而嵌入式系统常用的运行模式是从服务器下载可执行映象文件,这就需要足够的内存资源存放可执行映象文件,只能在实模式下运行的BIOS就无法满足要求。
由上所述,可以看出普通奔腾II处理器系统主板的BIOS不适宜于在嵌入式系统中应用。

发明内容
本发明的目的是提供一种奔腾II处理器系统的引导方法,重点针对嵌入式系统的应用特点,提供处理器初始化,内存检测和配置,串口驱动,总线配置,保护模式运行等功能,引导奔腾II处理器系统到正常工作的状态,同时提供简单的终端命令解析、执行的功能,使得系统可以灵活配置引导方式,便于根据需要扩展。所述方法具有适用范围广、可靠性高、适宜于嵌入式系统应用的特点。
本发明的技术方案如下一种奔腾II处理器系统的引导方法,应用于嵌入式系统,包括以下步骤a)复位上电跳转在地址FFFF0h处执行跳转指令,该跳转指令将引导程序入口指向地址空间F0000h-FFFF0h范围内的一设定地址;b)设置南桥芯片的X总线片选寄存器,扩展所述奔腾II处理器系统可以访问的地址空间为从FFF80000h至FFFFFFFFh,共512k字节;c)设置北桥芯片的控制动态随机访问存储器的相关寄存器,读取双列直插存储器模块内存条的串行在线检测数据),配置所述动态随机访问存储器;d)初始化中断描述符表,将中断描述符表的表项数量和内容都设置为空,并将中断描述符表寄存器指向所述中断描述符表,同时禁止CPU响应外部中断;e)配置全局描述符表,将所述全局描述符表的第一个描述符表项设置为空,将所述全局描述符表的第二个描述符表项设置为指向地址空间00000000h-FFFFFFFFh,将所述第二个描述符表项的属性值设置为可读和可执行,将所述全局描述符表的第三个描述符表项设置为指向地址空间00000000h-FFFFFFFFh,将所述第三个描述符表项的属性值设置为可读和可写,将全局描述符寄存器指向所述全局描述符表;f)将代码段寄存器指向所述全局描述符表的所述第二个描述符表项,将其他的段寄存器都设置为指向所述全局描述符表的所述第三个描述符表项;g)设置所述奔腾II处理器系统的0号控制寄存器,使所述CPU从实模式运行状态切换到保护模式运行状态;h)设置所述南桥芯片的92号端口寄存器,使能第21根地址线,打开所有的物理地址空间;i)初始化所述奔腾II处理器系统的标准串口驱动器;j)启动命令行终端处理功能设置标准输入、标准输出和错误输出的驱动,启动终端命令行处理的主循环函数,监测标准输入设备的输入,解析输入命令和参数,根据命令表调用相应的处理函数,提供命令行处理功能。
所述的引导方法,其中,所述步骤c)中的动态随机访问存储器配置过程包括以下步骤c1)清空所述动态随机访问存储器的所有行边界寄存器,设置所述动态随机访问存储器的定时控制器为最大值;c2)根据外部双列直插存储器模块内存条插座和所述北桥芯片连接的方式来设置所述动态随机访问存储器的内存缓冲强度控制寄存器;c3)检测所述双列直插存储器模块内存条插座上是否有内存条存在;c4)从每一个存在的所述双列直插存储器模块内存条中读取串行在线检测数据,所述串行在线检测数据中包含了内存的实际大小、时间参数和内存的配置信息,根据读取的有效数据设置相应的寄存器的相应位。
所述的引导方法,其中,所述步骤c3)的检测双列直插存储器模块内存条是否存在的方法还包括以下步骤c31)将当前行的内存尺寸设置为能支持的最大值,禁止其他行的内存,即如果是第i行的内存正在被初始化,则行边界寄存器DRB
---DRB[(i-1)]设置为00h,而行边界寄存器DRB[i]---DRB[7]设置为10h;c32)存储地址00h写入一个32位的测试数据;c33)存储地址10h写入一个32位的按位反转测试数据;c34)存储地址00h和08h以外的地址写入64个双字;c35)从存储地址00h读出一个32位的数据,如果读出的数据与刚才写入的数据相同,表示此行内存初始化成功,否则表示失败或该行不存在内存设备。
所述的引导方法,其中,所述步骤c4)包括以下步骤c41)读取所述串行在线检测数据第5个字节,检查该双列直插存储器模块是单边还是双边的;c42)读取所述串行在线检测数据第3个字节值,设为SPD BYTE3,以此检查行地址有多少位;c43)读取所述串行在线检测数据第4个字节值,设为SPD BYTE4,以此检查列地址有多少位;c44)读取所述串行在线检测数据的第17个字节值,设为SPD BYTE17,以此检查所述动态随机访问存储器的内部Banks数;c45)按以下公式计算所述动态随机访问存储器的行边界寄存器的实际值DRB=2((SPD BYTE3)+(SPD BYTE4)+((SPD BYTE17)/2)-20)如果该列直插存储器模块内存是双边的,那么每一行的内存尺寸是该公式计算结果除以2;如果该列直插存储器模块是单边的,上边公式计算出的结果就是该行内存的实际大小;c46)根据计算结果设置相应的所述动态随机访问存储器行边界寄存器;c47)根据读取的所述串行在线检测数据第4个字节的值,即列地址的位数,设置相应的所述动态随机访问存储器页尺寸寄存器,配置每页的大小;
c48)读取所述串行在线检测数据第11个字节的值,检查是否支持错误检查和纠正,根据读出结果设置所述北桥芯片的芯片扩展总线配置寄存器的相应位;c49)根据读取的所述串行在线检测数据第17字节的值,设置所述动态随机访问存储器的分页策略寄存器,确定当前每行的Banks数;c410)读取所述串行在线检测数据第29个字节,得到所述串行在线检测数据中配置的行地址信号线有效到列地址信号线有效的延迟时间,如果读取的值比当前的行地址信号线有效到列地址信号线有效的延迟时间值大,用读取的值替换当前值;否则保持不变;c411)使能动态随机访问存储器刷新,选择刷新率,设置所述动态随机访问存储器控制器的相应位。
所述的引导方法,其中,所述步骤i)的初始化所述奔腾II处理器系统的标准串口驱动器包括以下步骤i1)设置串口芯片的波特率发生器的波特率;i2)设置串口芯片的线路控制寄存器;i3)设置串口芯片的调制解调器控制寄存器,设置寄存器的相应控制位使得RTS引脚有效;i4)设置串口芯片的缓存控制寄存器,使能发送和接收缓存,并清空缓存中的所有数据。
所述的引导方法,其中,所述步骤j)包括以下步骤j1)程序一直监测所述终端的输入,有字符输入时进行步骤j2)的操作;j2)缓存输入的字符到内存中,检测该输入字符是否是规定有特殊意义的字符,如果是规定有特殊意义的字符则根据输入的字符来执行相应的操作,否则将字符缓存到命令缓存中去;j3)检查所述命令缓存中的字符串长度,格式是否正确,如不正确,则退出本次循环;
j4)如格式正确则解析输入的字符串,分别解析到命令和参数数组;j5)在命令表中查询由步骤j4)解析出来的命令,如查询不到,则退出本次循环,否则,进行步骤j6)的操作;j6)由命令表中找到对应于输入命令的执行函数,将输入的参数按次序赋给执行函数,运行该执行函数。
所述的引导方法,其中,所述步骤j2)还包括以下步骤j21)如果输入字符是“\r”或“\n”,执行所述步骤j3)的操作;j22)如果输入字符是“Ctrl+C”,清空缓存到内存中的所有字符,退出本次对所述终端的监测,作异常取消处理后,开始下一次的监测循环;j23)如果输入字符是“Ctrl+U”,删除所述命令缓存中存储的所有字符串,但是保留命令提示符字符串,跳转到步骤j1),继续监测所述终端的输入;j24)如果输入字符是“Ctrl+W”,则删除所述命令缓存中的两个字符,跳转到步骤j1),继续监测所述终端的输入;j25)如果输入字符是“Ctrl+H”或“BACKSPACE”,则删除所述命令缓存中的一个字符,跳转到步骤j1),继续监测所述终端的输入;j26)如果输入字符不是上述规定有特殊意义的字符,则被当作普通字符缓存到所述命令缓存中去。
所述的引导方法,其中,所述步骤a)中跳转指令所指定的所述引导程序入口地址是FE000h。
所述的引导方法,其中,所述步骤i1)中所设定的波特率发生器的波特率为9600。
所述的引导方法,其中,所述步骤i2)中设置每字节为8个数据位,1个停止位。
本发明去掉了普通BIOS的许多不必要的功能,所需的程序空间远小于普通的BIOS;同时,可以访问全部的内存资源,克服了普通BIOS只能在实模式下运行的缺点;提供简单命令行处理功能,可以方便地扩展各种新的功能,非常适宜于嵌入式系统的各种应用。


图1是本发明的一种奔腾II处理器系统的引导方法的流程示意图;图2是本发明方法的动态随机访问存储器DRAM控制器的配置流程示意图;图3是本发明方法的标准串口驱动配置流程示意图;图4是本发明方法的命令行终端程序命令解析处理流程。
具体实施例方式
下面结合附图对本发明的具体实施例作进一步详细说明附图1介绍了应用于嵌入式系统的奔腾II处理器系统的引导方法的主要流程。奔腾II处理器系统在复位上电时,其指令地址是指向FFFF0,而从FFFF0到FFFFF只有16个字节空间,所以应该在FFFF0处加入一跳转指令,这跳转地址只能在F0000h-FFFF0h共64K字节空间范围内。根据程序设计的需要我们跳到FE000的位置开始运行引导程序的启动部分。启动部分的程序占据了FE000-FFFE0的8K字节空间,串口驱动和命令行处理的程序所占的地址空间较大,放置在FFF80000-FFFFFE000(启动部分程序配置南桥芯片后会把地址空间扩展到512K字节空间)。首先,启动部分程序扩展处理器系统可以访问的地址空间为512k字节(FFF80000-FFFFFFFF),然后是设置北桥芯片上的动态随机访问存储器DRAM控制器,对于动态随机访问存储器DRAM控制器的设置我们在下面结合附图2做详细说明,接着是初始化中断描述符表,因为在引导中不需要管理中断,所以,我们将中断描述表的表项数量和内容都设置为空,并将这个空表挂接到中断描述表寄存器上。接下来,配置全局描述符表,配置第一个描述符表项为空,配置第二个描述符表项指向的地址空间范围为全部的4G字节的地址空间(00000000-FFFFFFFF),该表项的属性为可读和可执行,配置第三个描述符表项指向的地址空间范围为全部的4G字节的地址空间(00000000-FFFFFFFF),该表项的属性为可读和可写,将该表挂接到全局描述符寄存器上。接下来,将代码段寄存器指向第二个描述符表项,将其他所有的段寄存器都指向第三个数据表项,从而得到一个平坦的地址空间。接下来,使能第21根地址线(A20),打开所有的物理地址空间。接下来,设置CR0寄存器,让处理器从实模式运行状态切换到保护模式运行状态。接下来,启动部分程序运行完毕,执行一个远跳转指令执行初始化标准串口的串口驱动程序,对于串口驱动程序的详细描述,在后面结合附图3详细描述,执行完串口驱动程序后。最后,跳转到终端主循环处理程序,该主循环处理程序的命令处理和解析流程在后面结合附图4做详细说明。
附图2介绍了北桥芯片的所述动态随机访问存储器DRAM控制器的配置方法。具体步骤如下c1)清空所有的DRAM行边界寄存器(DRB0-DRB7),设置DRAM的定时控制器为最大值,确保时序的稳定。
c2)配置DRAM内存缓冲强度控制寄存器,根据外部DIMM内存条插座和北桥芯片连接的方式来配置DRAM内存缓冲强度控制寄存器。
c3)通过如下算法判断那个DIMM内存条插座上插有内存设备c31)当前行的内存尺寸设置为能支持的最大值,禁止其它行的内存,即当第i行的内存正在被初始化,DRB
---DRB[(i-1)]设置为00h,而DRB[i]---DRB[7]设置为10h;c32)存储地址00h,写入一个32位的测试数据;c33)存储地址10h,写入一个32位的按位反转测试数据;c34)存储地址00h和08h以外的地址,写入64个双字;c35)存储地址00h,读出一个32位的数据,如果读出的数据与刚才写入的数据相同,表示该行内存初始化成功,否则表示失败或该行不存在内存设备。
c4)从每一个存在的DIMM内存条上读取串行在线检测(SPD)数据,串行在线检测(SPD)数据包含了内存的实际大小、时间参数和一些内存的配置信息。根据读取的有效数据配置相应的寄存器的相应位。具体步骤如下c41)读取所述串行在线检测(SPD)数据第5个字节,检查该DIMM是单边还是双边的;c42)读取所述串行在线检测(SPD)数据第3个字节值,设为SPD BYTE3,检查行地址有多少位;c43)读取所述串行在线检测(SPD)数据第4个字节值,设为SPD BYTE4,检查列地址有多少位;c44)读取所述串行在线检测(SPD)数据的第17个字节值,设为SPDBYTE17,检查DRAM的内部Banks数;c45)按以下公式计算DRAM行边界寄存器的实际值DRB=2((SPD BYTE3)+(SPD BYTE4)+((SPD BYTE17)/2)-20)如果该DIMM内存是双边的,那么每一行的内存尺寸是该公式计算结果除以2;如果该DIMM是单边的,上边公式计算出的结果就是该行内存的实际大小;c46)根据计算结果设置相应的DRAM行边界寄存器;c47)根据读取的所述串行在线检测(SPD)数据第4个字节的值,即列地址的位数,设置相应的DRAM页尺寸寄存器,配置每页的大小;c48)读取所述串行在线检测(SPD)数据第11个字节,检查是否支持ECC,根据读出结果设置所述北桥芯片的芯片扩展总线配置寄存器的相应位;c49)根据读取的所述串行在线检测(SPD)数据第17字节的值,设置DRAM的分页策略寄存器,确定当前每行的Banks数;c410)读取所述串行在线检测(SPD)数据第29个字节,得到所述串行在线检测(SPD)数据中配置的行地址信号线有效到列地址信号线有效的延迟时间,如果读取的值比当前的行地址信号线有效到列地址信号线有效的延迟时间值大,用读取的值替换当前值;否则保持不变;c411)使能DRAM刷新,选择刷新率,设置DRAM控制器的相应位。
通过以上4个主要步骤,可以完成对DRAM的配置。
附图3介绍了串口驱动的配置流程。对于嵌入式系统,一般提供串口作为终端处理的物理接口,串口芯片一般挂接在ISA(产业标准结构)总线上,这里描述在个人计算机中常用的串口芯片的驱动的方法i1)设置串口芯片的波特率发生器的波特率,一般为9600。
i2)设置串口芯片的线路控制寄存器,一般设置每字节为8个数据位,1个停止位。
i3)设置串口芯片的调制解调器控制寄存器,设置寄存器的相应控制位使得RTS引脚有效。
i4)设置串口芯片的缓存控制寄存器,使能发送和接收缓存,并清空缓存中的所有数据。
通过以上4个主要步骤,可以完成对串口驱动芯片的配置。
附图4介绍了对从输入终端输入的命令解析处理流程。具体步骤如下j1)程序一直监测输入终端的字符输入,有字符输入时进行步骤p2)的操作;j2)缓存输入的字符到内存中,检测输入字符是否是规定有特殊意义的字符,如果是规定有特殊意义的字符则根据输入的字符来决定下一步的操作,否则将字符缓存到命令缓存中去;具体方法如下j21)如果输入字符是“\r”或“\n”,执行步骤p3)的操作;j22)如果输入字符是“Ctrl+C”,清空缓存到内存中的所有字符,退出本次对所述输入终端的监测循环,作异常取消处理后,开始下一次的监测循环;j23)如果输入字符是“Ctrl+U”,删除所述命令缓存中存储的所有字符串,但是保留命令提示符字符串,跳转到步骤p1),继续监测所述输入终端的输入;j24)如果输入字符是“Ctrl+W”,则删除所述命令缓存中的两个字符,跳转到步骤1),继续监测所述输入终端的输入;j25)如果输入字符是“Ctrl+H”或“BACKSPACE”,则删除所述命令缓存中的一个字符,跳转到步骤p1),继续监测所述输入终端的输入;j26)如果输入字符不是上述规定有特殊意义的字符,则被当作普通字符缓存到所述命令缓存中去。
j3)检查所述命令缓存中的字符串长度,格式是否正确,如不正确,则退出本次监测循环;j4)解析输入的字符串,分别解析到命令和参数数组;j5)在命令表中查询由步骤p4)解析出来的命令,如查询不到,则退出本次监测循环,否则,进行步骤p6)的操作;j6)由命令表中找到对应于输入命令的执行函数,将输入的参数按次序赋给执行函数,运行该执行函数。
本发明方法通过上述步骤,所述引导程序完成命令解析,命令参数传递,和命令执行。
应当理解的是,对本领域普通技术人员来说,可以根据本发明的具体实施方式
和技术方案的说明做出各种可能的改变或替换,而所有这些改变或替换都应属于本发明的所附权利要求的保护范围。
权利要求
1.一种奔腾II处理器系统的引导方法,应用于嵌入式系统,包括以下步骤a)上电复位跳转在地址FFFF0h处执行跳转指令,该跳转指令将引导程序入口指向地址空间F0000h-FFFF0h范围内的一设定地址;b)设置南桥芯片的X总线片选寄存器,扩展所述奔腾II处理器系统可以访问的地址空间为从FFF80000h至FFFFFFFFh,共512k字节;c)设置北桥芯片的控制动态随机访问存储器的相关寄存器,读取双列直插存储器模块内存条的串行在线检测数据,配置所述动态随机访问存储器;d)初始化中断描述符表,将中断描述符表的表项数量和内容都设置为空,并将中断描述符表寄存器指向所述中断描述符表,同时禁止CPU响应外部中断;e)配置全局描述符表,将所述全局描述符表的第一个描述符表项设置为空,将所述全局描述符表的第二个描述符表项设置为指向地址空间00000000h-FFFFFFFFh,将所述第二个描述符表项的属性值设置为可读和可执行,将所述全局描述符表的第三个描述符表项设置为指向地址空间00000000h-FFFFFFFFh,将所述第三个描述符表项的属性值设置为可读和可写,将全局描述符寄存器指向所述全局描述符表;f)将代码段寄存器指向所述全局描述符表的所述第二个描述符表项,将其他的段寄存器都设置为指向所述全局描述符表的所述第三个描述符表项;g)设置所述奔腾II处理器系统的0号控制寄存器,使所述CPU从实模式运行状态切换到保护模式运行状态;h)设置所述南桥芯片的92号端口寄存器,使能第21根地址线,打开所有的物理地址空间;i)初始化所述奔腾II处理器系统的标准串口驱动器;j)启动命令行终端处理功能设置标准输入、标准输出和错误输出的驱动,启动终端命令行处理的主循环函数,监测标准输入设备的输入,解析输入命令和参数,根据命令表调用相应的处理函数,提供命令行处理功能。
2.根据权利要求1所述的引导方法,其特征在于,所述步骤c)中的动态随机访问存储器配置过程包括以下步骤c1)清空所述动态随机访问存储器的所有行边界寄存器,设置所述动态随机访问存储器的定时控制器为最大值;c2)根据外部双列直插存储器模块内存条插座和所述北桥芯片连接的方式来设置所述动态随机访问存储器的内存缓冲强度控制寄存器;c3)检测所述双列直插存储器模块内存条插座上是否有内存条存在;c4)从每一个存在的所述双列直插存储器模块内存条中读取串行在线检测数据,所述串行在线检测数据中包含了内存的实际大小、时间参数和内存的配置信息,根据读取的有效数据设置相应的寄存器的相应位。
3.根据权利要求2所述的引导方法,其特征在于,所述步骤c3)的检测双列直插存储器模块内存条是否存在的方法还包括以下步骤c31)将当前行的内存尺寸设置为能支持的最大值,禁止其他行的内存,即如果是第i行的内存正在被初始化,则行边界寄存器DRB
---DRB[(i-1)]设置为00h,而行边界寄存器DRB[i]---DRB[7]设置为10h;c32)存储地址00h写入一个32位的测试数据;c33)存储地址10h写入一个32位的按位反转测试数据;c34)存储地址00h和08h(请确认该处地址是否准确)以外的地址写入64个双字;c35)从存储地址00h读出一个32位的数据,如果读出的数据与刚才写入的数据相同,表示此行内存初始化成功,否则表示失败或该行不存在内存设备。
4.根据权利要求2所述的引导方法,其特征在于,所述步骤c4)包括以下步骤c41)读取所述串行在线检测数据第5个字节,检查该双列直插存储器模块是单边还是双边的;c42)读取所述串行在线检测数据第3个字节值,设为SPD BYTE 3,以此检查行地址有多少位;c43)读取所述串行在线检测数据第4个字节值,设为SPD BYTE 4,以此检查列地址有多少位;c44)读取所述串行在线检测数据的第17个字节值,设为SPD BYTE17,以此检查所述动态随机访问存储器的内部Banks数;c45)按以下公式计算所述动态随机访问存储器的行边界寄存器的实际值DRB=2((SPD BYTE 3)+(SPD BYTE 4)+((SPD BYTE 17)/2)-20)如果该列直插存储器模块内存是双边的,那么每一行的内存尺寸是该公式计算结果除以2;如果该列直插存储器模块是单边的,上边公式计算出的结果就是该行内存的实际大小;c46)根据计算结果设置相应的所述动态随机访问存储器行边界寄存器;c47)根据读取的所述串行在线检测数据第4个字节的值,即列地址的位数,设置相应的所述动态随机访问存储器页尺寸寄存器,配置每页的大小;c48)读取所述串行在线检测数据第11个字节的值,检查是否支持错误检查和纠正,根据读出结果设置所述北桥芯片的芯片扩展总线配置寄存器的相应位;c49)根据读取的所述串行在线检测数据第17字节的值,设置所述动态随机访问存储器的分页策略寄存器,确定当前每行的Banks数;c410)读取所述串行在线检测数据第29个字节,得到所述串行在线检测数据中配置的行地址信号线有效到列地址信号线有效的延迟时间,如果读取的值比当前的行地址信号线有效到列地址信号线有效的延迟时间值大,用读取的值替换当前值;否则保持不变;c411)使能动态随机访问存储器刷新,选择刷新率,设置所述动态随机访问存储器控制器的相应位。
5.根据权利要求1、2、3或4所述的引导方法,其特征在于,所述步骤i)的初始化所述奔腾II处理器系统的标准串口驱动器包括以下步骤i1)设置串口芯片的波特率发生器的波特率;i2)设置串口芯片的线路控制寄存器;i3)设置串口芯片的调制解调器控制寄存器,设置寄存器的相应控制位使得RTS引脚有效;i4)设置串口芯片的缓存控制寄存器,使能发送和接收缓存,并清空缓存中的所有数据。
6.根据权利要求5所述的引导方法,其特征在于,所述步骤j)包括以下步骤j1)程序一直监测所述终端的输入,有字符输入时进行步骤j2)的操作;j2)缓存输入的字符到内存中,检测该输入字符是否是规定有特殊意义的字符,如果是规定有特殊意义的字符则根据输入的字符来执行相应的操作,否则将字符缓存到命令缓存中去;j3)检查所述命令缓存中的字符串长度,格式是否正确,如不正确,则退出本次循环;j4)解析输入的字符串,分别解析到命令和参数数组;j5)在命令表中查询由步骤j4)解析出来的命令,如查询不到,则退出本次循环,否则,进行步骤j6)的操作;j6)由命令表中找到对应于输入命令的执行函数,将输入的参数按次序赋给执行函数,运行该执行函数。
7.根据权利要求6所述的引导方法,其特征在于,所述步骤j2)还包括以下步骤j21)如果输入字符是“\r”或“\n”,执行所述步骤j3)的操作;j22)如果输入字符是“Ctrl+C”,清空缓存到内存中的所有字符,退出本次对所述终端的监测,作异常取消处理后,开始下一次的监测循环;j23)如果输入字符是“Ctrl+U”,删除所述命令缓存中存储的所有字符串,但是保留命令提示符字符串,跳转到步骤j1),继续监测所述终端的输入;j24)如果输入字符是“Ctrl+W”,则删除所述命令缓存中的两个字符,跳转到步骤j1),继续监测所述终端的输入;j25)如果输入字符是“Ctrl+H”或“BACKSPACE”,则删除所述命令缓存中的一个字符,跳转到步骤j1),继续监测所述终端的输入;j26)如果输入字符不是上述规定有特殊意义的字符,则被当作普通字符缓存到所述命令缓存中去。
8.根据权利要求1所述的引导方法,其特征在于,所述步骤a)中跳转指令所指定的所述引导程序入口地址是FE000h。
9.根据权利要求5所述的引导方法,其特征在于,所述步骤i1)中所设定的波特率发生器的波特率为9600。
10.根据权利要求5所述的引导方法,其特征在于,所述步骤i2)中设置每字节为8个数据位,1个停止位。
全文摘要
本发明公开了一种奔腾II处理器系统的引导方法,该方法提供处理器初始化、内存检测和配置、串口驱动、保护模式运行等功能,引导奔腾II处理器系统到正常工作的状态,提供简单命令行处理功能,可以访问全部的内存资源,克服了普通BIOS只能在实模式下运行的缺点,可以方便地扩展各种新的功能,去掉了普通B1OS的许多不必要的功能,使得所需的程序空间远小于普通BIOS;非常适宜于嵌入式系统的各种应用。
文档编号G06F9/30GK1542587SQ200310112020
公开日2004年11月3日 申请日期2003年11月5日 优先权日2003年11月5日
发明者蒋鲲鹏, 芦东昕, 朱佐亮, 杨新, 缪敬, 黄烨明 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1