KR101710305B1 - 사용자 중심의 기능 가변식 컴파일링 시스템 - Google Patents

사용자 중심의 기능 가변식 컴파일링 시스템 Download PDF

Info

Publication number
KR101710305B1
KR101710305B1 KR1020160068275A KR20160068275A KR101710305B1 KR 101710305 B1 KR101710305 B1 KR 101710305B1 KR 1020160068275 A KR1020160068275 A KR 1020160068275A KR 20160068275 A KR20160068275 A KR 20160068275A KR 101710305 B1 KR101710305 B1 KR 101710305B1
Authority
KR
South Korea
Prior art keywords
firmware
target
hardware
compiling
code
Prior art date
Application number
KR1020160068275A
Other languages
English (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 KR1020160068275A priority Critical patent/KR101710305B1/ko
Application granted granted Critical
Publication of KR101710305B1 publication Critical patent/KR101710305B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Abstract

본 발명은 선택된 타겟 시스템 및 선택된 펌웨어에 따라 하드웨어 구성을 재조합하고, 상기 선택된 펌웨어를 컴파일링하고 이를 상기 타겟 시스템에 임베디드하여 상기 선택된 타겟 시스템을 상기 선택된 펌웨어 기능을 수행하는 임베디드 시스템으로 가변시킬 수 있는 사용자 중심의 기능 가변식 컴파일링 시스템에 관한 것이다.
상기의 과제를 해결하기 위하여 본 발명에 따른 사용자 중심의 기능 가변식 컴파일링 시스템은 선택된 타겟 시스템 및 선택된 펌웨어에 따라 하드웨어 구성을 재조합하고, 상기 선택된 펌웨어를 상기 재조합된 하드웨어에 근거하여 컴파일링을 통해 목적 코드를 생성하며, 상기 생성된 목적 코드를 상기 타겟 시스템에 임베디드하여 상기 선택된 타겟 시스템을 상기 선택된 펌웨어 기능의 임베디드 시스템으로 가변시키는 것을 특징으로 한다.

Description

사용자 중심의 기능 가변식 컴파일링 시스템{VARIABLE TYPE COMPILING SYSTEM FOR FUNCTION OF USER-CENTRIC}

본 발명은 사용자 중심의 기능 가변식 컴파일링 시스템에 관한 것으로서, 더욱 상세하게는 선택된 타겟 시스템 및 선택된 펌웨어에 따라 하드웨어 구성을 재조합하고, 상기 선택된 펌웨어를 컴파일링하여 목적 코드를 생성하며, 상기 컴파일링된 목적 코드를 상기 타겟 시스템에 임베디드하여 상기 선택된 타겟 시스템을 상기 선택된 펌웨어 기능의 임베디드 시스템으로 가변시키는 사용자 중심의 기능 가변식 컴파일링 시스템에 관한 것이다.

일반적으로 임베디드 시스템은 전용 컴퓨터나 마이크로프로세서를 구동하여 특정 목적의 작업이나 특정 기능을 수행하도록 설계한 하드웨어와 소프트웨어를 갖는 제어 시스템을 의미한다. 즉, 1개의 임베디드 시스템은 적어도 1개 이상의 기능을 수행할 수 있는 적어도 1개 이상의 하드웨어와 상기 하드웨어를 구동하는 소프트웨어로 구성된다.

부연하면, 각종 전자 기기, 가전제품 및 제어장치 등 단순히 회로로만 구성된 것이 아니라 마이크로컨트롤러(또는 마이크로프로세서)가 내장되어 있는바, 임베디드 시스템은 상기 마이크로컨트롤러를 구동하여 특정한 기능을 수행하도록 소프트웨어가 내장되어 있는 시스템을 가리킨다.

이러한 임베디드 시스템에서 마이크로컨트롤러를 구동하여 특정한 기능을 수행하도록 하는 소프트웨어는 하드웨어의 파라미터에 근거하여 프로그램을 작성하고, 작성된 프로그램은 수많은 디버깅 과정을 통해 제작된다.

이를 개선하기 위해 공개특허공보 제10-2002-0032256호에는 통합 임베디드 시스템 및 이의 구현 방법이 개시되어 있다.

상기 기술은 임베디드 시스템을 간단히 구현할 수 있도록 별도의 환경 설정이 불필요한 전용 크로스 컴파일러가 내장된 윈도우즈 통합개발환경으로 프로그램을 편집하고 컴파일한 후 기계어 코드를 타겟 보드에 전송하는 통합 임베디드 시스템을 제공하기 위한 것으로서, 프로그램을 작성하기 위한 사용자 인터페이스; 상기 사용자 인터페이스에 연결되어 있으며, 개발 도구들을 하나의 환경으로 구축하여 프로그램 개발을 용이하게 실현하기 위해 각 개발 도구간을 연동하는 통합개발환경을 구축하는 에디터; 상기 에디터에 연결되어 있으며, 상기 에디터를 통해 프로그램 설계자가 작성한 원시 프로그램을 HEX(또는 BIN) 형태의 기계어로 번역하는 컴파일러; 및 상기 컴파일러에 연결되어 있으며, 목적 프로그램인 HEX(또는 BIN) 파일을 읽어서 내부 버퍼에 저장하고, 통신부를 통하여 상기 타겟 보드에 전송하는 다운로더를 포함하는 것을 특징으로 한다.

또한, 등록특허공보 제10-0683853호에는 소스코드파일을 조사하고, 구성 디렉티브를 찾으며, 디렉티브의 신택스(syntax)를 분석하여, 소스코드로부터 검색된 구성 디렉티브에 상응하는 렉시컬(lexical) 유닛의 트리를 출력하는 소스코드 스캐너, 출력된 구성 디렉티브를 구성 상태로 출력하는 코어, 코어와 사용자 사이에 대화를 제공하고 내부의 구성 상태를 표현하고 사용자가 변수값을 입력하여 현재의 구성상태를 표현하는 GUI, 코어에서 출력된 구성 상태를 렉시컬 유닛의 흐름에 무관한 프로그래밍언어로 출력하는 코드 생성 모듈, 소스코드 스캐너 및 코드 생성 모듈에 해당언어의 문법에 관한 정보를 전달하고, 코드 생성 모듈에서 출력된 렉시컬 유닛의 흐름에 무관한 프로그래밍 언어을 입력받아 소스코드를 출력하는 프로그래밍 언어 모듈을 포함하는 프리 컴파일링 장치가 개시되어 있다.

그러나 상기의 기술들은 하드웨어를 제어하는 임베디드 시스템을 편리하게 제공할 수 있다는 점에서는 긍정적이나, 새로운 기능을 부여하거나 또는 새로운 기능을 수행하고자 하는 경우 해당되는 기능을 수행할 수 있는 하드웨어가 추가되어야 하는 문제점이 있다.

부연하면, 종래의 임베디드 시스템은 특정 기능을 수행하는 임베디드 시스템을 별도의 다른 기능을 수행하는 임베디드 시스템으로 변경할 수 없으며, 새로운 기능을 갖는 임베디드 시스템이 채택되는 경우 그에 대응하는 하드웨어를 추가하여 구성해야 하는 문제점이 발생된다.

예를 들어, 작업실 등 사람이 존재하는 경우에는 조명제어 시스템이 요구되고 부재할 경우에는 보안 시스템이 요구되나, 조명 제어 및 보안을 동시에 제어할 필요성이 없고, 2가지의 기능을 모두 수행하기 위해서는 조명제어 시스템과 보안 시스템이 각각 구성되어야 하는 문제점이 발생된다.

KR 10-2002-0032256 A (2002. 05. 03.) KR 10-0683853 B1 (2007. 02. 09.)

본 발명은 상기 종래기술이 갖는 문제점을 해결하기 위하여 창출된 것으로서, 본 발명에서 해소하고자 하는 과제는, 구성된 하드웨어의 범위 내에서 사용자 중심의 임베디드 시스템으로 가변시킬 수 있는 사용자 중심의 기능 가변식 컴파일링 시스템을 제공하는 데 있다.

또한, 하드웨어의 중복 사용에 따른 구축 비용을 감소시킬 수 있고, 하드웨어에 다양한 기능을 부여할 수 있는 사용자 중심의 기능 가변식 컴파일링 시스템을 제공하는 데 있다.

상기의 과제를 해결하기 위하여 본 발명에 따른 사용자 중심의 기능 가변식 컴파일링 시스템은 선택된 타겟 시스템 및 선택된 펌웨어에 따라 하드웨어 구성을 재조합하고, 상기 선택된 펌웨어를 상기 재조합된 하드웨어에 근거하여 컴파일링을 통해 목적 코드를 생성하며, 상기 생성된 목적 코드를 상기 타겟 시스템에 임베디드하여 상기 선택된 타겟 시스템을 상기 선택된 펌웨어 기능의 임베디드 시스템으로 가변시키는 것을 특징으로 한다.

여기서, 상기 컴파일링 시스템은 상기 선택된 펌웨어에 따라 상기 하드웨어의 파라미터를 검출하고, 검출된 하드웨어의 파라미터에 근거하여 상기 선택된 펌웨어가 컴파일링되도록 제어하며, 상기 컴파일링된 목적 코드를 타겟 시스템으로 전송하는 기능을 수행하는 컴파일링 제어부; 상기 컴파일링 제어부의 제어에 따라 선택된 펌웨어의 소스코드를 분석하여 코드 최적화를 통해 목적 코드를 생성하는 컴파일러; 및 상기 타겟 시스템에 구성된 하드웨어를 통해 수행될 수 있는 펌웨어가 저장 관리되는 펌웨어 DB를 포함하여 구성되는 것을 특징으로 한다.

또한, 상기 컴파일링 제어부는 상기 타겟 시스템에 구성된 하드웨어의 종류 및 모델에 대한 정보를 설정하는 하드웨어 설정모듈; 상기 하드웨어에 대한 상세정보가 설정되어 입력되는 하드웨어 파라미터 모듈; 상기 하드웨어 설정모듈 및 상기 하드웨어 파라미터 모듈에 저장된 정보와 상기 선택된 펌웨어에 근거하여 상기 펌웨어를 컴파일링되도록 제어하는 컴파일러 제어모듈; 상기 컴파일러 제어모듈의 제어에 따라 생성된 목적 코드를 상기 선택된 타켓 시스템으로 전송하기 위한 데이터 패킷을 생성하는 임베디드 모듈; 및 상기 컴파일링 시스템을 통신망에 접속시키는 통신모듈을 포함하는 것을 특징으로 한다.

또한, 상기 펌웨어 DB에 저장 관리되는 펌웨어는 사용 환경에 따라 그룹으로 구분하여 저장 관리될 수 있다.

아울러, 상기 타겟 시스템은 홈 네트워크 시스템, IoT 제어 시스템, 공장 자동화 시스템 또는 사무 자동화 시스템으로 구성되는 것을 특징으로 한다.

본 발명에 의하면, 구성된 하드웨어의 범위 내에서 임베디드 시스템을 가변시킬 수 있으므로, 사용자의 필요에 따라 주변 환경을 제어할 수 있는 장점이 있다.

또한, 초기 구성된 하드웨어를 재사용하되 주변의 다른 하드웨어와의 조합에 의해 수행되는 기능을 가변시킬 수 있으므로, 임베디드 시스템의 구축 비용을 감소시킬 수 있는 장점이 있다.

도 1은 본 발명에 따른 사용자 중심의 기능 가변식 컴파일링 시스템의 개략적인 구성도.
도 2는 본 발명에 따른 사용자 중심의 기능 가변식 컴파일링 시스템에서 컴파일링 제어부의 구성도.
도 3은 본 발명에 따른 사용자 중심의 기능 가변식 컴파일링 시스템에서 상기 펌웨어 DB에 저장 관리되는 그룹별 펌웨어에 대한 일 실시 예의 구성도.
도 4는 본 발명에 따른 사용자 중심의 기능 가변식 컴파일링 시스템에서 일 실시 예에 따른 타겟 시스템의 구성도.

이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 더욱 상세하게 설명한다.

본 발명은 선택된 타겟 시스템 및 선택된 펌웨어에 따라 하드웨어 구성을 재조합하고, 상기 선택된 펌웨어를 컴파일링하고 이를 상기 타겟 시스템에 임베디드하여 상기 선택된 타겟 시스템을 상기 선택된 펌웨어 기능을 수행하는 임베디드 시스템으로 가변시킬 수 있는 사용자 중심의 기능 가변식 컴파일링 시스템에 관한 것이다.

도 1은 본 발명에 따른 사용자 중심의 기능 가변식 컴파일링 시스템의 개략적인 구성도를 나타낸 도면이다.

첨부된 도 1을 참조하면, 본 발명에 따른 사용자 중심의 기능 가변식 컴파일링 시스템은 컴파일링 시스템(100), 타겟 시스템(200) 및 사용자 단말기(300)를 포함하여 구성되고, 상기 컴파일링 시스템(100)은 컴파일링 제어부(110), 컴파일러(120) 및 펌웨어 DB(130)를 포함하여 구성된다. 또한, 상기 컴파일링 시스템(100)으로부터 목적 코드를 수신하고 이를 수행하는 타겟 시스템(200) 및 컴파일링 시스템(100)에 접속하여 요청신호를 입력하는 사용자 단말기(300)를 포함하여 구성된다.

여기서 상기 컴파일링 시스템(100)은 선택된 타겟 시스템 및 선택된 펌웨어에 따라 하드웨어 구성을 재조합하고, 상기 선택된 펌웨어를 컴파일링하여 목적 코드로 생성하며, 상기 컴파일링된 목적 코드를 상기 타겟 시스템에 임베디드하여 상기 선택된 타겟 시스템을 상기 선택된 펌웨어 기능을 수행하는 임베디드 시스템으로 가변시키는 기능을 수행한다.

이때, 상기 타겟 시스템(200)은 홈 네트워크 시스템, IoT 제어 시스템, 공장 자동화 시스템 또는 사무 자동화 시스템 등 다양하게 구성될 수 있으며, 복수 개로 구성될 수 있다.

상기 컴파일링 시스템(100)의 상기 컴파일링 제어부(110)는 선택된 펌웨어에 따라 하드웨어의 파라미터를 검출하고, 검출된 하드웨어의 파라미터에 근거하여 상기 선택된 펌웨어가 컴파일링되도록 제어하며, 상기 컴파일링된 목적 코드를 타겟 시스템으로 전송하는 기능을 수행한다.

도 2는 본 발명에 따른 사용자 중심의 기능 가변식 컴파일링 시스템에서 컴파일링 제어부의 구성을 개략적으로 나타낸 도면이다.

첨부된 도 2를 참조하면, 본 발명에 따른 컴파일링 시스템(100)에서 컴파일링 제어부(110)는 하드웨어 설정모듈(111), 하드웨어 파라미터 모듈(112), 컴파일러 제어모듈(113), 임베디드 모듈(114) 및 통신모듈(115)을 포함하여 구성된다.

상기 하드웨어 설정모듈(111)은 상기 타겟 시스템(200)에 구성된 하드웨어의 종류 및 모델에 대한 정보를 설정하는 기능을 수행한다.

여기서, 하드웨어는 단일의 IoT 디바이스, 센서, 모터 및 액추에이터 등으로 구성될 수 있으며, 각각의 하드웨어에 대한 명칭정보가 설정되어 입력된다.

상기 하드웨어 파라미터 모듈(112)은 하드웨어에 대한 상세정보가 설정되어 입력된다. 여기서, 상기 상세정보에는 하드웨어에 적용된 컨트롤러(또는 마이크로프로세서)의 칩셋의 종류, 컨트롤러의 처리속도, 메모리(ROM)의 종류, 메모리의 크기 및 회로 등이 입력되어 관리된다.

상기 컴파일러 제어모듈(113)은 상기 하드웨어 설정모듈(111) 및 상기 하드웨어 파라미터 모듈(112)에 저장된 정보와 사용자의 요청에 의한 펌웨어에 근거하여 펌웨어가 컴파일링되도록 제어한다.

상기 임베디드 모듈(114)은 상기 컴파일러 제어모듈(113)의 제어에 따라 생성된 목적 코드를 타켓 시스템(200)으로 전송하기 위한 데이터 패킷을 생성한다.

여기서, 데이터 패킷에는 상기 타겟 시스템(200)의 주소, 목적 코드 및 기 저장된 목적 코드의 삭제 여부 등의 정보가 저장되며, 데이터 패킷의 전송과정 중 데이터의 유출을 방지하기 위한 암·복호화 코드가 추가될 수 있다.

상기 통신모듈(115)은 상기 컴파일링 시스템(100)을 통신망에 접속시키는 기능을 수행하는 것으로서, 타겟 시스템(200) 및 사용자 단말기(300)와의 통신이 가능하게 하도록 한다.

상기 컴파일러(120)는 상기 컴파일링 제어부(110)의 제어에 따라 선택된 펌웨어의 소스코드를 분석하여 코드 최적화를 통해 목적 코드를 생성하는 기능을 수행한다. 상기 컴파일러(120)는 소스 코드를 분석하여 중간 코드를 생성하는 전단부와 상기 전단부에서 생성된 중간 코드를 목적 코드로 생성하는 후단부로 구성될 수 있다. 즉, 상기 전단부는 펌웨어의 구성을 분석하고 이를 중간 코드로 변환시키며, 상기 후단부는 상기 변환된 중간 코드를 타겟 시스템(200)의 목적 코드로 변환시킨다.

이때, 상기 전단부는 펌웨어의 소스 코드를 읽어들여 문법적으로 의미를 갖는 최소 단위의 토큰(token)을 생성하는 어휘분석모듈, 상기 어휘분석모듈에서 생성된 토큰에 대한 에러를 체크하여 올바른 문장에 대해 구문주조를 생성하는 구문분석모듈 및 상기 구문분석모듈의 구문트리에 대한 의미 검사를 수행하고 그에 해당하는 중간코드를 생성하는 중간코드생성모듈을 포함하여 구성된다.

또한, 상기 후단부는 상기 중간코드생성모듈에서 생성된 중간코드를 효율적인 코드로 개선시키는 코드최적화모듈 및 상기 코드최적화모듈을 통해 최적화된 코드를 타겟 시스템(200)의 하드웨어에 대한 목적 코드로 변환하는 목적코드생성모듈을 포함하여 구성된다.

상기 펌웨어 DB(130)에는 상기 타겟 시스템(200)에 구성된 하드웨어를 통해 수행될 수 있는 다양한 기능의 펌웨어가 저장 관리된다.

상기 펌웨어는 롬(ROM)에 저장되는 하드웨어를 제어하는 프로그램을 의미하는 것으로서, 프로그램이라는 관점에서는 소프트웨어와 동일하지만 하드웨어와 밀접한 관계를 가지고 있다는 점에서 응용소프트웨어와 구분되며, 소스 코드로 구성되는 원시프로그램으로 볼 수 있다.

상기 펌웨어는 기능에 따라 다양하게 구성될 수 있다. 예를 들어, 전등, 전력, 스마트 홈, 홈 시큐리티 및 헬스케어 등으로 구성될 수 있다.

또한, 상기의 펌웨어는 사용 환경에 따라 그룹으로 구분하여 저장 관리되도록 구성될 수 있다.

도 3은 본 발명에 따른 사용자 중심의 기능 가변식 컴파일링 시스템에서 상기 펌웨어 DB에 저장 관리되는 그룹별 펌웨어에 대한 일 실시 예의 구성도를 나타낸 도면이다.

도 3을 참조하면, 상기 펌웨어는 홈, 사무실, 헬스케어, 공장 및 빌딩 등으로 대별될 수 있다.

이때, 상기 홈에 속하는 펌웨어에는 조명등을 제어하는 전등제어, 가전제품의 동작을 제어하는 가전기기 제어 및 안전을 유지하는 보안 제어 등으로 구성될 수 있다.

또한, 사무실에 속하는 펌웨어에는 전등 제어, 출입관리 제어, 보안제어 및 환기 제어 등으로 구성될 수 있고, 상기 헬스케어에 속하는 펌웨어에는 독거노인 감시 제어, 보안 제어 및 가전기기 제어 등으로 구성될 수 있다. 아울러, 상기 빌딩에 속하는 펌웨어에는 출입관리 제어, 전등 제어, 환기 제어 및 출입차량 제어 등으로 구성될 수 있다.

상기의 펌웨어는 일 실시 예에 따른 일부를 나타낸 것으로서, 사용자의 요구 또는 하드웨어의 구성에 따라 다양한 기능의 펌웨어가 추가될 수 있음은 물론이다.

상기 타겟 시스템(200)은 복수의 하드웨어와 연계되어 저장된 목적 코드의 로직에 따라 상기 하드웨어를 제어하는 기능을 수행한다.

이때, 상기 타겟 시스템(200)에는 마이크로프로세서(210, 또는 마이크로컨트롤러)가 포함되게 구성되며, 상기 마이크로프로세서(210)는 롬(ROM)에 임베디드된 목적 코드에 의해서 상기 연계된 하드웨어를 제어한다. 이때, 상기 롬에는 상기 컴파일링 제어부(110)로부터 전송된 목적 코드가 저장된다.

여기서, 상기 하드웨어는 센서, 모터(또는 펌프) 및 스위치 등의 단순기기부터 IoT 디바이스, 온/오프 제어 시스템 등을 포괄하여 구성될 수 있다.

이때, 상기 센서는 온도센서, 습도센서, 조도센서, 압력센서, 유량센서, 전류센서, 자기센서, 음향센서 및 강우센서 등을 포함하여 구성될 수 있다.

예를 들어, 전등 제어를 수행하기 위한 펌웨어에 연계된 하드웨어는 전등, 조도 센서 및 인체감지 센서 등으로 구성될 수 있으며, 설계조건에 따라서 추가되거나 일부가 생략될 수 있다.

상기 사용자 단말기(300)는 상기 컴파일링 시스템(100)에 접속하여 표시되는 펌웨어를 선택하고 타겟 시스템(200)을 지정하는 요청신호를 입력받기 위한 것으로서, 랩탑 컴퓨터(Laptop Computer), 이동 전화기(Mobile Phone), 스마트 폰(Smart Phone), 태블릿(Tablet) PC, PDA(Personal Digital Assistant), EDA (Enterprise Digital Assistant), 디지털 스틸 카메라(Digital Still Camera), 디지털 비디오 카메라(Digital Video Camera), PMP(Portable Multimedia Player), PND(personal Navigation Device 또는 Portable Navigation Device), 휴대용 게임 콘솔(Handheld Game Console), 모바일 인터넷 장치(Mobile Internet Device(MID)) 및 e-북(e-Book) 중에서 하나로 구현될 수 있다.

이때, 상기 사용자 단말기(300)가 상기 컴파일링 시스템(100)에 접속하게 되면, 상기 사용자 단말기(300)에는 지정된 타겟 시스템(200) 및 펌웨어가 표시된다.

이때, 상기의 지정된 타겟 시스템(300)은 사용자에 의해서 설정된 타겟 시스템이 될 수 있다. 또한, 표시되는 펌웨어로는 선택된 타겟 시스템(200)과 연계되어 제어 가능한 펌웨어가 표시될 수 있다.

설계 조건에 따라서, 상기 사용자 단말기(300)에는 타겟 시스템(200)이 먼저 선택되게 구성하고, 이후 펌웨어가 표시되도록 구성될 수 있다. 또는 펌웨어가 먼저 선택되도록 하고, 이후 타겟 시스템(200)이 선택되게 구성될 수도 있다.

상기에서 타겟 시스템(200)이 먼저 선택되게 구성되는 경우, 상기 사용자 단말기(300)에 표시되는 펌웨어는 상기 타겟 시스템(200)에 구성된 하드웨어를 재조합하여 수행될 있는 펌웨어가 표시되도록 구성된다.

또한, 펌웨어가 먼저 선택된 후 타겟 시스템(200)이 선택되는 경우, 상기 사용자 단말기(300)에는 상기 선택된 펌웨어의 기능 중 일부 기능이 누락될 수 있다는 내용이 표시되도록 구성된다.

도 4는 본 발명에 따른 사용자 중심의 기능 가변식 컴파일링 시스템에서 일 실시 예에 따른 타겟 시스템의 구성도를 나타낸 도면이다.

첨부된 도면을 참조하면, 타겟 시스템에 구성되는 마이크로프로세서(210)는 모델명, 디지털 입출력 핀수, PWM 입출력 핀수, 아날로그 핀수, 플래시 메모리/ SRAM/EEPROM의 용량 및 클럭 속도 등의 스펙이 정해져 있으며, 상기 마이크로프로세서(210)의 핀번호에 대응하여 하드웨어가 연결된다.

이때, 각각의 하드웨어는 예를 들어, 온도센서, 습도세서, CO2센서, 조도센서, 인체감지센서, LED, 스위치 및 무선통신모듈 등으로 구성되고, 각각의 하드웨어에는 상기 마이크로프로세서와 연결된 핀번호가 부여된다. 또한, 도면에 도시되지 않았으나 전원입력(+, -)의 핀번호도 부여된다.

상기에서, 타겟 시스템(200)은 마이크로프로세서(210)의 구성에 따라 펌웨어의 구성이 달리 구성될 수 있으며, 마이크로프로세서(210)의 모델명(종류)에 따라 다양하게 분류될 수 있다.

즉, 하드웨어를 제조하는 과정에서 사용된 마이크로프로세서의 타입에 따라 분류코드를 부여하여 구분되도록 구성될 수 있다. 예를 들어, A 타입의 마이크로프로세서는 A001로 부여하고, B 타입의 마이크로프로세서는 A002로 코드를 부여하여 펌웨어 DB(130)에 저장되도록 구성될 수 있다.

상기 일 실시 예의 구성에 따라 타겟 시스템(200)으로 구성될 수 있는 펌웨어는 기본적으로 전등제어, 홈 시큐어리티 시스템 및 헬스케어 시스템으로 사용자의 요청에 따라 가변될 수 있다.

상기 펌웨어에 대한 하드웨어의 구성을 예를 들어 설명한다.

홈 시큐어리티에 대한 펌웨어의 경우 LED, 인체감지 센서, 스위치 및 온도센서가 활성화되도록 구성될 수 있다. 이때, 홈 시큐어리티에 대한 펌웨어의 동작은 온도센서의 활성화에 따라 주변온도를 검출하고, 인체감지센서에서 검출된 센싱값에 따라 온도에 대한 오차를 산출하도록 제어한다. 또한, 경계상태에서의 이상신호 검출(온도 및 인체감지센서에서 센싱된 값)에 따라 LED에서 발광되는 색을 달리하여 조명하도록 구성되고, 스위치를 동작하여 경고음을 출력하도록 구성될 수 있다.

헬스케어에 대한 펌웨어는 LED, CO2센서, 조도센서, 인체감지센서, 온도센서 및 습도센서를 활성화되도록 구성될 수 있다. 이때, 헬스케어 펌웨어의 구동은 인체감지센서에서 검출된 값에 근거하여 주변 사람의 수를 산출하고, 온도센서, 습도센서 및 CO2센서에서 검출된 값에 근거하여 LED의 색상을 가변시키도록 구성된다. 아울러, 사람의 움직임에 따라 수면으로 판단되는 경우에는 LED의 조명을 디밍제어하도록 구성될 수 있다.

한편, 상기 펌웨어 DB(130)에 저장된 펌웨어는 사용자의 조작에 따라 일부 기능을 누락시키거나 새로운 기능을 추가하여 저장된 펌웨어의 이름을 가변시도록 구성되거나 또는 새로운 이름의 펌웨어를 추가할 수 있도록 구성될 수 있다.

또는, 사용자의 요구에 새로운 기능의 펌웨어가 업데이트되도록 구성될 수 있음은 물론이다.

본 발명에 의하면, 타겟 시스템에 구성된 하드웨어의 범위 내에서 임베디드 시스템을 가변시킬 수 있으므로, 사용자의 필요에 따라 동일한 공간을 다르게 제어할 수 있는 장점이 있고, 초기 구성된 하드웨어를 재사용하되 주변의 다른 하드웨어와의 조합에 의해 수행되는 기능을 가변시킬 수 있으므로, 임베디드 시스템의 구축 비용을 감소시킬 수 있는 장점이 있다.

이상에서 본 발명의 바람직한 실시 예를 설명하였으나, 본 발명의 권리범위는 이에 한정되지 아니하며 본 발명의 실시 예와 실질적으로 균등한 범위에 있는 것까지 본 발명의 권리범위가 미치는 것으로 이해되어야 하며, 본 발명의 정신을 벗어나지 않는 범위 내에서 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능하다.

100: 컴파일링 시스템 110: 컴파일링 제어부
111: 하드웨어 설정모듈 112: 하드웨어 파라미터 모듈
113: 컴파일러 제어모듈 114: 임베디드 모듈
115: 통신모듈 120: 컴파일러
130: 펌웨어 DB 200: 타겟 시스템
210: 마이크로프로세서 220: 하드웨어
300: 사용자 단말기

Claims (5)

  1. 복수의 하드웨어와 연계되어 저장된 목적 코드의 로직에 따라 상기 하드웨어를 제어하는 타겟 시스템;
    상기 타겟 시스템 중 사용자에 의해 선택된 타겟 시스템 및 펌웨어에 따라 하드웨어 구성을 재조합하고, 컴파일링을 통해 선택된 상기 펌웨어를 재조합된 상기 하드웨어에 근거하여 목적 코드로 생성하며, 생성된 상기 목적 코드를 선택된 상기 타겟 시스템으로 임베디드하여, 선택된 상기 타겟 시스템을 선택된 상기 펌웨어 기능의 임베디드 시스템으로 가변시키는 컴파일링 시스템; 및
    상기 컴파일링 시스템에 접속하여 타겟 시스템 및 펌웨어를 선택하는 사용자 단말기를 포함하는 사용자 중심의 기능 가변식 컴파일링 시스템으로서,
    상기 컴파일링 시스템은,
    상기 선택된 펌웨어에 따라 상기 하드웨어의 파라미터를 검출하고, 검출된 하드웨어의 파라미터에 근거하여 상기 선택된 펌웨어가 컴파일링되도록 제어하며, 상기 컴파일링된 목적 코드를 상기 타겟 시스템으로 전송하는 기능을 수행하는 컴파일링 제어부;
    상기 컴파일링 제어부의 제어에 따라, 선택된 펌웨어의 소스코드를 분석하여 코드 최적화를 통해 목적 코드를 생성하는 컴파일러; 및
    상기 타겟 시스템에 구성된 하드웨어를 통해 수행될 수 있는 펌웨어가 저장 관리되는 펌웨어 DB;
    를 포함하여 구성되고,
    상기 컴파일링 제어부는,
    상기 타겟 시스템에 구성된 하드웨어의 종류 및 모델에 대한 정보를 설정하는 하드웨어 설정모듈;
    상기 하드웨어에 대한 상세정보가 설정되어 입력되는 하드웨어 파라미터 모듈;
    상기 하드웨어 설정모듈 및 상기 하드웨어 파라미터 모듈에 저장된 정보와 상기 선택된 펌웨어에 근거하여 상기 펌웨어 컴파일링되도록 제어하는 컴파일러 제어모듈;
    상기 컴파일러 제어모듈의 제어에 따라 생성된 목적 코드를 상기 선택된 타켓 시스템으로 전송하기 위한 데이터 패킷을 생성하는 임베디드 모듈; 및
    상기 컴파일링 시스템을 통신망에 접속시키는 통신모듈;
    로 구성되며,
    상기 사용자 단말기는 상기 컴파일링 시스템에 접속시 표시되는 펌웨어를 선택하고 타겟 시스템을 지정하는 요청신호를 입력받으며,
    상기 사용자 단말기가 상기 컴파일링 시스템에 접속하게 되면, 상기 사용자 단말기에는 지정된 타겟 시스템 및 상기 타겟 시스템과 연계되어 제어 가능한 펌웨어가 표시되는 것을 특징으로 하는 사용자 중심의 기능 가변식 컴파일링 시스템.
  2. 삭제
  3. 삭제
  4. 청구항 1에 있어서,
    상기 펌웨어 DB에 저장 관리되는 펌웨어는,
    사용 환경에 따라 그룹으로 구분하여 저장 관리되는 것을 특징으로 하는 사용자 중심의 기능 가변식 컴파일링 시스템.
  5. 청구항 1에 있어서,
    상기 타겟 시스템은,
    홈 네트워크 시스템, IoT 제어 시스템, 공장 자동화 시스템 또는 사무 자동화 시스템으로 구성되는 것을 특징으로 하는 사용자 중심의 기능 가변식 컴파일링 시스템.
KR1020160068275A 2016-06-01 2016-06-01 사용자 중심의 기능 가변식 컴파일링 시스템 KR101710305B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160068275A KR101710305B1 (ko) 2016-06-01 2016-06-01 사용자 중심의 기능 가변식 컴파일링 시스템

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160068275A KR101710305B1 (ko) 2016-06-01 2016-06-01 사용자 중심의 기능 가변식 컴파일링 시스템
PCT/KR2017/005301 WO2017209425A1 (ko) 2016-06-01 2017-05-23 사용자 중심의 기능 가변식 컴파일링 시스템

Publications (1)

Publication Number Publication Date
KR101710305B1 true KR101710305B1 (ko) 2017-02-27

Family

ID=58315873

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160068275A KR101710305B1 (ko) 2016-06-01 2016-06-01 사용자 중심의 기능 가변식 컴파일링 시스템

Country Status (2)

Country Link
KR (1) KR101710305B1 (ko)
WO (1) WO2017209425A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022810A (ja) * 1999-07-08 2001-01-26 Fujitsu Ltd Product information management device and recording medium
KR20020032256A (ko) 2000-10-26 2002-05-03 윤지녕 통합 임베디드 시스템 및 이의 구현 방법
KR100683853B1 (ko) 2005-02-04 2007-02-16 삼성전기주식회사 프리 컴파일링 장치
KR20100062321A (ko) * 2008-12-02 2010-06-10 홍익대학교 산학협력단 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060065388A (ko) * 2004-12-10 2006-06-14 엘지전자 주식회사 소프트웨어 개발이 용이한 임베디드 시스템 및 그 방법
KR100808257B1 (ko) * 2005-12-05 2008-02-29 한국전자통신연구원 임베디드 시스템 프로토타입 개발 지원 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022810A (ja) * 1999-07-08 2001-01-26 Fujitsu Ltd Product information management device and recording medium
KR20020032256A (ko) 2000-10-26 2002-05-03 윤지녕 통합 임베디드 시스템 및 이의 구현 방법
KR100683853B1 (ko) 2005-02-04 2007-02-16 삼성전기주식회사 프리 컴파일링 장치
KR20100062321A (ko) * 2008-12-02 2010-06-10 홍익대학교 산학협력단 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
최재규, 국내외 ICT DIY 현황 및 의미, 한국통신학회지(정보와통신) 제31권 제7호, 2014.06. *

Also Published As

Publication number Publication date
WO2017209425A1 (ko) 2017-12-07

Similar Documents

Publication Publication Date Title
US9792097B2 (en) Method and apparatus for compiling regular expressions
US20190042218A1 (en) Sequence optimizations in a high-performance computing environment
TWI581188B (zh) The way to load the driver and the embedded device
US9471290B2 (en) Utilizing special purpose elements to implement a FSM
Villar et al. . net gadgeteer: A platform for custom devices
US10402208B2 (en) Adaptive portable libraries
US8060677B2 (en) Real-time industrial ethernet ethercat communication control
KR101385420B1 (ko) 메타데이터 추출을 통한 동적 언어의 실행
US20170147337A1 (en) Hierarchical directives-based management of runtime behaviors
RU2643484C2 (ru) Генерация собственного кода из кода на промежуточном языке для приложения
Cabral et al. Formal specification generation from requirement documents
US20160357519A1 (en) Natural Language Engine for Coding and Debugging
CN102696012B (zh) 从代码使用中创建所推断的符号
CN101763280B (zh) 用于生成控制系统可执行代码的系统、方法和计算机实施系统
US9235381B2 (en) Method and device for the programming and configuration of a programmable logic controller
KR101354803B1 (ko) 유형 추론 및 유형 지향 후기 바인딩
JP4896243B2 (ja) マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス
US9806712B2 (en) Systems and methods for gesture-based lighting control
US9619112B2 (en) Method and apparatus for automatic device program generation
JP2009503677A (ja) プログラムをデータオブジェクトとしてサポートするコンパイラ
KR100513093B1 (ko) 씨.엠.엘.투를 기반으로한 리눅스 커널, 응용 소프트웨어패키지의 통합 설정과 파일목록 생성방법
Krahn et al. Roles in software development using domain specific modeling languages
JP4057938B2 (ja) コンパイラ、コンパイル方法、及びプログラム開発ツール
US20180275968A1 (en) Generation of a device application
US8032873B2 (en) Computer program code size partitioning system for multiple memory multi-processing systems

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant