CN112231002A - 一种PowerPC下VxWorks操作系统快速启动方法 - Google Patents
一种PowerPC下VxWorks操作系统快速启动方法 Download PDFInfo
- Publication number
- CN112231002A CN112231002A CN202011103072.0A CN202011103072A CN112231002A CN 112231002 A CN112231002 A CN 112231002A CN 202011103072 A CN202011103072 A CN 202011103072A CN 112231002 A CN112231002 A CN 112231002A
- Authority
- CN
- China
- Prior art keywords
- initializing
- initialization
- task
- boot
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000011423 initialization method Methods 0.000 claims description 37
- 230000006870 function Effects 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 230000003111 delayed effect Effects 0.000 claims description 4
- 230000007717 exclusion Effects 0.000 claims description 4
- 238000009434 installation Methods 0.000 claims description 4
- 230000009191 jumping Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种PowerPC下VxWorks操作系统快速启动方法,将驻留ROM的VxWorks映像和搬移程序一起固化到在启动程序BOOT中,系统加电后BOOT中引导搬移程序,但仅将VxWorks镜像的数据段和BSS段拷贝到RAM地址RAM_LOW_ADRS处,镜像的代码段仍旧留在ROM中,采用这种引导方式具有最快的引导速度,占用最少的RAM空间。本发明通过修改Vxworks操作系统启动过程,将原来先加载BOOT微内核,再由BOOT微内核加载Vxworks操作系统优化成驻留ROM的VxWorks映像和搬移程序一起固化到在BOOT;系统启动后BOOT中的引导搬移程序,对操作系统的启动过程进行优化,最终达到将系统启动只需要6S的时间。
Description
技术领域
本发明属于航空航天系统数据通信技术领域,涉及一种PowerPC下VxWorks操作系统快速启动方法。
背景技术
VxWorks操作系统时一种嵌入式实时操作系统,支持多任务调度,包括基于优先级的抢占方式和相同优先级的时间片轮转调度,具有进程间通信机制,中断处理以及内存管理机制等。Vxworks操作系统运行在PowerPC架构上成为一种常用选择。
发明内容
(一)发明目的
VxWorks操作系统属于一种硬实时操作系统,在航空航天领域被广泛应用,但Vxworks操作系统的启动引导机制较为复杂,通常在PowerPC体系架构下系统启动起来需要耗费数是秒的时间,在某些需要系统快速启动的场合并不满足要求,本文采用了驻留ROM的VxWorks系统加载方式,以及对启动参数的修改,达到了快速启动的方式。
(二)技术方案
为了解决上述技术问题,本发明提供一种PowerPC下VxWorks操作系统快速启动方法,其包括以下步骤:
STEP0:设置物理地址LOCAL_MEM_LOCAL_ADRS值为0x00000000,配置在ROM中启动boot程序起始地址ROM_START_ADRS为0x100。
STEP1:修改存储器初始化方法romInit(),设置机器状态字,设置哑堆栈dumpystack,初始化CPU的寄存器,失能Cache,禁止中断;保存启动类型为冷启动;进行硬件初始化,堆栈指针初始化,初始化存储器接口调用存储器启动方法romStart();
STEP2:修改存储器启动方法romStart(),搬运到引导内存bootROM中第一部分程序到RAM,将RAM区除了哑堆栈以外的堆栈区清零;解压并搬运引导内存bootROM中的其余程序到RAM中;跳至被解压的程序入口点执行用户初始化方法usrInit();
STEP3:修改用户初始化方法usrInit(),将二级缓存Cashe模式设置为禁止,对内存bss段清零,将启动类型bootType保存在系统启动类型sysStartType中,调用向量安装初始化方法excVecInit()安装异常向量;调用中断向量配置方法intVecBaseSet()配置中断向量;修改系统硬件初始化方法sysHwInit()将硬件初始化到禁止状态,使产生复位的中断的设备复位和禁止产生中断。
STEP4:调用用户内核初始化usrKernelInit()方法,调用初始化函数完成初始化类库初始化classLibInit();任务库初始化taskLibInit();钩子任务初始化taskHookInit();二值信号量库初始化semBLibInit();互斥信号量库初始化semMLibInit();计数信号量初始化semCLibInit();看门狗库初始化WdLibInit();消息队列初始化msgQLibInit();内核任务队列初始化qInit();延后执行任务队列初始化workQInit();
STEP5:调用内核初始化方法KernelInit()初始化并启动内核,调用中断屏蔽设置方法intLockLevelSet()进行中断屏蔽级别设置,关闭循环模式,创建一个中断堆栈,从内存池顶部创建根堆栈和任务控制块TCB,调用任务初始化方法taskInit(),任务启动方法taskActivate();生成用户根任务usrRoot,配置网络初始化组件INCLUDE_NET_INIT,调用用户网络初始化方法usrNetInit()初始化网络。
STEP6:配置用户根任务usrRoot完成以下功能:初始化系统时钟,初始化IO系统和驱动,建立控制台设备,配置标准的输入输出,安装异常处理,初始化管道驱动,初始化管道I/O,安装磁盘驱动和建立文件系统设备,设置性能监控,初始化目标机管理,初始化网口加载程序。加载完成后生成引导命令环任务bootCmdLoop(),在这个任务中调用自动引导程序autoboot();将autoboot()中系统延时启动时间1s。
STEP7:修改系统初始化方法sysInit();锁住中断,关闭cache,初始化处理器的寄存器和堆栈指针至缺省值,系统快速启动配置完成。
(三)有益效果
上述技术方案所提供的PowerPC下VxWorks操作系统快速启动方法,通过修改Vxworks操作系统启动过程,将原来先加载BOOT微内核,再由BOOT微内核加载Vxworks操作系统优化成驻留ROM的VxWorks映像和搬移程序一起固化到在BOOT;系统启动后BOOT中的引导搬移程序,对操作系统的启动过程进行优化,最终达到将整个VxWorks操作系统起来只需要6S的时间。
附图说明
图1为本发明实施例PowerPC下VxWorks操作系统快速启动方法流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明方法采用驻留ROM的VxWorks映象加载方式,将驻留ROM的VxWorks映像和搬移程序一起固化到在启动程序BOOT中,系统加电后BOOT中引导搬移程序,但仅将VxWorks镜像的数据段和BSS段拷贝到RAM地址RAM_LOW_ADRS处,镜像的代码段仍旧留在ROM中,采用这种引导方式具有最快的引导速度,占用最少的RAM空间。
STEP0:设置物理地址LOCAL_MEM_LOCAL_ADRS值为0x00000000,配置在ROM中启动boot程序起始地址ROM_START_ADRS为0x100。
STEP1:修改存储器初始化方法romInit(),设置机器状态字,设置哑堆栈dumpystack,初始化CPU的寄存器,失能Cache,禁止中断;保存启动类型为冷启动;进行硬件初始化,堆栈指针初始化,初始化存储器接口调用存储器启动方法romStart();
STEP2:修改存储器启动方法romStart(),搬运到引导内存bootROM中第一部分程序到RAM,将RAM区除了哑堆栈以外的堆栈区清零;解压并搬运引导内存bootROM中的其余程序到RAM中;跳至被解压的程序入口点执行用户初始化方法usrInit();
STEP3:修改用户初始化方法usrInit(),将二级缓存Cashe模式设置为禁止,对内存bss段清零,将启动类型bootType保存在系统启动类型sysStartType中,调用向量安装初始化方法excVecInit()安装异常向量;调用中断向量配置方法intVecBaseSet()配置中断向量;修改系统硬件初始化方法sysHwInit()将硬件初始化到禁止状态,使产生复位的中断的设备复位和禁止产生中断。
STEP4:调用用户内核初始化usrKernelInit()方法,调用初始化函数完成初始化类库初始化classLibInit();任务库初始化taskLibInit();钩子任务初始化taskHookInit();二值信号量库初始化semBLibInit();互斥信号量库初始化semMLibInit();计数信号量初始化semCLibInit();看门狗库初始化WdLibInit();消息队列初始化msgQLibInit();内核任务队列初始化qInit();延后执行任务队列初始化workQInit();
STEP5:调用内核初始化方法KernelInit()初始化并启动内核,调用中断屏蔽设置方法intLockLevelSet()进行中断屏蔽级别设置,关闭循环模式,创建一个中断堆栈,从内存池顶部创建根堆栈和任务控制块TCB,调用任务初始化方法taskInit(),任务启动方法taskActivate();生成用户根任务usrRoot,配置网络初始化组件INCLUDE_NET_INIT,调用用户网络初始化方法usrNetInit()初始化网络。
STEP6:配置用户根任务usrRoot完成以下功能:初始化系统时钟,初始化IO系统和驱动,建立控制台设备,配置标准的输入输出,安装异常处理,初始化管道驱动,初始化管道I/O,安装磁盘驱动和建立文件系统设备,设置性能监控,初始化目标机管理,初始化网口加载程序。加载完成后生成引导命令环任务bootCmdLoop(),在这个任务中调用自动引导程序autoboot();将autoboot()中系统延时启动时间1s。
STEP7:修改系统初始化方法sysInit();锁住中断,关闭cache,初始化处理器的寄存器和堆栈指针至缺省值,系统快速启动配置完成。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种PowerPC下VxWorks操作系统快速启动方法,其特征在于,包括以下步骤:
STEP0:设置物理地址,配置在ROM中启动boot程序起始地址;
STEP1:修改存储器初始化方法,设置机器状态字,设置哑堆栈,初始化CPU的寄存器,失能Cache,禁止中断;保存启动类型为冷启动;进行硬件初始化,堆栈指针初始化,初始化存储器接口调用存储器启动方法;
STEP2:修改存储器启动方法r,搬运引导内存bootROM中第一部分程序到RAM,将RAM区除了哑堆栈以外的堆栈区清零;解压并搬运引导内存中的其余程序到RAM中;跳至被解压的程序入口点执行用户初始化方法;
STEP3:修改用户初始化方法,将二级缓存Cashe模式设置为禁止,对内存bss段清零,将启动类型保存在系统启动类型中,调用向量安装初始化方法安装异常向量;调用中断向量配置方法配置中断向量;修改系统硬件初始化方法将硬件初始化到禁止状态,使产生复位的中断的设备复位和禁止产生中断;
STEP4:调用用户内核初始化方法,调用初始化函数完成初始化类库初始化;任务库初始化;钩子任务初始化;二值信号量库初始化;互斥信号量库初始化;计数信号量初始化;看门狗库初始化;消息队列初始化;内核任务队列初始化;延后执行任务队列初始化;
STEP5:调用内核初始化方法初始化并启动内核,调用中断屏蔽设置方法进行中断屏蔽级别设置,关闭循环模式,创建一个中断堆栈,从内存池顶部创建根堆栈和任务控制块TCB,调用任务初始化方法,任务启动方法;生成用户根任务usrRoot,配置网络初始化组件,调用用户网络初始化方法初始化网络;
STEP6:配置用户根任务usrRoot完成以下功能:初始化系统时钟,初始化IO系统和驱动,建立控制台设备,配置标准的输入输出,安装异常处理,初始化管道驱动,初始化管道I/O,安装磁盘驱动和建立文件系统设备,设置性能监控,初始化目标机管理,初始化网口加载程序;
STEP7:修改系统初始化方法;锁住中断,关闭cache,初始化处理器的寄存器和堆栈指针至缺省值,系统快速启动配置完成。
2.如权利要求1所述的PowerPC下VxWorks操作系统快速启动方法,其特征在于,所述步骤STEP0中,设置物理地址LOCAL_MEM_LOCAL_ADRS值为0x00000000,配置在ROM中启动boot程序起始地址ROM_START_ADRS为0x100。
3.如权利要求2所述的PowerPC下VxWorks操作系统快速启动方法,其特征在于,所述步骤STEP1中,修改存储器初始化方法romInit(),设置哑堆栈dumpy stack,初始化存储器接口调用存储器启动方法romStart()。
4.如权利要求3所述的PowerPC下VxWorks操作系统快速启动方法,其特征在于,所述步骤STEP2中,修改存储器启动方法romStart(),搬运到引导内存bootROM中第一部分程序到RAM;解压并搬运引导内存bootROM中的其余程序到RAM中;跳至被解压的程序入口点执行用户初始化方法usrInit()。
5.如权利要求4所述的PowerPC下VxWorks操作系统快速启动方法,其特征在于,所述步骤STEP3中,修改用户初始化方法usrInit(),将二级缓存Cashe模式设置为禁止,对内存bss段清零,将启动类型bootType保存在系统启动类型sysStartType中,调用向量安装初始化方法excVecInit()安装异常向量;调用中断向量配置方法intVecBaseSet()配置中断向量;修改系统硬件初始化方法sysHwInit()将硬件初始化到禁止状态,使产生复位的中断的设备复位和禁止产生中断。
6.如权利要求5所述的PowerPC下VxWorks操作系统快速启动方法,其特征在于,所述步骤STEP4中,调用用户内核初始化usrKernelInit()方法,调用初始化函数完成初始化类库初始化classLibInit();任务库初始化taskLibInit();钩子任务初始化taskHookInit();二值信号量库初始化semBLibInit();互斥信号量库初始化semMLibInit();计数信号量初始化semCLibInit();看门狗库初始化WdLibInit();消息队列初始化msgQLibInit();内核任务队列初始化qInit();延后执行任务队列初始化workQInit()。
7.如权利要求6所述的PowerPC下VxWorks操作系统快速启动方法,其特征在于,所述步骤STEP5中,调用内核初始化方法KernelInit()初始化并启动内核,调用中断屏蔽设置方法intLockLevelSet()进行中断屏蔽级别设置,关闭循环模式,创建一个中断堆栈,从内存池顶部创建根堆栈和任务控制块TCB,调用任务初始化方法taskInit(),任务启动方法taskActivate();生成用户根任务usrRoot,配置网络初始化组件INCLUDE_NET_INIT,调用用户网络初始化方法usrNetInit()初始化网络。
8.如权利要求7所述的PowerPC下VxWorks操作系统快速启动方法,其特征在于,所述步骤STEP6中,初始化网口加载程序,加载完成后生成引导命令环任务bootCmdLoop(),在这个任务中调用自动引导程序autoboot()。
9.如权利要求8所述的PowerPC下VxWorks操作系统快速启动方法,其特征在于,所述步骤STEP6中,autoboot()中系统延时启动时间1s。
10.如权利要求9所述的PowerPC下VxWorks操作系统快速启动方法,其特征在于,所述步骤STEP7中,修改系统初始化方法sysInit()。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011103072.0A CN112231002A (zh) | 2020-10-15 | 2020-10-15 | 一种PowerPC下VxWorks操作系统快速启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011103072.0A CN112231002A (zh) | 2020-10-15 | 2020-10-15 | 一种PowerPC下VxWorks操作系统快速启动方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112231002A true CN112231002A (zh) | 2021-01-15 |
Family
ID=74113739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011103072.0A Pending CN112231002A (zh) | 2020-10-15 | 2020-10-15 | 一种PowerPC下VxWorks操作系统快速启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231002A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608795A (zh) * | 2021-06-21 | 2021-11-05 | 天津津航计算技术研究所 | 一种通用的VxWorks下启动并加载应用程序方法 |
CN113655962A (zh) * | 2021-08-18 | 2021-11-16 | 天津津航计算技术研究所 | 一种缩短VxWorks7嵌入式操作系统下写文件时间的方法 |
CN114691227A (zh) * | 2022-04-25 | 2022-07-01 | 紫光计算机科技有限公司 | Bios系统多模式的启动方法和装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070260867A1 (en) * | 2006-05-04 | 2007-11-08 | Sheridan Ethier | System executing a fast boot wake-up |
CN102968319A (zh) * | 2012-11-14 | 2013-03-13 | 北京交控科技有限公司 | VxWorks映像的加载方法 |
CN110221870A (zh) * | 2019-06-11 | 2019-09-10 | 北京无线电测量研究所 | VxWorks的快速启动方法 |
-
2020
- 2020-10-15 CN CN202011103072.0A patent/CN112231002A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070260867A1 (en) * | 2006-05-04 | 2007-11-08 | Sheridan Ethier | System executing a fast boot wake-up |
CN102968319A (zh) * | 2012-11-14 | 2013-03-13 | 北京交控科技有限公司 | VxWorks映像的加载方法 |
CN110221870A (zh) * | 2019-06-11 | 2019-09-10 | 北京无线电测量研究所 | VxWorks的快速启动方法 |
Non-Patent Citations (2)
Title |
---|
刘金伟等: ""浅析 VxWorks 启动流程和 BootRom 移植要点"", 《中外企业家》 * |
李志: ""基于VxWorks的分布式交换机MCU扣板设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608795A (zh) * | 2021-06-21 | 2021-11-05 | 天津津航计算技术研究所 | 一种通用的VxWorks下启动并加载应用程序方法 |
CN113655962A (zh) * | 2021-08-18 | 2021-11-16 | 天津津航计算技术研究所 | 一种缩短VxWorks7嵌入式操作系统下写文件时间的方法 |
CN114691227A (zh) * | 2022-04-25 | 2022-07-01 | 紫光计算机科技有限公司 | Bios系统多模式的启动方法和装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8504752B2 (en) | Virtual machine control device, virtual machine control program, and virtual machine control circuit for managing interrupts of plural virtual machines | |
KR100812346B1 (ko) | 재구성 어레이에서의 인터럽트 처리 방법 및 장치 | |
US8234430B2 (en) | Apparatus and method with controlled switch method | |
EP1612669A2 (en) | Support for transitioning to a virtual machine monitor based upon the privilege level of guest software | |
CN112231002A (zh) | 一种PowerPC下VxWorks操作系统快速启动方法 | |
US20110072434A1 (en) | System, method and computer program product for scheduling a processing entity task | |
EP3979115A1 (en) | Early platform hardening technology for slimmer and faster boot | |
US20100017659A1 (en) | Secure Boot Circuit and Method | |
US10489188B2 (en) | Method for reducing interrupt latency in embedded systems | |
KR20170036080A (ko) | 예외로부터 리턴할 때 마스크 불가능 인터럽트의 조기 인에이블링의 회피 | |
US20130298136A1 (en) | Multiprocessor system | |
US11734079B2 (en) | Methods of hardware and software-coordinated opt-in to advanced features on hetero ISA platforms | |
JP4897851B2 (ja) | コンピュータ・システム及びコンピュータ・システムの制御方法 | |
US11086658B2 (en) | System performance enhancement with SMI on multi-core systems | |
US9207747B2 (en) | Method and device for advanced configuration and power interface (ACPI) sleep-state support using CPU-only reset | |
US20030140082A1 (en) | Patch processing system and method | |
CN117251393B (zh) | 处理器的中断响应方法、装置、芯片、计算机设备和介质 | |
CN116702129B (zh) | 一种power架构运行服务代码的安全调用方法及装置 | |
TWI842919B (zh) | 在不同指令集架構(ISA)平台上進行硬體與軟體協調之選擇加入(Opt-In)的進階特徵之處理器、非暫態電腦可讀取媒體、處理器實施的方法 | |
CN113407240B (zh) | 一种C64x+ DSP软件流水循环缓冲机制的模拟方法 | |
US20230315284A1 (en) | Live firmware update of flash memory | |
JP2011048619A (ja) | プロセッサ | |
CN118036092A (zh) | 一种基于硬件辅助虚拟化的软件完整性保护方法与系统 | |
CN116702129A (zh) | 一种power架构运行服务代码的安全调用方法及装置 | |
JP2024524885A (ja) | 障害検出方法及び関連装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210115 |
|
RJ01 | Rejection of invention patent application after publication |