KR100512157B1 - Oop based micro controller application development system - Google Patents

Oop based micro controller application development system Download PDF

Info

Publication number
KR100512157B1
KR100512157B1 KR1019970045873A KR19970045873A KR100512157B1 KR 100512157 B1 KR100512157 B1 KR 100512157B1 KR 1019970045873 A KR1019970045873 A KR 1019970045873A KR 19970045873 A KR19970045873 A KR 19970045873A KR 100512157 B1 KR100512157 B1 KR 100512157B1
Authority
KR
South Korea
Prior art keywords
microcontroller
development system
class
oop
compiler
Prior art date
Application number
KR1019970045873A
Other languages
Korean (ko)
Other versions
KR19990024648A (en
Inventor
류신
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1019970045873A priority Critical patent/KR100512157B1/en
Publication of KR19990024648A publication Critical patent/KR19990024648A/en
Application granted granted Critical
Publication of KR100512157B1 publication Critical patent/KR100512157B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 마이크로 컨트롤러 응용개발시스템(Micro Controller Application Development System)에 관한 것으로서, 구체적으로는 OOP(Object Oriented Programming)에 기반을 둔 마이크로 컨트롤러 개발 시스템에 관한 것으로, OOP 기반의 클래스 라이브러리(120)와, 상기 클래스 라이브러리(120)를 참조하여 해당 소오스(110)를 컴파일링하는 컴파일러(130)와, 상기 컴파일러(130)에 의한 해당 소오스(110)의 컴파일링 결과의 오류를 디버깅하는 디버거(140)를 포함하고 상기 클래스 라이브러리(120)는, 마이크로 컨트롤러를 기본 클래스(basic class)로 하고, 시스템 파라미터(system parameter) 및 기능(function)을 각각 데이터 변수 및 특징으로 하는 클래스 구조를 갖도록 되어 마이크로 컨트롤러 응용개발시스템의 업그레이드 시에는 OOP의 특성인 클래스의 유도성, 상속성에 따라 적은 시간으로 효과적인 업그레이드가 가능해 진다.The present invention relates to a microcontroller application development system, and more particularly to a microcontroller development system based on OOP (Object Oriented Programming), an OOP-based class library 120, A compiler 130 for compiling the source 110 with reference to the class library 120 and a debugger 140 for debugging an error in the compilation result of the source 110 by the compiler 130. The class library 120 includes a microcontroller as a basic class, and has a class structure in which system parameters and functions are data variables and features, respectively. When upgrading the system, it takes less time depending on the inductive and inheritance of the class that is the characteristic of OOP. Excessive upgrades are possible.

Description

오오피 기반의 마이크로컨트롤러 응용 개발 시스템{OOP BASED MICRO CONTROLLER APPLICATION DEVELOPMENT SYSTEM}OPI-based microcontroller application development system {OOP BASED MICRO CONTROLLER APPLICATION DEVELOPMENT SYSTEM}

본 발명은 마이크로 컨트롤러 응용개발시스템(Micro Controller Application Development System)에 관한 것으로서, 구체적으로는 OOP(Object Oriented Programming)에 기반을 둔 마이크로 컨트롤러 개발 시스템에 관한 것이다.The present invention relates to a microcontroller application development system, and more particularly, to a microcontroller development system based on object-oriented programming (OOP).

현재, 마이크로 컨트롤러(micro controller)는 많은 전자 시스템에 탑재되고 있는 추세이다. 마이크로 컨트롤러의 응용은 매우 다양하며, 전자 시스템에 탑재되어 해당 시스템의 제어를 효과적으로 수행하고 있다. 이러한 마이크로 컨트롤러를 응용한 전자 시스템의 개발시에 효율적인 개발을 위하여 마이크로 컨트롤러 응용개발시스템이 제공되고 있다.Currently, microcontrollers are being installed in many electronic systems. The application of the microcontroller is very diverse, and it is mounted in an electronic system to effectively control the system. Microcontroller application development system has been provided for efficient development in the development of electronic systems using such a microcontroller.

그러나, 마이크로 컨트롤러를 탑재한 응용 시스템의 개발은 시스템들의 구조에 있어서나 기능에 있어서 상이한 점이 많기 때문에 그리 쉽지 않다. 왜냐하면, 개발하고자 하는 전자 시스템은 서로 다른 특성을 갖는 것이 대부분이므로 그 특성에 적합한 마이크로 컨트롤러 개발 시스템을 제공하는 것은 매우 힘든 일이다. 또한 마이크로 컨트롤러의 종류도 매우 다양함으로 이를 모두 만족시키는 개발 시스템을 각기 제공하는 것 역시 매우 어려웠다. 그러므로 새로운 전자 시스템을 개발하기 위해서, 엔지니어는 새로운 하드웨어 디자인을 제안해야 할뿐만 아니라 그 기능의 수행을 위해 필요한 소프트웨어(펌웨어:formware)를 만들어야 한다. 따라서, 응용 엔지니어는 마이크로 컨트롤러를 응용한 제품을 개발하는데 많은 어려움을 겪어 왔다.However, development of an application system equipped with a microcontroller is not so easy because there are many differences in the structure and function of the systems. Because most electronic systems have different characteristics, it is very difficult to provide a microcontroller development system suitable for the characteristics. In addition, there are many types of microcontrollers, and it was very difficult to provide a development system that satisfies them all. Therefore, in order to develop new electronic systems, engineers must not only propose new hardware designs, but also create the necessary software (formware) to perform their functions. Therefore, application engineers have had a lot of difficulties in developing a microcontroller application.

한편, 현재 마이크로 컴퓨터의 프로그래밍 방법에 있어서 하이코드(high code)의 재생을 가능하게 하는 OOP(Object Oriented Programming)가 제안되어 사용되고 있으며, 이는 매우 효과적인 프로그래밍 방법이다.On the other hand, in the programming method of the microcomputer, an object-oriented programming (OOP) that enables high code reproduction has been proposed and used, which is a very effective programming method.

만약, OOP를 마이크로 컨트롤러의 개발에 적용한다면 예를 들어, 마이크로 컨트롤러를 기본 클래스(basic class)로 하고, 시스템 파라미터(system parameter) 및 기능(function)을 각각 데이터 변수 및 특징으로 하는 클래스 구조하는 마이크로 컨트롤러 응용개발시스템이 제공된다면 많은 편리성을 제공하게 될 것이다.If OOP is applied to the development of a microcontroller, for example, a microcontroller is a basic class, and a microstructure that classifies the system parameters and functions as data variables and features, respectively. If a controller application development system is provided, it will provide a lot of convenience.

즉, 마이크로 컨트롤러 응용개발시스템의 업그레이드(upgrade)시에는 OOP의 특성인 클래스의 유도성(class derivation), 상속성(inheritance)에 따라 적은 시간으로 효과적인 업그레이드가 가능해질 것이다.That is, when upgrading the microcontroller application development system, an effective upgrade can be performed in a short time according to the class derivation and inheritance of OOP characteristics.

따라서, 본 발명의 목적은 상술한 제반 문제점을 해결하기 위해 제안된 것으로서 OOP 기반의 마이크로 컨트롤러 응용개발시스템을 제공하는데 있다.Accordingly, an object of the present invention is to provide an OOP-based microcontroller application development system as proposed to solve the above-mentioned problems.

상술한 바와 같은 본 발명의 목적을 달성하기 위한 본 발명의 특징에 의하면, 마이크로 컨트롤러의 응용프로그램의 개발을 위한 개발시스템과, 마이크로 컨트롤러가 탑재되며 상기 개발시스템에 의해 연계되어 해당 프로그램을 로딩하여 에뮬레이션(emulation)을 수행하는 온라인 에뮬레이터를 구비하는 마이크로 컨트롤러 응용개발시스템의 상기 개발시스템은: OOP 기반의 클래스 라이브러리와; 상기 클래스 라이브러리를 참조하여 해당 소오스를 컴파일링하는 컴파일러와; 상기 컴파일러에 의한 해당 소오스의 컴파일링 결과의 오류를 디버깅하는 디버거를 포함한다.According to a feature of the present invention for achieving the object of the present invention as described above, the development system for the development of the application program of the microcontroller, the microcontroller is mounted and linked by the development system to load the corresponding program emulation The development system of a microcontroller application development system having an online emulator for performing emulation includes: an OOP based class library; A compiler for compiling the source with reference to the class library; It includes a debugger for debugging errors in the compilation result of the source by the compiler.

이 실시예에 있어서, 상기 클래스 라이브러리는, 마이크로 컨트롤러를 기본 클래스(basic class)로 하고, 시스템 파라미터(system parameter) 및 기능(function)을 각각 데이터 변수 및 특징으로 하는 클래스 구조를 갖는다.In this embodiment, the class library has a class structure in which a microcontroller is a basic class, and a system parameter and a function are data variables and features, respectively.

상기와 같은 본 발명에 의하면, 마이크로 컨트롤러를 기본 클래스로 하고, 시스템 파라미터 및 기능을 각각 데이터 변수 및 특징으로 하는 클래스 구조하는 마이크로 컨트롤러 응용개발시스템이 제공되어 마이크로 컨트롤러 응용개발시스템의 업그레이드 시에는 OOP의 특성인 클래스의 유도성, 상속성에 따라 적은 시간으로 효과적인 업그레이드가 가능해 진다.According to the present invention as described above, there is provided a microcontroller application development system having a microcontroller as a base class and a class structure having system parameters and functions as data variables and features, respectively. Depending on the derivation and inheritance of the class, it can be effectively upgraded in less time.

(실시예)(Example)

이하 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 바람직한 실시예에 따른 OOP 기반의 마이크로 컨트롤러 응용 개발 시스템의 전체 블록도이다.1 is a block diagram of an OOP-based microcontroller application development system according to a preferred embodiment of the present invention.

도 1에 도시된바와 같이, 본 발명의 신규한 마이크로 컨트롤러 응용개발시스템은 크게 두 부분으로 개발시스템(Development System)(100)과, 타겟 응용 시스템(Target Application System)인 온라인 에뮬레이터(On-line emulator)(200)로 구성된다.As shown in FIG. 1, the novel microcontroller application development system of the present invention is largely divided into a development system 100 and an online emulator, which is a target application system. (200).

상기 개발시스템(100)은 하이레벨언어(high level language)로 작성된 소오스(110)를 컴파일하기 위한 OOP컴파일러(130)와, 컴파일 결과에 따른 해당 소오스의 오류를 디버깅하기 위한 디버거(140)와, OOP 기반의 클래스라이브러리(120)를 구비하여 개발 엔지니어에게 소프트웨어 개발 및 하드웨어 조작 툴을 제공한다. 그리고 상기 타겟응용시스템(200)은 개발에 따른 마이크로컨트롤러(210)와, 이에 따른 주변장치(220)를 구비하여 엔지니어에게 시스템 스팩(설계, 명세)을 제공한다.The development system 100 includes an OOP compiler 130 for compiling a source 110 written in a high level language, a debugger 140 for debugging an error of a corresponding source according to the compilation result, The OOP-based class library 120 is provided to provide development engineers with software development and hardware manipulation tools. In addition, the target application system 200 is provided with a microcontroller 210 and a peripheral device 220 according to the development to provide a system specification (design, specification) to the engineer.

상기 OOP컴파일러(130)는 응용 특수 C++ 컴파일러(application specific C++ compiler)를 사용하고, 상기 클래스라이브러리(120)는 마이크로 컨트롤러의 특성에 따라 설계된 OOP 기반의 클래스 라이브러리이다.The OOP compiler 130 uses an application specific C ++ compiler, and the class library 120 is an OOP based class library designed according to the characteristics of the microcontroller.

상기 OOP컴파일러(130)는 실제로 표준 C++ 컴파일러의 서브셋(subset) 이다. 이것은 마이크로 컨트롤러 응용에 적합하도록 명확하고 단순화된 양상을 갖도록 된다. 그리고 표준 C++의 몇 가지 복잡한 양상들에 의한 예외적인 프로세싱 등과 같은 양상들은 마이크로 컨트롤러의 응용에 불필요하므로 배제되어야 한다. 상기 클래스 라이브러리(120)에 있어서, 이것은 다른 응용의 필요를 충분히 충족시키기 위한 탄력 있고 강력한 기본 클래스를 형성하는 것이 바람직하다. 그리고, 상기 온라인에뮬레이터(200)는 엔지니어에게 즉석 응용 테스트가 가능하도록 하며, 상기 디버거(140)는 보다 쉬운 수정 능력을 제공한다.The OOP compiler 130 is actually a subset of the standard C ++ compiler. It is intended to have a clear and simplified aspect suitable for microcontroller applications. And aspects like exception processing by some of the more complex aspects of standard C ++ are unnecessary for microcontroller applications and should be excluded. In the class library 120, it is desirable to form a resilient and powerful base class to sufficiently meet the needs of other applications. In addition, the online emulator 200 enables an engineer to perform an instant application test, and the debugger 140 provides easier modification capability.

이상과 같은 구성을 갖는 마이크로 컨트롤러 응용개발시스템은 기본적으로 해당 마이크로 콘트롤러를 기본 클래스로 다루는 것으로, 상기 기본적인 클래스 라이브러리(120)는 기본명령세트(basic instruction set)와 기본 특성(basic attributes) 예를 들어, I/O 포트 조작, 데이터/프로그램 메모리 작동(operations) 등의 클래스 구조를 갖는다. 이러한 작동은 단지 마이크로 콘트롤러를 위한 '가상'이고, 이것은 실제 시스템에 적용되지 않는다. 그러나 어떤 응용시스템에 기능과 스팩이 주어졌을 때, 이들 가상 기능들은 원하는 시스템 요구사항을 수행하도록 구현될 수 있다. 또한 기본 응용시스템이 개발되어졌을 때 이후의 업그레이드 작업은 간단한 수정을 통해 그 성능을 향상시킬 수 있게 된다.The microcontroller application development system having the above configuration basically treats the microcontroller as a base class, and the basic class library 120 includes a basic instruction set and basic attributes. , Class I / O port operations, and data / program memory operations. This operation is only 'virtual' for the microcontroller, which does not apply to the actual system. However, given a function and specification for an application, these virtual functions can be implemented to fulfill the desired system requirements. In addition, when the basic application system is developed, subsequent upgrades can be improved by simple modification.

그리고 상기 개발시스템(100)에 제공되는 클래스 라이브러리(120)를 사용하여, 엔지니어는 모든 마이크로콘트롤러 패밀리에 기초하여 모든 기본 클래스로부터 자유롭게 선택할 수 있다. 상기 기본적인 클래스 라이브러리(120)는 프로그램 언어 중 하나인 C++과 같은 하이레벨언어를 사용하게 됨으로 인하여 사용자에게 I/O 포트 세팅 및 시스템 레지스터의 억세스와 같은 로우 레벨 작동(low level operation)을 제공한다. 이러한 경우 전체 시스템이 C++ 언어를 사용하기 때문에, 해당 프로그래밍과 디버깅을 용이하게 할 수 있다.And using the class library 120 provided in the development system 100, the engineer can freely select from all base classes based on all microcontroller families. The basic class library 120 uses a high level language such as C ++, which is one of programming languages, thereby providing a user with low level operations such as setting I / O ports and accessing system registers. In this case, the entire system uses the C ++ language, which facilitates programming and debugging.

상술한 바와 같이, 본 발명의 마이크로 컨트롤러 응용개발시스템은 OOP에 있어서 일반화된 클래스로서 다양한 마이크로콘트로러를 다룰 수 있다.As described above, the microcontroller application development system of the present invention can handle various microcontrollers as a generalized class in OOP.

이상과 같은 본 발명에 의하면, 새로운 마이크로 컨트롤러 응용개발시스템(또는 구 시스템)을 업그레이드하는데 종래와 달리 단 시간 내에 가능하게 되어 적은 비용으로 보다 나은 결과를 얻을 수 있게 된다. 게다가 클래스 라이브러리에 의해 마이크로 컨트롤러 응용개발시스템을 다양한 마이크로 컨트롤러의 개발에 적용 가능하게 된다.According to the present invention as described above, it is possible to upgrade the new microcontroller application development system (or the old system) in a short time unlike the prior art, it is possible to obtain better results with less cost. In addition, the class library enables the microcontroller application development system to be applied to the development of various microcontrollers.

도 1은 본 발명의 바람직한 실시예에 따른 OOP 기반의 마이크로 컨트롤러 응용 개발 시스템의 전체 블록도이다.1 is a block diagram of an OOP-based microcontroller application development system according to a preferred embodiment of the present invention.

*도면의 주요 부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings

100 : 개발시스템 110 : 소오스100: development system 110: source

120 : 클래스 라이브러리 130 : 컴파일러120: class library 130: compiler

140 : 디버거 200 : 온라인 에뮬레이터140: Debugger 200: Online Emulator

210 : 마이크로 컨트롤러 220 : 주변장치210: microcontroller 220: peripheral device

Claims (1)

마이크로 컨트롤러의 응용프로그램의 개발을 위한 개발시스템과, 마이크로 컨트롤러(210)가 탑재되며 상기 개발시스템에 의해 연계되어 해당 프로그램을 로딩하여 에뮬레이션(emulation)을 수행하는 온라인 에뮬레이터를 구비하는 마이크로 컨트롤러 응용개발시스템에 있어서,A microcontroller application development system including a development system for developing an application program of a microcontroller, and an on-line emulator mounted with a microcontroller 210 and linked by the development system to perform emulation by loading a corresponding program. To 상기 개발시스템은:The development system is: 다양한 마이크로 컨트롤러들을 기본 클래스(basic class)로 하고, 상기 각각의 기본 클래스에 대한 기본명령세트(basic instruction set)와, I/O 포트 조작 및 데이터/프로그램 메모리 작동(operations)에 대한 파라미터를 정의하여, 사용자에게 로우 레벨의 I/O 포트 세팅 및 시스템 레지스터의 억세스 기능을 제공하는 OOP 기반의 클래스 라이브러리(120)와;By making various microcontrollers a basic class, we define a basic instruction set for each of these basic classes, and define parameters for I / O port operations and data / program memory operations. An OOP based class library 120 that provides a user with low level I / O port settings and access to system registers; 상기 클래스 라이브러리(120)를 참조하여 하이레벨언어(high level language)로 작성된 소오스(110)를 컴파일하는 컴파일러(130)와;A compiler (130) for compiling a source (110) written in a high level language with reference to the class library (120); 상기 컴파일러(130)에 의한 해당 소오스(110)의 컴파일링 결과의 오류를 디버깅하는 디버거(140)를 포함하는 것을 특징으로 하는 마이크로 컨트롤러 응용개발시스템.Microcontroller application development system comprising a debugger (140) for debugging the error of the compilation result of the source (110) by the compiler (130).
KR1019970045873A 1997-09-04 1997-09-04 Oop based micro controller application development system KR100512157B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970045873A KR100512157B1 (en) 1997-09-04 1997-09-04 Oop based micro controller application development system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970045873A KR100512157B1 (en) 1997-09-04 1997-09-04 Oop based micro controller application development system

Publications (2)

Publication Number Publication Date
KR19990024648A KR19990024648A (en) 1999-04-06
KR100512157B1 true KR100512157B1 (en) 2005-11-01

Family

ID=37305734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970045873A KR100512157B1 (en) 1997-09-04 1997-09-04 Oop based micro controller application development system

Country Status (1)

Country Link
KR (1) KR100512157B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628168A (en) * 1990-04-27 1994-02-04 Sun Microsyst Inc Method for realization of object-oriented programming
US5404525A (en) * 1992-09-30 1995-04-04 International Business Machines Corporation Efficient method router that supports multiple simultaneous object versions
EP0789300A2 (en) * 1996-02-09 1997-08-13 Sun Microsystems, Inc. System and method for automatically modifying database access methods to insert database object handling instructions
KR19980047747A (en) * 1996-12-16 1998-09-15 양승택 Object-Oriented High Level Language (CHILL) Programming Environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628168A (en) * 1990-04-27 1994-02-04 Sun Microsyst Inc Method for realization of object-oriented programming
US5404525A (en) * 1992-09-30 1995-04-04 International Business Machines Corporation Efficient method router that supports multiple simultaneous object versions
EP0789300A2 (en) * 1996-02-09 1997-08-13 Sun Microsystems, Inc. System and method for automatically modifying database access methods to insert database object handling instructions
KR19980047747A (en) * 1996-12-16 1998-09-15 양승택 Object-Oriented High Level Language (CHILL) Programming Environment

Also Published As

Publication number Publication date
KR19990024648A (en) 1999-04-06

Similar Documents

Publication Publication Date Title
Peatman Design with PIC microcontrollers
EP1074911B1 (en) Aspect-oriented programming
US5274815A (en) Dynamic instruction modifying controller and operation method
US5920721A (en) Compiler generating functionally-alike code sequences in an executable program intended for execution in different run-time environments
US6343373B1 (en) Retargetable information process system
JPS6017539A (en) Emulation system
EP0884678A2 (en) Loader conditionally replacing a code sequence with a functionally-alike code sequence in an executable program intended for execution in different run-time environments
US10789192B2 (en) System and method for programming data transfer within a microcontroller
Evans et al. On-line debugging techniques: a survey
US5925109A (en) System for I/O management where I/O operations are determined to be direct or indirect based on hardware coupling manners and/or program privilege modes
US6766514B1 (en) Compiler having real-time tuning, I/O scaling and process test capability
Davis STARAN parallel processor system software
KR100512157B1 (en) Oop based micro controller application development system
CN109144849B (en) Embedded software debugging method
KR100303307B1 (en) Downloading device and method for debugging operation in real time operating system
Kirk C programming for embedded systems
Holt et al. A software development system for microcomputers
Hassan et al. Programming microprocessors with a high level language-the case of PASCAL/64000
Goldberg et al. The PRIM System: An alternative architecture for emulator development and use
Mayer-Lindenberg Interactive software development for complex embedded systems
Barthelmann Advanced compiling techniques to reduce RAM usage of static operating systems
GB2372853A (en) A method of mode switching wherein the operating mode selected is based on the address from which an instruction is fetched
Rooney Higher level languages-write it once, run it on any microprocessor
JPH0383104A (en) Programmable sequencer
Rovegno UNIX Time‐Sharing System: A Support Environment for MAC‐8 Systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee