CN101916197A - 一种控制系统自启动程序的实现方法 - Google Patents

一种控制系统自启动程序的实现方法 Download PDF

Info

Publication number
CN101916197A
CN101916197A CN 201010233976 CN201010233976A CN101916197A CN 101916197 A CN101916197 A CN 101916197A CN 201010233976 CN201010233976 CN 201010233976 CN 201010233976 A CN201010233976 A CN 201010233976A CN 101916197 A CN101916197 A CN 101916197A
Authority
CN
China
Prior art keywords
self
program
tabulation
triggered
triggered program
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
CN 201010233976
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.)
Kyland Technology Co Ltd
Original Assignee
Kyland Technology Co Ltd
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 Kyland Technology Co Ltd filed Critical Kyland Technology Co Ltd
Priority to CN 201010233976 priority Critical patent/CN101916197A/zh
Publication of CN101916197A publication Critical patent/CN101916197A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种控制系统自启动程序的实现方法,旨在提供嵌入式计算机领域控制系统自启动程序的实现方法。其技术方案的要点是,通过在引导程序的启动参数中存储自启动程序列表,并在系统启动后加载并执行此列表中的自启动程序;自启动程序列表分为两部分:系统自带自启动程序列表,用户自启动程序。本发明的用途:本发明解决了嵌入式系统中自启动程序固化不能自由控制的弊端,通过控制程序的自启动,有效的减少了内存和CPU的使用,并为程序的调试提供了方便。

Description

一种控制系统自启动程序的实现方法
技术领域
本发明涉及到自动化领域,更具体地说,涉及到嵌入式设备领域。
背景技术
U-Boot,全称Universal Boot Loader,U-Boot不仅仅支持嵌入式Linux系统的引导,还支持NetBSD,VxWorks,QNX,RTEMS,artos,LynxOS嵌入式操作系统。U-Boot支持PowerPC,MIPS,X86,ARM,NIOS,XScale等诸多常用系统的处理器。U-Boot项目的开发目标,即是支持尽可能多的嵌入式处理器和嵌入式操作系统。
U-Boot的特点:1,开放源码;2,支持多种嵌入式操作系统内核,如:LinuxNetBSD,VxWorks,QNX,RTEMS,artos,LynxOS;3,支持多个处理器系列,如PowerPC,MIPS,X86,ARM,NIOS,XScale;4,较高的可靠性和稳定性;5,高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求等;6,丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、EEPROM、RTC、键盘等;7,较为丰富的开发调试文档与强大的网络技术支持。
在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command.com。它接收用户命令,然后调用相应的应用程序。同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。命令行式shell(Command Line Interface shell,即CLI shell)例如:bash/sh/ksh/csh(Unix/linux系统)。传统意义上的shell指的是命令行式的shell,以后如果不特别注明,shell是指命令行式的shell。文字操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。Shell基本上是一个命令解释器,它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourne shell(sh)和C shell(csh)。交互式shell和非交互式shell。交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。首个重要的标准Unix Shell是1970年底在V7Unix(AT&T第7版)中引入的,并且以它的创始科技部基础条件平台“国家气象网络计算应用节点建设”(2004DKA50730)资助者Stephen Bourne的名字命名。Bourne shell是一个交换式的命令解释器和命令编程语言。Bourne shell可以运行为login shell或者login shell的子shell(subshell)。只有login命令可以调用Bourne shell作为一个login shell。此时,shell先读取/etc/profile文件和$HOME/.profile文件。/etc/profile文件为所有的用户定制环境,$HOME/.profile文件为本用户定制环境。最后,shell会等待读取你的输入。Bill Joy于20世纪80年代早期,在Berkeley的加利福尼亚大学开发了C shell。它主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。它新增了命令历史、别名、文件名替换、作业控制等功能。Korn Shell有很长一段时间,只有两类shell供人们选择,Bourne shell用来编程,C shell用来交互。为了改变这种状况,AT&T的bell实验室David Korn开发了Korn shell。ksh结合了所有的C shell的交互式特性,并融入了Bourne shell的语法。因此,Korn shell广受用户的欢迎。它还新增了数学计算,进程协作(coprocess)、行内编辑(inline editing)等功能。Korn Shell是一个交互式的命令解释器和命令编程语言.它符合POSIX——一个操作系统的国际标准.POSIX不是一个操作系统,而是一个目标在于应用程序的移植性的标准——在源程序一级跨越多种平台。Bourne Again Shell(bash)是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat,Slackware,Caldera)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。POSIX shell是Korn shell的一个变种.POSIX shell就是/bin/sh,而bsh是/usr/old/bin/sh。
我们目前的自动启动程序列表是存放在系统的文件中的,当系统启动之后才允许对其进行更改,如果自启动程序出现故障,导致系统宕机,有可能导致系统无法使用。自动启动程序列表是存放在系统的文件中固化不能自由控制,并且占内存,程序调试很不方便。
发明内容
本发明的目的是克服现有技术中的不足,提供一种控制系统自启动程序的实现方法。本发明的技术方案是:通过在引导程序的启动参数中存储自启动程序列表,通过修改自动启动程序列表确定需要启动的程序,可以在系统启动前通过引导程序对列表进行修改,也可以当系统启动之后对列表进行修改。
自启动程序列表分为两部分:系统自带自启动程序列表,用户自启动程序。
自启动控制程序将读取引导程序存储的启动程序列表,并依次启动指定的程序,具体步骤:
读取系统自带自启动程序列表,读取用户自启动程序。
自启动程序列表包含三种内容代表不同的状态,列表为空时、为0时、为其他内容或1时。
系统自带自启动程序列表包含三种内容代表不同的状态:
A1、当列表为空时,系统认为此时为启动所有系统自带自启动程序;
A2、当列表值为0时,系统禁止所有系统自带自启动程序;
A3、其他内容时,系统将自动启动列表中的程序。
其他内容自启动程序列表,包含以分号分隔的自启动程序的路径。
用户自启动程序列表包含三种内容代表不同的状态:
B1、当列表为空时,系统认为此时为启动用户自启动程序;
B2、当列表内容为0时,系统禁止用户自启动程序;
B3、当列表内容为1时,系统认为此时为启动用户自启动程序。
系统启动以后,自启动控制程序包括以下配置功能:
C1、添加自启动程序;
C2、删除自启动程序;
C3、设置自启动程序;
C4、使能全部自启动程序;
C5、禁止全部自启动程序;
C6、清除自启动程序列表;
C7、查看当前自启动程序列表;
C8、查看所有自启动程序列表。
系统启动前引导程序可以对自动启动列表进行修改和配置,其步骤为:
D1、从flash中读取变量列表到内存;
D2、通过set命令改变变量中的内容;
D3、通过saveenv命令将变量中的内容存储至flash中。
本发明的有益效果是:本发明解决了嵌入式系统中自启动程序固化不能自由控制的弊端,通过控制程序的自启动,有效的减少了内存和CPU的使用。当自动启动程序出现故障时,可将系统重新启动,并在引导程序中对列表中的程序进行修改,再次启动系统时,将不启动故障程序,从而保持系统的稳定性与可靠性,另外方便系统调试。
附图说明
图1系统流程框图;
图2模块结构图;
具体实施方式
下面结合附图对本发明进行说明。
图1指示了系统流程,包括:
步骤101:系统启动,执行自动启动控制程序;
步骤201:自动启动控制程序执行系统自带控制程序自启动命令;
步骤202:系统自带控制程序从引导参数中读取启动程序列表;
步骤203:当启动列表为空时,选择默认列表为所有自启动程序;
步骤204:当启动列表为0时,选择默认列表为空;
步骤205:当启动列表为其他值时,使用列表中的程序项为默认自启动程序;其他值为自启动程序列表,其内容为以分号分隔的自启动程序的路径;
步骤206:循环列表中的自启动程序,如果程序可以运行,则执行加载和运行脚本;
步骤301:自动启动控制程序执行用户自启动程序启动命令;
步骤302:用户自启动控制程序从引导参数中读取启动程序标志;
步骤303:当启动标志为空时,默认选择启动用户自启动程序;
步骤304:当启动标志为1时,选择启动用户自启动程序;
步骤305:当启动标志为0时,选择关闭用户自启动程序;
步骤401:系统启动后,系统自带自启动控制程序还包括以下命令:
1、添加自启动程序
2、删除自启动程序
3、设置自启动程序
4、使能所有自启动程序
5、禁止所有自启动程序
6、清空自启动程序
7、显示当前自启动程序列表
8、显示所有自启动程序列表
步骤402:系统启动后,用户自启动控制程序还包括以下命令:
1、使能用户自启动程序
2、禁止用户自启动程序
3、查看用户自启动程序标志
图2指示了模块结构,包括引导程序、引导参数、内核及应用程序,指示了各个模块在flass中的存储结构;自启动程序列表设置在引导参数中。
自启动程序的存储格式为:
其中:
1、系统自带自启动程序列表的存储变量名为rc.start;
2、用户自启动程序的存储变量名为rc.local。
步骤501:系统启动前引导程序可以对自动启动列表进行修改和配置。其步骤为:
1、从flash中读取变量列表到内存;
2、通过set命令改变变量中的内容;
3、通过saveenv命令将变量中的内容存储至flash中。
系统启动后,自启动控制程序命令实现方法如下:
附:系统自动启动程序控制脚本
#!/bin/sh
uboot_env=/usr/local/sbin/uboot_env
save_name=″rc.start″
scripts=″/etc/init.d/S01*″
case″$1″in
start)
     start_sh=`$uboot_env-r$save_name 2>/dev/null`
     if[″$?″-ne″0″];then
          start_s1=$scripts
else
          start_s1=`echo$start_sh |sed-e″s/$save_name=//″-e′s/;$//′-e′s/;∧n/g′`
fi
for sh in $start_s1
do
    if[-x$sh];then
        $sh boot>/dev/null 2>&1 && $sh start>dev/null 2>&1
    fi
done
;;
add)
if[-f″$2″];then
    start_sh=`$uboot_env-r $save_name 2>/dev/null |sed-e″s/$save_name=//″-e′s/;$∥′-e′s/;∧n/g′`
    echo $start_sh |grep″$2″>/dev/null
    if[″$?″=″0″];then
         echo″Script already in the start list.″
         exit 1
    fi
    start_s1=″$start_sh $2″
    $uboot_env-w $save_name`echo $start_s1|sed-e″s//;/g″`
else
    echo″Script not found″
    exit 2
fi
;;
del)
    if[-f″$2″];then
    start_sh=`$uboot_env-r $save_name 2>/dev/null`
    if[″$?″-ne″0″];then
         echo″No Script found″
         exit 3
    fi
    echo $start_sh
    start_s1=`echo $start_sh |sed-e″s/$save_name=//″-e′s/;$//′-e′s/;∧n/g′|grep-v″$2″`
    $uboot_env-w $save_name`echo $start_s1|sed-e″s//;/g″`
else
    echo″Script not found″
    exit 2
fi
;;
set)
    start_s1=`echo$@|awk′{for(i=2;i<=NF;i++){printf(″%s″,$i);}}′`
    for sh in $start_s1
do
    if[-x″$sh″];then
        echo $sh
    else
        echo″$sh not found or cannot be execute″
        exit 3
fi
  done
  $uboot_env-w $save_name`echo $start_s1|sed-e″s//;/g″`
  ;;
enall)
  start_sh=″″
  for sh in $scripts
do
  start_sh=″$start_sh $sh″
  done
  start_s1=`echo $start_sh |sed′s/^[\t]*//;s/[\t]*$//′`
  $uboot_env-w $save_name`echo $start_s1|sed-e″s//;/g″`
  ;;
disall)
  $uboot_env-w $save_name 0
  ;;
clear)
  $uboot_env-w $save_name
  ;;
list)
  startsh=`$uboot_env-r$save_name 2>/dev/null`
  if[″$?″-ne″0″];then
       for sh in $scripts
       do
           echo $sh
       done
  else
       echo $startsh |sed-e″s/$save_name=//″-e″s/;$//″-e″s/;∧n/g″
  fi
  ;;
listall)
  for sh in $scripts
  do
      echo $sh
  done
  ;;
*)
  echo″Usage $0[start |add|del|enall|disall|set |clear|list|listall]″
  ;;
esac
exit 0
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和实质之内所做的任何修改、等同替换、改进等,均应包含在本发明保护范围之内。

Claims (9)

