KR100512157B1 - 오오피 기반의 마이크로컨트롤러 응용 개발 시스템 - Google Patents
오오피 기반의 마이크로컨트롤러 응용 개발 시스템 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract 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의 특성인 클래스의 유도성, 상속성에 따라 적은 시간으로 효과적인 업그레이드가 가능해 진다.
Description
본 발명은 마이크로 컨트롤러 응용개발시스템(Micro Controller Application Development System)에 관한 것으로서, 구체적으로는 OOP(Object Oriented Programming)에 기반을 둔 마이크로 컨트롤러 개발 시스템에 관한 것이다.
현재, 마이크로 컨트롤러(micro controller)는 많은 전자 시스템에 탑재되고 있는 추세이다. 마이크로 컨트롤러의 응용은 매우 다양하며, 전자 시스템에 탑재되어 해당 시스템의 제어를 효과적으로 수행하고 있다. 이러한 마이크로 컨트롤러를 응용한 전자 시스템의 개발시에 효율적인 개발을 위하여 마이크로 컨트롤러 응용개발시스템이 제공되고 있다.
그러나, 마이크로 컨트롤러를 탑재한 응용 시스템의 개발은 시스템들의 구조에 있어서나 기능에 있어서 상이한 점이 많기 때문에 그리 쉽지 않다. 왜냐하면, 개발하고자 하는 전자 시스템은 서로 다른 특성을 갖는 것이 대부분이므로 그 특성에 적합한 마이크로 컨트롤러 개발 시스템을 제공하는 것은 매우 힘든 일이다. 또한 마이크로 컨트롤러의 종류도 매우 다양함으로 이를 모두 만족시키는 개발 시스템을 각기 제공하는 것 역시 매우 어려웠다. 그러므로 새로운 전자 시스템을 개발하기 위해서, 엔지니어는 새로운 하드웨어 디자인을 제안해야 할뿐만 아니라 그 기능의 수행을 위해 필요한 소프트웨어(펌웨어:formware)를 만들어야 한다. 따라서, 응용 엔지니어는 마이크로 컨트롤러를 응용한 제품을 개발하는데 많은 어려움을 겪어 왔다.
한편, 현재 마이크로 컴퓨터의 프로그래밍 방법에 있어서 하이코드(high code)의 재생을 가능하게 하는 OOP(Object Oriented Programming)가 제안되어 사용되고 있으며, 이는 매우 효과적인 프로그래밍 방법이다.
만약, OOP를 마이크로 컨트롤러의 개발에 적용한다면 예를 들어, 마이크로 컨트롤러를 기본 클래스(basic class)로 하고, 시스템 파라미터(system parameter) 및 기능(function)을 각각 데이터 변수 및 특징으로 하는 클래스 구조하는 마이크로 컨트롤러 응용개발시스템이 제공된다면 많은 편리성을 제공하게 될 것이다.
즉, 마이크로 컨트롤러 응용개발시스템의 업그레이드(upgrade)시에는 OOP의 특성인 클래스의 유도성(class derivation), 상속성(inheritance)에 따라 적은 시간으로 효과적인 업그레이드가 가능해질 것이다.
따라서, 본 발명의 목적은 상술한 제반 문제점을 해결하기 위해 제안된 것으로서 OOP 기반의 마이크로 컨트롤러 응용개발시스템을 제공하는데 있다.
상술한 바와 같은 본 발명의 목적을 달성하기 위한 본 발명의 특징에 의하면, 마이크로 컨트롤러의 응용프로그램의 개발을 위한 개발시스템과, 마이크로 컨트롤러가 탑재되며 상기 개발시스템에 의해 연계되어 해당 프로그램을 로딩하여 에뮬레이션(emulation)을 수행하는 온라인 에뮬레이터를 구비하는 마이크로 컨트롤러 응용개발시스템의 상기 개발시스템은: OOP 기반의 클래스 라이브러리와; 상기 클래스 라이브러리를 참조하여 해당 소오스를 컴파일링하는 컴파일러와; 상기 컴파일러에 의한 해당 소오스의 컴파일링 결과의 오류를 디버깅하는 디버거를 포함한다.
이 실시예에 있어서, 상기 클래스 라이브러리는, 마이크로 컨트롤러를 기본 클래스(basic class)로 하고, 시스템 파라미터(system parameter) 및 기능(function)을 각각 데이터 변수 및 특징으로 하는 클래스 구조를 갖는다.
상기와 같은 본 발명에 의하면, 마이크로 컨트롤러를 기본 클래스로 하고, 시스템 파라미터 및 기능을 각각 데이터 변수 및 특징으로 하는 클래스 구조하는 마이크로 컨트롤러 응용개발시스템이 제공되어 마이크로 컨트롤러 응용개발시스템의 업그레이드 시에는 OOP의 특성인 클래스의 유도성, 상속성에 따라 적은 시간으로 효과적인 업그레이드가 가능해 진다.
(실시예)
이하 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 OOP 기반의 마이크로 컨트롤러 응용 개발 시스템의 전체 블록도이다.
도 1에 도시된바와 같이, 본 발명의 신규한 마이크로 컨트롤러 응용개발시스템은 크게 두 부분으로 개발시스템(Development System)(100)과, 타겟 응용 시스템(Target Application System)인 온라인 에뮬레이터(On-line emulator)(200)로 구성된다.
상기 개발시스템(100)은 하이레벨언어(high level language)로 작성된 소오스(110)를 컴파일하기 위한 OOP컴파일러(130)와, 컴파일 결과에 따른 해당 소오스의 오류를 디버깅하기 위한 디버거(140)와, OOP 기반의 클래스라이브러리(120)를 구비하여 개발 엔지니어에게 소프트웨어 개발 및 하드웨어 조작 툴을 제공한다. 그리고 상기 타겟응용시스템(200)은 개발에 따른 마이크로컨트롤러(210)와, 이에 따른 주변장치(220)를 구비하여 엔지니어에게 시스템 스팩(설계, 명세)을 제공한다.
상기 OOP컴파일러(130)는 응용 특수 C++ 컴파일러(application specific C++ compiler)를 사용하고, 상기 클래스라이브러리(120)는 마이크로 컨트롤러의 특성에 따라 설계된 OOP 기반의 클래스 라이브러리이다.
상기 OOP컴파일러(130)는 실제로 표준 C++ 컴파일러의 서브셋(subset) 이다. 이것은 마이크로 컨트롤러 응용에 적합하도록 명확하고 단순화된 양상을 갖도록 된다. 그리고 표준 C++의 몇 가지 복잡한 양상들에 의한 예외적인 프로세싱 등과 같은 양상들은 마이크로 컨트롤러의 응용에 불필요하므로 배제되어야 한다. 상기 클래스 라이브러리(120)에 있어서, 이것은 다른 응용의 필요를 충분히 충족시키기 위한 탄력 있고 강력한 기본 클래스를 형성하는 것이 바람직하다. 그리고, 상기 온라인에뮬레이터(200)는 엔지니어에게 즉석 응용 테스트가 가능하도록 하며, 상기 디버거(140)는 보다 쉬운 수정 능력을 제공한다.
이상과 같은 구성을 갖는 마이크로 컨트롤러 응용개발시스템은 기본적으로 해당 마이크로 콘트롤러를 기본 클래스로 다루는 것으로, 상기 기본적인 클래스 라이브러리(120)는 기본명령세트(basic instruction set)와 기본 특성(basic attributes) 예를 들어, I/O 포트 조작, 데이터/프로그램 메모리 작동(operations) 등의 클래스 구조를 갖는다. 이러한 작동은 단지 마이크로 콘트롤러를 위한 '가상'이고, 이것은 실제 시스템에 적용되지 않는다. 그러나 어떤 응용시스템에 기능과 스팩이 주어졌을 때, 이들 가상 기능들은 원하는 시스템 요구사항을 수행하도록 구현될 수 있다. 또한 기본 응용시스템이 개발되어졌을 때 이후의 업그레이드 작업은 간단한 수정을 통해 그 성능을 향상시킬 수 있게 된다.
그리고 상기 개발시스템(100)에 제공되는 클래스 라이브러리(120)를 사용하여, 엔지니어는 모든 마이크로콘트롤러 패밀리에 기초하여 모든 기본 클래스로부터 자유롭게 선택할 수 있다. 상기 기본적인 클래스 라이브러리(120)는 프로그램 언어 중 하나인 C++과 같은 하이레벨언어를 사용하게 됨으로 인하여 사용자에게 I/O 포트 세팅 및 시스템 레지스터의 억세스와 같은 로우 레벨 작동(low level operation)을 제공한다. 이러한 경우 전체 시스템이 C++ 언어를 사용하기 때문에, 해당 프로그래밍과 디버깅을 용이하게 할 수 있다.
상술한 바와 같이, 본 발명의 마이크로 컨트롤러 응용개발시스템은 OOP에 있어서 일반화된 클래스로서 다양한 마이크로콘트로러를 다룰 수 있다.
이상과 같은 본 발명에 의하면, 새로운 마이크로 컨트롤러 응용개발시스템(또는 구 시스템)을 업그레이드하는데 종래와 달리 단 시간 내에 가능하게 되어 적은 비용으로 보다 나은 결과를 얻을 수 있게 된다. 게다가 클래스 라이브러리에 의해 마이크로 컨트롤러 응용개발시스템을 다양한 마이크로 컨트롤러의 개발에 적용 가능하게 된다.
도 1은 본 발명의 바람직한 실시예에 따른 OOP 기반의 마이크로 컨트롤러 응용 개발 시스템의 전체 블록도이다.
*도면의 주요 부분에 대한 부호의 설명*
100 : 개발시스템 110 : 소오스
120 : 클래스 라이브러리 130 : 컴파일러
140 : 디버거 200 : 온라인 에뮬레이터
210 : 마이크로 컨트롤러 220 : 주변장치
Claims (1)
- 마이크로 컨트롤러의 응용프로그램의 개발을 위한 개발시스템과, 마이크로 컨트롤러(210)가 탑재되며 상기 개발시스템에 의해 연계되어 해당 프로그램을 로딩하여 에뮬레이션(emulation)을 수행하는 온라인 에뮬레이터를 구비하는 마이크로 컨트롤러 응용개발시스템에 있어서,상기 개발시스템은:다양한 마이크로 컨트롤러들을 기본 클래스(basic class)로 하고, 상기 각각의 기본 클래스에 대한 기본명령세트(basic instruction set)와, I/O 포트 조작 및 데이터/프로그램 메모리 작동(operations)에 대한 파라미터를 정의하여, 사용자에게 로우 레벨의 I/O 포트 세팅 및 시스템 레지스터의 억세스 기능을 제공하는 OOP 기반의 클래스 라이브러리(120)와;상기 클래스 라이브러리(120)를 참조하여 하이레벨언어(high level language)로 작성된 소오스(110)를 컴파일하는 컴파일러(130)와;상기 컴파일러(130)에 의한 해당 소오스(110)의 컴파일링 결과의 오류를 디버깅하는 디버거(140)를 포함하는 것을 특징으로 하는 마이크로 컨트롤러 응용개발시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970045873A KR100512157B1 (ko) | 1997-09-04 | 1997-09-04 | 오오피 기반의 마이크로컨트롤러 응용 개발 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970045873A KR100512157B1 (ko) | 1997-09-04 | 1997-09-04 | 오오피 기반의 마이크로컨트롤러 응용 개발 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990024648A KR19990024648A (ko) | 1999-04-06 |
KR100512157B1 true KR100512157B1 (ko) | 2005-11-01 |
Family
ID=37305734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970045873A KR100512157B1 (ko) | 1997-09-04 | 1997-09-04 | 오오피 기반의 마이크로컨트롤러 응용 개발 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100512157B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0628168A (ja) * | 1990-04-27 | 1994-02-04 | Sun Microsyst Inc | オブジェクト指向プログラミングを実現する方法 |
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 (ko) * | 1996-12-16 | 1998-09-15 | 양승택 | 객체지향 고수준언어(chill) 프로그래밍 환경 |
-
1997
- 1997-09-04 KR KR1019970045873A patent/KR100512157B1/ko not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0628168A (ja) * | 1990-04-27 | 1994-02-04 | Sun Microsyst Inc | オブジェクト指向プログラミングを実現する方法 |
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 (ko) * | 1996-12-16 | 1998-09-15 | 양승택 | 객체지향 고수준언어(chill) 프로그래밍 환경 |
Also Published As
Publication number | Publication date |
---|---|
KR19990024648A (ko) | 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 (ja) | エミユレ−シヨン方式 | |
US10789192B2 (en) | System and method for programming data transfer within a microcontroller | |
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 | |
CN100492387C (zh) | 基于Keil C51的软件保护开发的方法和系统 | |
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 (ko) | 오오피 기반의 마이크로컨트롤러 응용 개발 시스템 | |
CN109144849B (zh) | 一种嵌入式软件调测方法 | |
KR100303307B1 (ko) | 실시간 오퍼레이팅 시스템에서 디버깅동작을 위한 다운로드장치 및 방법 | |
Kirk | C programming for embedded systems | |
KR20020032256A (ko) | 통합 임베디드 시스템 및 이의 구현 방법 | |
Holt et al. | A software development system for microcomputers | |
Hassan et al. | Programming microprocessors with a high level language-the case of PASCAL/64000 | |
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 (ja) | プログラマブルシーケンサ |
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 |