一种智能嵌入式设备多操作系统切换方法_2

文档序号:8922460阅读:来源:国知局
件,存放顺序并无严格要求。根据各操作系统的镜像文件的存储地址建立系统镜像文件分区表,根据系统镜像文件分区表在U-Boot分区中为各操作系统分别建立地址映射宏定义,每类操作系统地址映射宏定义主要包括:Nand Flash地址0S_ADDR、镜像文件大小0S_LEN、镜像文件位的内存地址0S_RAM_ADDR 及跳转地址 0S_RAM_B00T_0FF。
[0031]第二步,在U-Boot分区中编写EEPROM操作函数,其中包括:其一,打开源码include/configs/mini6410.hIIC 接口驱动宏定义:CFG_CMD_I2C ;其二,添加 EEPROM 存储器宏定义CFG_I2C_EEPR0M_ADDR地址0x50 ;经过上述修改后,即可使用EEPROM操作函数eeprom_read (dev_addr, off, os_f lag, cnt)、eeprom_write (dev_addr, off, os_f lag, cnt)。定义各操作系统标志位,标志位占用一个字节,其中0x00对应切换管理系统,OxOl对应Windows CE,0x02对应Linux QT系统,0x03对应Android系统,标志位存放于EEPROM存储器首字节中。
[0032]第三步:U-Boot中添加各操作系统加载启动函数,各加载启动函数通过调用U-Boot加载命令按照第一步中定义的Nand Flash地址将镜像文件加载至0S_RAM_ADDR内存运行地址中,并跳转至内存地址0S_RAM_ADDR启动操作系统内核。
[0033]其中WindowsCE 加载启动函数为 void boot_wince (int exe_f lag),exe_flag为启动标志位,决定是否执行启动动作,操作系统加载及启动通过执行char set_wince_bootcmd[]字符串定义命令实现,〃nand read.1〃MK_STR(WINCE_RAM_ADDR) 〃〃MK_STR(WINCE_ADDR)〃〃MK_STR(WINCE_LEN)〃.:'通过 〃bootm〃MK_STR(WINCE_RAM_B00T_0FF) 〃 ;〃命令U-Boot跳转至Windows CE内核入口启动操作系统。
[0034]Android 启动函数为 void boot_android(int exe_flag) ,Android 启动前需要通过char set_android_bootargs[]设置环境变量,其中包括指定VFS文件系统类型、控制台接口及IXD类型等参数,配置完成后,使用char set_android_bootcmd[]定义Android启动动作,Linux启动函数void boot_linux (int exe_flag)、切换管理系统启动函数v1dboot_manageos (int exe_f lag)与 Android 启动函数基本保持一致。
[0035]第四步,在QT环境设置系统启动菜单,如图4所示为系统启动菜单的界面示意图,所述系统启动菜单为用户提供Windows CE、Linux QT及Android三个实例操作系统选择按钮,用户可以在触摸LCD直接选择,用户选择实例操作系统后,EEPROM标志位被改写为对应操作系统,设备重启,U-Boot引导启动实例操作系统。
[0036]第五步,在操作系统启动菜单中选择一个操作系统来启动,U-Boot执行包含启动逻辑的加载启动函数MyBootOS O,其中,MyBootOS O函数通过eeprom_read (dev_addr, off, os_flag, cnt)函数获取标志位,调用switch语句,根据第二步设定的操作系统映射关系,执行对应操作系统启动函数,标志位为0x00、0x01、0x02、0x03时,分别执行boot_manageos (I)、boot_wince (I)、boot_linux (I)以及 boot_android (I)函数。执行函数前,调用eeprom_write (dev_addr, off, os_flag, cnt)函数将标志位置为0x00,使得以后设备重启后启动系统启动菜单。
【主权项】
1.一种智能嵌入式设备多操作系统切换方法,其特征在于包括以下步骤: 步骤1:将存储器分区,存储器地址依次划分为U-Boot分区与系统分区,将各操作系统的镜像文件依次存放在系统分区内,且各操作系统的镜像文件间设有安全间隔,根据各操作系统的镜像文件的存储地址建立系统镜像文件分区表,根据该系统镜像文件分区表在U-Boot分区中为各操作系统分别建立地址映射宏定义;所述地址映射宏定义包括NandFlash地址0S_ADDR、镜像文件大小0S_LEN、镜像文件位的内存地址OS_RAM_ADDR及跳转地址 0S_RAM_B00T_0FF ; 步骤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标志位操作函数,将标志位改写为切换管理系统标志位。
【专利摘要】本发明公开了一种在智能嵌入式设备实现多操作系统选择性启动的方法,首先在存储器为用户划分多操作系统分区,在U-Boot中添加EEPROM标志位操作函数以及针对各操作系统编写的加载启动函数,在QT环境设置操作系统启动菜单,在操作系统启动菜单中选择一个操作系统来启动,U-Boot调用EEPROM标志位操作函数读取该操作系统的标志位,调用该标志位对应的操作系统的加载启动函数,启动操作系统。本发明中,切换管理系统独立于U-Boot,弥补了U-Boot无法全方位管理硬件的缺点,可提供更加全面的交互功能,方便进行功能扩展。
【IPC分类】G06F9/48, G06F9/445
【公开号】CN104899091
【申请号】CN201510383431
【发明人】熊永华, 吴敏, 郭述帆
【申请人】中国地质大学(武汉)
【公开日】2015年9月9日
【申请日】2015年7月2日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1