1.一种控制系统自启动程序的实现方法,其特征在于,通过在引导程序的启动参数中存储自启动程序列表,通过修改自动启动程序列表确定需要启动的程序,可以在系统启动前通过引导程序对列表进行修改,也可以当系统启动之后对列表进行修改。
2.根据权利要求1所述的方法,其特征在于,自启动程序列表分为两部分:系统自带自启动程序列表,用户自启动程序。
3.根据权利要求1或2所述的方法,其特征在于,自启动控制程序将读取引导程序存储的启动程序列表,并依次启动指定的程序,具体步骤:读取系统自带自启动程序列表,读取用户自启动程序。
4.根据权利要求1或2或3所述的方法,其特征在于,自启动程序列表包含三种内容代表不同的状态,列表为空时、为0时、为其他内容或1时。
5.根据权利要求1或2或3或4所述的方法,其特征在于,系统自带自启动程序列表包含三种内容代表不同的状态:
A1、当列表为空时,系统认为此时为启动所有系统自带自启动程序;
A2、当列表值为0时,系统禁止所有系统自带自启动程序;
A3、其他内容时,系统将自动启动列表中的程序。
6.根据权利要求5所述的方法,其特征在于,其他内容自启动程序列表,包含以分号分隔的自启动程序的路径。
7.根据权利要求1或2或3或4所述的方法,其特征在于,用户自启动程序列表包含三种内容代表不同的状态:
B1、当列表为空时,系统认为此时为启动用户自启动程序;
B2、当列表内容为0时,系统禁止用户自启动程序;
B3、当列表内容为1时,系统认为此时为启动用户自启动程序。
8.根据权利要求1或2所述的方法,其特征在于,系统启动以后,自启动控制程序包括以下配置功能:
C1、添加自启动程序;
C2、删除自启动程序;
C3、设置自启动程序;
C4、使能全部自启动程序;
C5、禁止全部自启动程序;
C6、清除自启动程序列表;
C7、查看当前自启动程序列表;
C8、查看所有自启动程序列表。
9.根据权利要求1或2所述的方法,其特征在于,系统启动前引导程序可以对自动启动列表进行修改和配置,其步骤为:
D1、从flash中读取变量列表到内存;
D2、通过set命令改变变量中的内容;
D3、通过saveenv命令将变量中的内容存储至flash中。
CN 201010233976 2010-07-22 2010-07-22 一种控制系统自启动程序的实现方法 Pending CN101916197A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010233976 CN101916197A (zh) 2010-07-22 2010-07-22 一种控制系统自启动程序的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010233976 CN101916197A (zh) 2010-07-22 2010-07-22 一种控制系统自启动程序的实现方法

Publications (1)

Publication Number Publication Date
CN101916197A true CN101916197A (zh) 2010-12-15

Family

ID=43323714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010233976 Pending CN101916197A (zh) 2010-07-22 2010-07-22 一种控制系统自启动程序的实现方法

Country Status (1)

