CN104899091B - 一种智能嵌入式设备多操作***切换方法 - Google Patents
一种智能嵌入式设备多操作***切换方法 Download PDFInfo
- Publication number
- CN104899091B CN104899091B CN201510383431.5A CN201510383431A CN104899091B CN 104899091 B CN104899091 B CN 104899091B CN 201510383431 A CN201510383431 A CN 201510383431A CN 104899091 B CN104899091 B CN 104899091B
- Authority
- CN
- China
- Prior art keywords
- operating system
- flag bit
- boot
- address
- function
- 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.)
- Expired - Fee Related
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种在智能嵌入式设备实现多操作***选择性启动的方法,首先在存储器为用户划分多操作***分区,在U‑Boot中添加EEPROM标志位操作函数以及针对各操作***编写的加载启动函数,在QT环境设置操作***启动菜单,在操作***启动菜单中选择一个操作***来启动,U‑Boot调用EEPROM标志位操作函数读取该操作***的标志位,调用该标志位对应的操作***的加载启动函数,启动操作***。本发明中,切换管理***独立于U‑Boot,弥补了U‑Boot无法全方位管理硬件的缺点,可提供更加全面的交互功能,方便进行功能扩展。
Description
技术领域
本发明涉及一种智能嵌入式设备多操作***切换方法,属于计算机***技术领域。
背景技术
智能嵌入式设备如智能手机、平板电脑等,因其具有轻薄、便携等特点获得了快速普及。通常一台智能嵌入式设备只能运行一类操作***,而各操作***功能偏向均有所区别,如Android、iOS主要侧重于娱乐,Windows则更加适合办公。业界为了实现多类型操作***在智能嵌入式设备上运行,通常采用在引导启动程序中添加用户选择菜单,获取用户选择参数后选择性启动操作***的方法。引导加载程序为操作***启动前负责实现操作***引导启动的简单程序,基于此程序实现的多操作***切换方案受到引导加载程序的制约,其可扩展性、可管理性均十分有限。
发明内容
为了解决现有技术的不足,本发明提供了一种智能嵌入式设备多操作***切换方法,解决了基于引导加载程序开发的多操作***传统切换方案可扩展性、可管理性不强的问题。
本发明为解决其技术问题所采用的技术方案是:提供了一种智能嵌入式设备多操作***切换方法,包括以下步骤:
步骤1:将存储器分区,存储器地址依次划分为U-Boot分区与***分区,将各操作***的镜像文件依次存放在***分区内,且各操作***的镜像文件间设有安全间隔,根据各操作***的镜像文件的存储地址建立***镜像文件分区表,根据该***镜像文件分区表在U-Boot分区中为各操作***分别建立地址映射宏定义;所述地址映射宏定义包括NandFlash地址OS_ADDR、镜像文件大小OS_LEN、镜像文件位的内存地址OS_RAM_ADDR及跳转地址OS_RAM_BOOT_OFF;
步骤2:在U-Boot分区中添加EEPROM标志位操作函数,并定义各操作***的标志位以及切换管理***标志位;
步骤3:在U-Boot分区中分别添加各个操作***的加载启动函数,各加载启动函数用于将Nand Flash地址处的镜像文件加载至内存地址OS_RAM_ADDR中,并跳转至内存地址OS_RAM_ADDR启动操作***内核;
步骤4:在QT环境设置操作***启动菜单,所述操作***启动菜单用于选择不同的操作***;
步骤5:在操作***启动菜单中选择一个操作***来启动,U-Boot调用EEPROM标志位操作函数读取该操作***的标志位,调用该标志位对应的操作***的加载启动函数,启动操作***。
步骤5中,启动操作***前,调用EEPROM标志位操作函数,将标志位改写为切换管理***标志位。
本发明基于其技术方案所具有的有益效果在于:
(1)本发明通过使用切换管理***对智能嵌入式设备多类型操作***按照启动逻辑进行统一的分区、引导操作,使得本方法能够方便的完成多类型操作***的切换;
(2)本发明将各操作***的镜像文件依次存放在存储器的***分区内并设置安全间隔,根据各操作***的镜像文件的存储地址建立***镜像文件分区表,在U-Boot分区中根据***镜像文件分区表为各操作***分别建立地址映射宏定义,并为各操作***分别添加加载启动函数,定义与各操作***对应的标志位,可以降低传统“刷机”操作过程中的故障率,保证多类型操作***切换的稳定性;
(3)本发明在QT环境设置操作***启动菜单,可提供更加人性化交互界面以及扩展性较强的切换***,弥补基于引导加载程序开发的选择菜单交互体验不强与可扩展性差的缺点。
附图说明
图1是实现本发明所述方法的***结构示意图。
图2是本发明所述方法的流程图。
图3是本发明实施例存储器地址分区表。
图4是操作***启动菜单界面示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
本发明提供了一种智能嵌入式设备多操作***切换方法,参照图2,包括以下步骤:
步骤1:将存储器分区,存储器地址依次划分为U-Boot分区与***分区,将各操作***的镜像文件依次存放在***分区内,且各操作***的镜像文件间设有安全间隔,根据各操作***的镜像文件的存储地址建立***镜像文件分区表,根据该***镜像文件分区表在U-Boot分区中为各操作***分别建立地址映射宏定义;所述地址映射宏定义包括NandFlash地址OS_ADDR、镜像文件大小OS_LEN、镜像文件位的内存地址OS_RAM_ADDR及跳转地址OS_RAM_BOOT_OFF;
步骤2:在U-Boot分区中添加EEPROM标志位操作函数,并定义各操作***的标志位以及切换管理***标志位;
步骤3:在U-Boot分区中分别添加各个操作***的加载启动函数,各加载启动函数用于将Nand Flash地址处的镜像文件加载至内存地址OS_RAM_ADDR中,并跳转至内存地址OS_RAM_ADDR启动操作***内核;
步骤4:在QT环境设置操作***启动菜单,所述操作***启动菜单用于选择不同的操作***;
步骤5:在操作***启动菜单中选择一个操作***来启动,U-Boot调用EEPROM标志位操作函数读取该操作***的标志位,调用该标志位对应的操作***的加载启动函数,启动操作***。
步骤5中,启动操作***前,调用EEPROM标志位操作函数,将标志位改写为切换管理***标志位。
利用本发明的智能嵌入式设备多操作***切换方法可以应用于如图1所示的基于Linux的智能嵌入式设备。智能嵌入式设备硬件配置为:FriendlyARM公司Mini6410开发板(Samsung S3C6410处理器,ARM1176JZF-S内核,主频533MHz/667MHz,1GB Nand Flash存储器,256B IIC接口EEPROM存储器)
智能嵌入式设备软件配置:
Linux QT(内核版本:2.6.38,文件***使用VFS)、Android 2.3.4(文件***使用VFS)、Windows CE 6.0、U-Boot 1.1.5。
第一步,将存储器分区,如图3所示,从Nand Flash地址0开始的256KB存储区域存放U-Boot程序,在U-Boot分区后存储空间为***分区,以安全间隔存储Windows CE、切换管理***、Linux、Android***内核及文件***镜像文件,存放顺序并无严格要求。根据各操作***的镜像文件的存储地址建立***镜像文件分区表,根据***镜像文件分区表在U-Boot分区中为各操作***分别建立地址映射宏定义,每类操作***地址映射宏定义主要包括:Nand Flash地址OS_ADDR、镜像文件大小OS_LEN、镜像文件位的内存地址OS_RAM_ADDR及跳转地址OS_RAM_BOOT_OFF。
第二步,在U-Boot分区中编写EEPROM操作函数,其中包括:其一,打开源码include/configs/mini6410.hIIC接口驱动宏定义:CFG_CMD_I2C;其二,添加EEPROM存储器宏定义CFG_I2C_EEPROM_ADDR地址0x50;经过上述修改后,即可使用EEPROM操作函数eeprom_read(dev_addr,off,os_flag,cnt)、eeprom_write(dev_addr,off,os_flag,cnt)。定义各操作***标志位,标志位占用一个字节,其中0x00对应切换管理***,0x01对应Windows CE,0x02对应Linux QT***,0x03对应Android***,标志位存放于EEPROM存储器首字节中。
第三步:U-Boot中添加各操作***加载启动函数,各加载启动函数通过调用U-Boot加载命令按照第一步中定义的Nand Flash地址将镜像文件加载至OS_RAM_ADDR内存运行地址中,并跳转至内存地址OS_RAM_ADDR启动操作***内核。
其中WindowsCE加载启动函数为void boot_wince(int exe_flag),exe_flag为启动标志位,决定是否执行启动动作,操作***加载及启动通过执行char set_wince_bootcmd[]字符串定义命令实现,"nand read.i"MK_STR(WINCE_RAM_ADDR)""MK_STR(WINCE_ADDR)""MK_STR(WINCE_LEN)";"通过"bootm"MK_STR(WINCE_RAM_BOOT_OFF)";"命令U-Boot跳转至Windows CE内核入口启动操作***。
Android启动函数为void boot_android(int exe_flag),Android启动前需要通过char set_android_bootargs[]设置环境变量,其中包括指定VFS文件***类型、控制台接口及LCD类型等参数,配置完成后,使用char set_android_bootcmd[]定义Android启动动作,Linux启动函数void boot_linux(int exe_flag)、切换管理***启动函数viodboot_manageos(int exe_flag)与Android启动函数基本保持一致。
第四步,在QT环境设置***启动菜单,如图4所示为***启动菜单的界面示意图,所述***启动菜单为用户提供Windows CE、Linux QT及Android三个实例操作***选择按钮,用户可以在触摸LCD直接选择,用户选择实例操作***后,EEPROM标志位被改写为对应操作***,设备重启,U-Boot引导启动实例操作***。
第五步,在操作***启动菜单中选择一个操作***来启动,U-Boot执行包含启动逻辑的加载启动函数MyBootOS(),其中,MyBootOS()函数通过eeprom_read(dev_addr,off,os_flag,cnt)函数获取标志位,调用switch语句,根据第二步设定的操作***映射关系,执行对应操作***启动函数,标志位为0x00、0x01、0x02、0x03时,分别执行boot_manageos(1)、boot_wince(1)、boot_linux(1)以及boot_android(1)函数。执行函数前,调用eeprom_write(dev_addr,off,os_flag,cnt)函数将标志位置为0x00,使得以后设备重启后启动***启动菜单。
Claims (2)
1.一种智能嵌入式设备多操作***切换方法,其特征在于包括以下步骤:
步骤1:将存储器分区,存储器地址依次划分为U-Boot分区与***分区,将各操作***的镜像文件依次存放在***分区内,且各操作***的镜像文件间设有安全间隔,根据各操作***的镜像文件的存储地址建立***镜像文件分区表,根据该***镜像文件分区表在U-Boot分区中为各操作***分别建立地址映射宏定义;所述地址映射宏定义包括Nand Flash地址OS_ADDR、镜像文件大小OS_LEN、镜像文件位的内存地址OS_RAM_ADDR及跳转地址OS_RAM_BOOT_OFF;
步骤2:在U-Boot分区中添加EEPROM标志位操作函数,并定义各操作***的标志位以及切换管理***标志位;
步骤3:在U-Boot分区中分别添加各个操作***的加载启动函数,各加载启动函数用于将Nand Flash地址处的镜像文件加载至内存地址OS_RAM_ADDR中,并跳转至内存地址OS_RAM_ADDR启动操作***内核;
步骤4:在QT环境设置操作***启动菜单,所述操作***启动菜单用于选择不同的操作***;
步骤5:在操作***启动菜单中选择一个操作***来启动,U-Boot调用EEPROM标志位操作函数读取该操作***的标志位,调用该标志位对应的操作***的加载启动函数,启动操作***。
2.根据权利要求1所述的智能嵌入式设备多操作***切换方法,其特征在于:步骤5中,启动操作***前,调用EEPROM标志位操作函数,将标志位改写为切换管理***标志位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510383431.5A CN104899091B (zh) | 2015-07-02 | 2015-07-02 | 一种智能嵌入式设备多操作***切换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510383431.5A CN104899091B (zh) | 2015-07-02 | 2015-07-02 | 一种智能嵌入式设备多操作***切换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104899091A CN104899091A (zh) | 2015-09-09 |
CN104899091B true CN104899091B (zh) | 2018-11-27 |
Family
ID=54031769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510383431.5A Expired - Fee Related CN104899091B (zh) | 2015-07-02 | 2015-07-02 | 一种智能嵌入式设备多操作***切换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104899091B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105045621B (zh) * | 2015-07-14 | 2018-04-13 | 河南科技大学 | 基于链式引导和动态修改分区表的任意多***的安装方法 |
CN107632828B (zh) * | 2016-07-18 | 2020-04-07 | 迈普通信技术股份有限公司 | 多dts文件支持方法、编译装置及嵌入式设备 |
CN107656757A (zh) * | 2016-07-25 | 2018-02-02 | 南京中兴新软件有限责任公司 | 操作***切换方法及装置 |
CN106648685B (zh) * | 2016-12-29 | 2020-07-28 | 东软集团股份有限公司 | 智能终端***应用的处理方法、装置及智能终端 |
CN109976687A (zh) * | 2017-12-28 | 2019-07-05 | 深圳市雍慧电子科技有限公司 | 显示屏的显示***及方法 |
CN108235095B (zh) * | 2018-01-17 | 2020-12-08 | 深圳创维数字技术有限公司 | 基于磁盘介质机顶盒启动/调试方法、机顶盒及存储介质 |
IT201800004293A1 (it) * | 2018-04-06 | 2019-10-06 | Procedimento di gestione di sistemi operativi multipli in carte a circuito integrato, corrispondente sistema e prodotto informatico | |
CN110134445A (zh) * | 2019-04-02 | 2019-08-16 | 视联动力信息技术股份有限公司 | 一种操作***的切换方法和装置 |
CN112860477A (zh) * | 2020-12-31 | 2021-05-28 | 京信网络***股份有限公司 | 一种操作***高可靠运行方法、***、存储介质及服务器 |
CN112988253B (zh) * | 2021-05-12 | 2021-09-07 | 中勍科技有限公司 | 基于双***板卡根据槽位自动选择操作***的方法 |
CN114116030A (zh) * | 2021-11-18 | 2022-03-01 | 展讯半导体(南京)有限公司 | 操作***的运行方法、装置、电子设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5142680A (en) * | 1989-04-26 | 1992-08-25 | Sun Microsystems, Inc. | Method for loading an operating system through a network |
CN101840341A (zh) * | 2010-04-01 | 2010-09-22 | 惠州Tcl移动通信有限公司 | 智能手机***及其启动方法 |
CN102638728A (zh) * | 2012-03-30 | 2012-08-15 | 江苏幻影视讯科技有限公司 | 一种多***切换的方法与数字家庭智能终端 |
CN102799484A (zh) * | 2012-07-11 | 2012-11-28 | 中兴通讯股份有限公司 | 移动终端运行多操作***的方法及装置 |
CN104503922A (zh) * | 2015-01-19 | 2015-04-08 | 中国地质大学(武汉) | 基于uboot引导加载WindowsCE***的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1838075A (zh) * | 2005-03-24 | 2006-09-27 | 光宝科技股份有限公司 | 操作***选择方法及其计算机*** |
-
2015
- 2015-07-02 CN CN201510383431.5A patent/CN104899091B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5142680A (en) * | 1989-04-26 | 1992-08-25 | Sun Microsystems, Inc. | Method for loading an operating system through a network |
CN101840341A (zh) * | 2010-04-01 | 2010-09-22 | 惠州Tcl移动通信有限公司 | 智能手机***及其启动方法 |
CN102638728A (zh) * | 2012-03-30 | 2012-08-15 | 江苏幻影视讯科技有限公司 | 一种多***切换的方法与数字家庭智能终端 |
CN102799484A (zh) * | 2012-07-11 | 2012-11-28 | 中兴通讯股份有限公司 | 移动终端运行多操作***的方法及装置 |
CN104503922A (zh) * | 2015-01-19 | 2015-04-08 | 中国地质大学(武汉) | 基于uboot引导加载WindowsCE***的方法 |
Non-Patent Citations (2)
Title |
---|
智能移动终端多操作***无线启动方法与应用;王宁;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150215(第02期);正文第10-14,15,23-24页 * |
移动透明计算中智能终端多操作***启动及其性能分析优化;呙邵明;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150315(第03期);正文第20-26页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104899091A (zh) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899091B (zh) | 一种智能嵌入式设备多操作***切换方法 | |
CN102033790B (zh) | 一种嵌入式***bootrom的升级方法和装置 | |
CN103677915B (zh) | 一种基于TF启动卡进行flash镜像自动烧写的方法 | |
WO2017101663A1 (zh) | 应用的引导方法及装置、终端 | |
CN105260205A (zh) | 一种嵌入式板上实现双操作***启动的方法 | |
US9304788B2 (en) | Electronic device, configurable component and configuration information storage method thereof | |
WO2020037906A1 (zh) | 一种hmi组态软件脚本编辑方法 | |
CN105373419A (zh) | 一种后台应用的操作方法及装置 | |
CN102609274B (zh) | 一种***快速启动运行方法及电视机 | |
CN103761088A (zh) | 一种适用于arm架构移动设备的多操作***切换方法 | |
CN103106092A (zh) | 终端设备中***软件升级方法和装置 | |
CN103282883A (zh) | 在webtop应用托盘中显示安卓应用启动器的***和方法 | |
CN103593289A (zh) | 一种安卓机顶盒生产测试软件的设计方法 | |
CN105487885A (zh) | 手游热更新方法 | |
CN109491731B (zh) | 一种悬浮按钮的控制方法、装置及存储介质 | |
CN106371863A (zh) | 一种嵌入式多操作***的引导程序升级方法 | |
CN103853586A (zh) | 一种在uefi层实现无线网卡驱动的方法 | |
CN103605540A (zh) | 基于安卓***的快速写入flash镜像的方法 | |
CN103533434A (zh) | 一种开机动画自定义的方法 | |
CN104866324A (zh) | 一种便携操作***构建方法及便携存储器 | |
CN106648759A (zh) | 一种通用编程器固件的更新方法 | |
CN108897576A (zh) | 一种基于arm芯片的快速启动boot的方法 | |
CN106201608A (zh) | 计算机uefi固件更新方法 | |
CN103677943A (zh) | 一种缝纫机控制器软件升级方法 | |
TW201826102A (zh) | 應用運行方法及裝置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181127 Termination date: 20190702 |
|
CF01 | Termination of patent right due to non-payment of annual fee |