CN112231002A - 一种PowerPC下VxWorks操作系统快速启动方法 - Google Patents

一种PowerPC下VxWorks操作系统快速启动方法 Download PDF

Info

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
Application number
CN202011103072.0A
Other languages
English (en)
Inventor
王雨龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Jinhang Computing Technology Research Institute
Original Assignee
Tianjin Jinhang Computing Technology Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin Jinhang Computing Technology Research Institute filed Critical Tianjin Jinhang Computing Technology Research Institute
Priority to CN202011103072.0A priority Critical patent/CN112231002A/zh
Publication of CN112231002A publication Critical patent/CN112231002A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading 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操作系统快速启动方法
技术领域
本发明属于航空航天系统数据通信技术领域,涉及一种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()。
CN202011103072.0A 2020-10-15 2020-10-15 一种PowerPC下VxWorks操作系统快速启动方法 Pending CN112231002A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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的快速启动方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
刘金伟等: ""浅析 VxWorks 启动流程和 BootRom 移植要点"", 《中外企业家》 *
李志: ""基于VxWorks的分布式交换机MCU扣板设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (3)

* Cited by examiner, † Cited by third party
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