Country Link
CN (1) CN101916197A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073524A (zh) * 2011-01-19 2011-05-25 中兴通讯股份有限公司 一种无线通讯终端及其自启动的方法
CN102455929A (zh) * 2011-08-19 2012-05-16 中标软件有限公司 一种能便捷生成OEM Linux安装镜像的方法
CN102789387A (zh) * 2011-05-20 2012-11-21 宏碁股份有限公司 计算机系统及其系统开机的管理方法
CN103823699A (zh) * 2014-02-27 2014-05-28 广州视源电子科技股份有限公司 一种控制应用程序自启动的方法和装置
CN104834536A (zh) * 2014-02-12 2015-08-12 研祥智能科技股份有限公司 应用程序自运行的方法和装置
CN105138372A (zh) * 2015-08-27 2015-12-09 上海斐讯数据通信技术有限公司 一种基于Android系统的后台服务管控系统及方法
CN105138381A (zh) * 2015-09-21 2015-12-09 北京奇虎科技有限公司 移动终端自启进程的清理方法及装置
CN106598710A (zh) * 2016-10-28 2017-04-26 努比亚技术有限公司 一种应用管理装置、方法及移动终端
CN103744720B (zh) * 2013-12-31 2018-05-04 华为终端(东莞)有限公司 一种应用程序的管理方法和设备
CN109254805A (zh) * 2018-09-21 2019-01-22 武汉斗鱼网络科技有限公司 一种应用自启动方法、终端装置及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1673960A (zh) * 2004-03-24 2005-09-28 联想(北京)有限公司 一种家电设备完成定时任务的方法
CN1732452A (zh) * 2002-10-25 2006-02-08 贝蒂纳·埃克斯珀顿 用于自动启动和访问网络地址和应用程序的系统和方法
CN101146174A (zh) * 2006-09-11 2008-03-19 三星电子株式会社 用于控制数据应用程序自动启动的方法及其视频重放设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1732452A (zh) * 2002-10-25 2006-02-08 贝蒂纳·埃克斯珀顿 用于自动启动和访问网络地址和应用程序的系统和方法
CN1673960A (zh) * 2004-03-24 2005-09-28 联想(北京)有限公司 一种家电设备完成定时任务的方法
CN101146174A (zh) * 2006-09-11 2008-03-19 三星电子株式会社 用于控制数据应用程序自动启动的方法及其视频重放设备

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073524A (zh) * 2011-01-19 2011-05-25 中兴通讯股份有限公司 一种无线通讯终端及其自启动的方法
CN102073524B (zh) * 2011-01-19 2016-03-30 中兴通讯股份有限公司 一种无线通讯终端及其自启动的方法
CN102789387B (zh) * 2011-05-20 2015-08-19 宏碁股份有限公司 计算机系统及其系统开机的管理方法
CN102789387A (zh) * 2011-05-20 2012-11-21 宏碁股份有限公司 计算机系统及其系统开机的管理方法
CN102455929B (zh) * 2011-08-19 2015-03-25 中标软件有限公司 一种能便捷生成OEM Linux安装镜像的方法
CN102455929A (zh) * 2011-08-19 2012-05-16 中标软件有限公司 一种能便捷生成OEM Linux安装镜像的方法
CN103744720B (zh) * 2013-12-31 2018-05-04 华为终端(东莞)有限公司 一种应用程序的管理方法和设备
CN108469985A (zh) * 2013-12-31 2018-08-31 华为终端(东莞)有限公司 一种应用程序的管理方法和设备
CN104834536A (zh) * 2014-02-12 2015-08-12 研祥智能科技股份有限公司 应用程序自运行的方法和装置
CN103823699A (zh) * 2014-02-27 2014-05-28 广州视源电子科技股份有限公司 一种控制应用程序自启动的方法和装置
CN105138372A (zh) * 2015-08-27 2015-12-09 上海斐讯数据通信技术有限公司 一种基于Android系统的后台服务管控系统及方法
CN105138381A (zh) * 2015-09-21 2015-12-09 北京奇虎科技有限公司 移动终端自启进程的清理方法及装置
CN105138381B (zh) * 2015-09-21 2018-09-11 北京奇虎科技有限公司 移动终端自启进程的清理方法及装置
CN106598710A (zh) * 2016-10-28 2017-04-26 努比亚技术有限公司 一种应用管理装置、方法及移动终端
CN109254805A (zh) * 2018-09-21 2019-01-22 武汉斗鱼网络科技有限公司 一种应用自启动方法、终端装置及可读存储介质

Similar Documents

Publication Publication Date Title
CN101916197A (zh) 一种控制系统自启动程序的实现方法
Fouladi et al. From laptop to lambda: Outsourcing everyday jobs to thousands of transient functional containers
CN102053831B (zh) 一种Linux操作系统的定制方法及系统
CN108279935A (zh) 一种针对片上系统的操作系统启动引导方法
US10409567B2 (en) Trimming unused dependencies using package graph and module graph
WO2019090994A1 (zh) 测试脚本自动化执行方法、装置、设备以及存储介质
CN109710320A (zh) 一种两级驱动的启动引导BootLoader方法
CN109213517B (zh) 基于VxWorks操作系统的多版本应用程序在线管理与切换系统
CN115291946A (zh) 鸿蒙系统移植方法、装置、电子设备及可读介质
CN117435512B (zh) 一种基于Junit5自动切换不同数据库类型的单元测试方法
CN116954752A (zh) 一种差异化系统配置、加载方法、装置及计算机设备
CN115951949A (zh) 一种bios的配置参数的恢复方法、装置及计算设备
CN111966602B (zh) 一种定点代码调试方法、系统、终端及存储介质
CN114697313A (zh) 一种基于镜像的文件下载方法
Al-Bokhaiti et al. Customization and Optimization of Android Operating System for Custom Board with the Implementation of an Administrative Tool
US20150149752A1 (en) Server and control method thereof
Wood et al. OpenShift for Developers
Ramey The bourne-again shell
Tjäder RTIC-A Zero-Cost Abstraction for Memory Safe Concurrency
Zhang et al. A Scheme and Implementation of Automatic Deployment of Multilingual Industrial Mechanism Model Based on OpenStack
US7685585B1 (en) Creating an explicit flow control in an implicit flow programming environment
KR101213651B1 (ko) 운영체제의 초기화 스크립트의 이진화 방법, 및 그 이진화 스크립트의 실행 방법
CN112256284A (zh) 开发环境配置方法、装置、电子设备及存储介质
Ramgir Java: High-Performance Apps with Java 9: Boost your application’s performance with the new features of Java 9
CN118409804A (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
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20101215