KR101993858B1 - 프로그램 개발 시스템 및 이를 이용한 개발 방법 - Google Patents

프로그램 개발 시스템 및 이를 이용한 개발 방법 Download PDF

Info

Publication number
KR101993858B1
KR101993858B1 KR1020180118650A KR20180118650A KR101993858B1 KR 101993858 B1 KR101993858 B1 KR 101993858B1 KR 1020180118650 A KR1020180118650 A KR 1020180118650A KR 20180118650 A KR20180118650 A KR 20180118650A KR 101993858 B1 KR101993858 B1 KR 101993858B1
Authority
KR
South Korea
Prior art keywords
module
code
pin
main board
unit
Prior art date
Application number
KR1020180118650A
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 KR1020180118650A priority Critical patent/KR101993858B1/ko
Application granted granted Critical
Publication of KR101993858B1 publication Critical patent/KR101993858B1/ko
Priority to PCT/KR2019/010887 priority patent/WO2020071639A1/ko
Priority to US16/582,116 priority patent/US20200110586A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25123Change controller pin configuration

Landscapes

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

Abstract

프로그램 개발 시스템 및 이를 이용한 개발 방법이 개시된다. 본 발명에 따른 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템은, 상기 모듈 부품을 사용자 인터페이스를 통해 선택하는 모듈 선택부, 상기 모듈 선택부에서 선택된 상기 모듈 부품에 대한 하드웨어 환경설정을 상기 사용자 인터페이스를 통하여 입력하는 모듈 세팅부, 상기 모듈 부품과 관련된 모듈 코드를 저장하는 라이브러리부 및 상기 하드웨어 장치를 구동하기 위한 구동 코드를 생성하는 코드 생성부를 포함한다.

Description

프로그램 개발 시스템 및 이를 이용한 개발 방법{PROGRAM DEVELOPMENT SYSTEM AND DEVELOPMENT METHOD USING IT}
본 발명은 프로그램 개발 시스템 및 이를 이용한 개발 방법에 관한 것으로, 보다 구체적으로는 제어가 필요한 시스템에 대해, 제어를 위한 특정 기능을 수행하는 프로그램을 개발하기 위한 프로그램 개발 시스템 및 이를 이용한 개발 방법에 관한 것이다.
하드웨어 장치를 개발하는 개발 프로젝트를 진행함에 있어서, 개발자는 개발 의도에 따라 메인보드와 호환이 가능하고, 적절한 성능을 가지면서 생산 단가가 저렴한 모듈 부품을 찾기 위해 노력한다. 개발자는 이를 위해 수많은 모듈 부품을 검색하고, 데이터 시트를 검토하며 적절한 모듈 부품을 찾으려 많은 시간을 소모한다. 또한, 하드웨어 장치 구동을 위한 프로그램을 개발을 위해, 각 모듈 부품에 대한 데이터 시트를 연구하고, 시행착오를 겪는다.
이러한 시간적 비용을 소모하더라도, 개발 프로젝트 도중에 메인보드가 교체되면 교체된 마이크로컨트롤러에 호환이 가능하도록 프로그램 코드를 모두 바꿔야 한다. 프로젝트를 처음부터 다시 시작하는 것과 같다. 이때까지 소모한 자원이 그냥 버려지는 것이다. 이러한 하드웨어 장치 개발 단계에서 비효율적으로 낭비되는 자원을 예방할 필요가 있다.
KR 10-1674515 B1 (2016. 11. 03.)
본 발명은 상술한 문제점을 해결하기 위한 것으로, 하드웨어 장치 개발 단계에서 모듈 부품에 대한 모듈 코드를 데이터베이스화 하고, 사용자 인터페이스를 통한 간단한 핀 할당만으로 모듈 부품과 메인보드 간의 설정작업을 자동화하는 것을 목적으로 한다.
또한, 메인보드에 따른 호환이 가능한 모듈 부품 및 모듈 부품의 핀만을 선택 가능하게 하여, 개발 단계에서의 시행착오를 줄일 수 있는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 마이크로컨트롤러가 장착된 메인보드와, 상기 메인보드와 전기적으로 연결되는 하나 이상의 모듈 부품을 포함하는 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템은, 상기 모듈 부품을 사용자 인터페이스를 통해 선택하는 모듈 선택부; 상기 모듈 선택부에서 선택된 상기 모듈 부품에 대한 하드웨어 환경설정을 상기 사용자 인터페이스를 통하여 입력하는 모듈 세팅부; 상기 모듈 부품과 관련된 모듈 코드를 저장하는 라이브러리부; 및 상기 하드웨어 장치를 구동하기 위한 구동 코드를 생성하는 코드 생성부;를 포함할 수 있다.
여기서, 상기 코드 생성부는, 상기 라이브러리부에 저장된 상기 모듈 코드를 이용하여 상기 구동 코드를 자동으로 생성하고, 상기 모듈 세팅부에서 입력된 상기 하드웨어 환경설정을 상기 구동 코드에 자동으로 반영할 수 있다.
또한, 상기 하드웨어 환경설정은, 상기 선택된 모듈 부품의 각 핀을 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 할당하는 것을 포함할 수 있다.
또한, 프로그램 개발 시스템은, 상기 선택된 모듈 부품의 핀에 할당된 상기 메인보드 또는 상기 마이크로컨트롤러의 핀이 변경되면, 변경된 핀 할당에 따라 상기 모듈 코드를 변경하는 것인 프로그램 개발 시스템.
또한, 상기 모듈 세팅부는, 상기 선택된 모듈 부품의 핀에 할당이 가능한 상기 메인보드 또는 상기 마이크로컨트롤러의 핀만 선택되도록 할 수 있다.
또한, 상기 하드웨어 환경설정은, 상기 모듈 부품의 입출력부를 상기 마이크로컨트롤러의 입출력부에 할당하는 것을 포함할 수 있다.
또한, 상기 모듈 코드는 상기 모듈 세팅부에서 상기 하드웨어 환경설정의 완료 시 자동으로 생성될 수 있다.
또한, 상기 모듈 선택부는, 상기 메인보드의 종류와 호환 가능한 모듈 부품만 선택되도록 할 수 있다.
또한, 상기 메인보드 또는 상기 마이크로컨트롤러에 따라, 작성되어 있는 상기 구동 코드를 상기 메인보드 또는 상기 마이크로컨트롤러에 호환되는 코드로 변경하는 코드 변환부를 더 포함할 수 있다.
또한, 상기 라이브러리부는 네트워크로 연결된 외부 서버에 상기 모듈 코드를 저장할 수 있다.
또한, 프로그램 개발 시스템은, 상기 메인보드에 연결된 상기 모듈 부품과 상기 메인보드의 연결 상태를 그래픽 형태로 나타내는 상태 디스플레이부를 포함할 수 있다.
또한, 상기 하드웨어 환경설정은, 상기 선택된 모듈 부품의 각 핀을 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 할당하는 것을 포함하고, 상기 모듈 세팅부는, 상기 모듈 부품의 각 핀이 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 중복으로 할당이 되는 경우에 알람을 제공할 수 있다.
또한, 상기 알람은, 상기 선택된 모듈 부품의 핀에 대해 상기 메인보드 또는 상기 마이크로컨트롤러의 핀을 선택할 때 발생할 수 있다.
또한, 상기 알람은, 상기 상태 디스플레이부에서 중복으로 할당된 핀의 위치에 나타나도록 할 수 있다.
또한, 프로그램 개발 시스템은, 상기 하드웨어 장치의 연결상태를 진단 가능하도록 미리 작성된 진단 프로그램을 상기 하드웨어에 업로드하는 하드웨어 진단부;를 포함할 수 있다.
본 발명의 다른 일 실시예에 따른 마이크로컨트롤러가 장착된 메인보드와, 상기 메인보드와 전기적으로 연결되는 하나 이상의 모듈 부품을 포함하는 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템은, 상기 모듈 부품을 선택하는 모듈 선택부; 사용자 인터페이스를 통하여 상기 모듈 선택부에서 선택된 상기 모듈 부품의 각 핀을 상기 마이크로컨트롤러 또는 상기 메인보드의 각 핀에 설정하는 모듈 세팅부; 및 상기 모듈 선택부에서 선택된 상기 모듈 부품을 포함하는 상기 하드웨어 장치를 구동하기 위한 구동 코드를 자동으로 생성하되, 상기 모듈 세팅부에서 설정된 상기 모듈 부품의 각 핀의 정보를 이용하여 상기 구동 코드를 생성하는 코드 생성부를 포함할 수 있다.
또한, 상기 모듈 부품의 각 핀과 상기 마이크로컨트롤러 또는 상기 메인보드의 각 핀은, 입출력과 관련된 핀인 것인 프로그램 개발 시스템.
한편, 본 발명의 일 실시예를 따른 마이크로컨트롤러가 장착된 메인보드와, 상기 메인보드와 전기적으로 연결되는 하나 이상의 모듈 부품을 포함하는 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템을 이용한 프로그램 개발 방법은, 상기 모듈 부품을 선택하는 모듈 선택 단계; 상기 모듈 선택 단계에서 선택된 상기 모듈 부품에 대한 하드웨어 환경설정을 사용자 인터페이스를 통하여 입력하는 모듈 세팅 단계; 및 상기 하드웨어 장치를 구동하기 위한 구동 코드를 생성하는 코드 생성 단계;를 포함하고, 상기 코드 생성 단계는, 상기 모듈 부품과 관련한 미리 작성된 모듈 코드를 이용하여 상기 구동 코드를 자동으로 생성하고, 상기 모듈 세팅 단계에서 입력된 상기 하드웨어 환경설정을 상기 구동 코드에 자동으로 반영할 수 있다.
또한, 상기 하드웨어 환경설정은, 상기 선택된 모듈 부품의 각 핀을 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 할당하는 것을 포함할 수 있다.
또한, 상기 모듈 세팅 단계는, 상기 모듈 부품의 각 핀이 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 중복으로 할당이 되는 경우에 알람을 제공할 수 있다.
또한, 상기 하드웨어 장치의 연결상태를 진단 가능하도록 미리 작성된 진단 프로그램을 상기 하드웨어 장치에 업로드하는 하드웨어 진단 단계;를 포함할 수 있다.
이 외에도 본 발명의 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체가 제공될 수 있다.
본 발명에 따른 하드웨어 개발 시스템 및 이를 이용한 개발 방법은 하드웨어 장치 개발 단계에서 모듈 부품에 대한 모듈 코드를 데이터베이스화 하고, 사용자 인터페이스를 통한 간단한 핀 할당만으로 모듈 부품과 메인보드 간의 설정작업을 자동화할 수 있다.
또한, 메인보드에 따른 호환이 가능한 모듈 부품 및 모듈 부픔의 핀만을 선택가능하게 하여, 개발 단계에서의 시행착오를 줄여 시간 자원의 낭비를 줄일 수 있다.
도 1은 본 발명의 일 실시예에 따른 프로그램 개발 시스템의 개략적인 구성을 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 하드웨어 장치의 개략적인 구성을 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 모듈 선택부가 사용자 인터페이스를 통해 모듈 부품을 선택하는 것을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 모듈 세팅부가 사용자 인터페이스를 통해 하드웨어 환경설정을 하는 것을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 구동 코드를 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 코드 생성부(140)가 생성한 구동 코드가 삽입된 구동 코드를 나타낸 도면이다.
도 7은 하드웨어 환경설정 변경에 따른 구동 코드의 변화를 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 도 6의 생성된 구동 코드로 연결된 모듈 코드를 나타낸 도면이다.
도 9는 본 발명의 일 실시예에 따른 코드 변환부가 더 포함된 프로그램 개발 시스템의 블록도이다.
도 10은 본 발명의 일 실시예에 따른 네트워크로 연결된 프로그램 개발 시스템의 블록도이다.
도 11은 본 발명의 일 실시예에 따른 상태 디스플레이부가 포함된 프로그램 개발 시스템의 블록도이다.
도 12는 본 발명의 일 실시예에 따른 상태 디스플레이부가 나타내는 그래픽을 도시한 도면이다.
도 13은 본 발명의 일 실시예에 따른 하드웨어 환경설정 과정에서 중복 할당된 핀의 알람을 나타낸 도면이다.
도 14은 본 발명의 일 실시예에 따른 하드웨어 진단부가 포함된 프로그램 개발 시스템의 블록도이다.
도 15는 본 발명의 일 실시예에 따른 프로그램 개발 방법의 흐름도를 나타낸 도면이다.
도 16은 본 발명의 일 실시예에 따른 하드웨어 진단 단계가 포함된 프로그램 개발 방법의 흐름도를 나타낸 도면이다.
도 17은 본 발명의 일 실시예에 따른 핀의 중복 할당 검출 단계가 포함된 프로그램 개발 방법의 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예가 상세하게 설명된다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고, 도면에서 본 발명의 실시예를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략되었다.
본 명세서에서 사용된 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도로 사용된 것이 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.
본 명세서에서, "포함하다", "가지다" 또는 "구비하다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것으로서, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해될 수 있다.
또한, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
또한, 이하의 실시예들은 당 업계에서 평균적인 지식을 가진 자에게 보다 명확하게 설명하기 위해서 제공되는 것으로서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 첨부된 도면을 참조하여, 본 발명에 따른 바람직한 실시예에 대하여 설명한다.
도 1은 본 발명의 일 실시예에 따른 프로그램 개발 시스템의 개략적인 구성을 나타낸 블록도이고, 도 2는 본 발명의 일 실시예에 따른 하드웨어 장치의 개략적인 구성을 나타낸 블록도이다.
도 1 및 도 2를 참조하면, 본 발명의 일 실시예에 따른 프로그램 개발 시스템(100)은 마이크로컨트롤러(11)가 장착된 메인보드(10)와, 메인보드(10)와 전기적으로 연결되는 하나 이상의 모듈 부품(M1, M2, M3, Mn)을 포함하는 하드웨어 장치(1)를 구동하기 위한 시스템이다.
프로그램 개발 시스템(100)은 모듈 부품(M1, M2, M3, Mn)을 선택하는 모듈 선택부(110), 모듈 선택부(110)에서 선택된 모듈 부품(M1, M2, M3, Mn)에 대한 하드웨어 환경설정을 사용자 인터페이스를 통하여 입력하는 모듈 세팅부(120), 모듈 부품(M1, M2, M3, Mn)과 관련된 모듈 코드를 저장하는 라이브러리부(130) 및 하드웨어 장치(1)를 구동하기 위한 구동 코드를 생성하는 코드 생성부(140)를 포함할 수 있다.
여기서, 코드 생성부(140)는 라이브러리부(130)에 저장된 상기 모듈 코드를 이용하여 상기 구동 코드를 자동으로 생성하고, 모듈 세팅부(120)에서 입력된 상기 하드웨어 환경설정을 상기 구동 코드에 자동으로 반영할 수 있다.
본 발명의 일 실시예에 따른 하드웨어 장치(1)는 마이크로컨트롤러(11)가 장착된 메인보드(10)에 하나 또는 하나 이상의 모듈 부품(M1, M2, M3, Mn)을 전기적으로 연결되어, 특정 기능을 수행할 수 있는 장치일 수 있다. 하드웨어 장치(1)는 별도의 운영체제가 없이 구동 프로그램 또는 제어 프로그램이 탑재되어 설계된 특정기능 또는 특수한 임무만 수행할 수 있다. 하드웨어 장치(1)가 수행하는 기능은 메인보드(10)에 전기적으로 연결되는 모듈 부품(M1, M2, M3, Mn)의 기능에 따라 다양할 수 있다. 예를 들면, 하드웨어 장치(1)는 장착 시각에 따른 알람이 가능한 전자 시계, 전자 저울, 초음파 센서를 이용한 장치, 조도 센서를 이용한 장치, 모터 구동 장치, 근접 센서를 이용한 장치, 전자계산기와 같은 단순 장치로부터 스마트폰, 스마트TV, 의료장비와 같는 고수준 장치가 포함될 수 있다.
단순 장치는 메인보드(10)에 저성능 마이크로컨트롤러(11)와 저용량의 메모리가 탑재될 수 있다. 고수준 장치는 다양한 기능을 수행하기 위해 비교적 높은 성능의 마이크로컨트롤러(11)와 고용량의 메모리를 탑재되고, 운영체제가 탑재될 수 있다.
모듈 부품(M1, M2, M3, Mn)은 메인보드(10)에 하나 이상 연결될 수 있다. 여기서, 메인보드(10) 모듈 부품이 연결된다는 것은 전기적으로 신호 또는 전력을 서로 송수신할 수 있은 것을 말하며, 물리적으로 연결되는 것과 물리적으로 연결되지 않은 것도 포함할 수 있다. 예를 들면, 메인보드(10)와 어떤 모듈 부품이 무선으로 연결되어 신호를 송수신하면 메인보드(10)와 상기 어떤 모듈 부품은 연결된 것이라 할 수 있다.
모듈 부품(M1, M2, M3, Mn)은 하드웨어 장치(1)에 부가적으로 연결되어, 특정한 기능을 수행하는 부품일 수 있다. 하드웨어 장치(1)는 적어도 하나의 모듈 부품(M1, M2, M3, Mn)을 포함할 수 있다. 일반적으로 모듈 부품(M1, M2, M3, Mn)은 하나의 기능을 수행하도록 제작되나 하나 이상의 기능이 수행되도록 제작될 수도 있다. 모듈 부품(M1, M2, M3, Mn)은 메인보드(10)에 연결되어 메인보드(10)에 장착된 마이크로컨트롤러(11)의 제어 신호를 통해 동작할 수 있다. 모듈 부품(M1, M2, M3, Mn)은 마이크로컨트롤러(11)의 제어 신호에 따라 동작한 결과를 다시 메인보드(10) 또는 마이크로컨트롤러(11)로 보낼 수 있다.
이러한 모듈 부품(M1, M2, M3, Mn)은 통신 모듈, 센서 모듈, 오디오 출력 모듈, 데이터 변환 모듈, 보조 기억 모듈, 다양한 기능의 센서 모듈, 정류 소자, 모터, 디스플레이 모듈, 안테나 등이 포함될 수 있다.
하드웨어 장치(1)를 구동하기 위한 프로그램 또는 소프트웨어는 구동 코드 및 모듈 코드로 구분할 수 있다. 여기서 구동 코드는 하드웨어 장치(1)을 직접적으로 제어할 수 있는 주 코드일 수 있으며, 모듈 코드는 구동 코드에 주 코드에 종속적으로 포함된 보조 코드일 수 있다.
예를 들어, 온도 센서와 같이 주변 온도를 센싱하는 모듈 부품의 고유 기능은 해당 모듈 부품을 제조하는 제조사가 하드웨어로 설계하거나 소프트웨어로 구현한다. 그리고 제조사는 해당 모듈 부품에 대한 입출력 신호 정보를 데이터 시트로 구매자에게 제공한다. 마이크로컨트롤러(11)가 장착된 메인보드(10)의 기능도 상기 모듈 부품처럼 구현될 수 있다. 그리고 상기 모듈 부품처럼 메인보드(10)에 장착된 마이크로컨트롤러(11)와 그 외 부품과 관련된 입출력 신호 정보 및 마이크로컨트롤러(11)를 제어할 수 있는 명령어 정보를 데이터 시트, 문헌 또는 파일로 구매자에게 제공한다.
개발자는 이러한 데이터 시트를 보고 메인보드(10)와 연결된 각 모듈 부품을 사용하기 위해 코드를 작성할 수 있다. 개발자는 코드 작성 시, 개발자가 설계하고 의도한 알고리즘에 따라 하드웨어 장치(1)를 제어하고 운용하는 코드를 작성할 수 있다. 이런 하드웨어 장치(1)를 제어하고 운용하는 코드를 구동 코드라 할 수 있다.
그리고 개발자가 구동 코드를 작성할 때, 어느 하나의 모듈 부품에 대해 반복적으로 사용하는 함수 또는 변수와 같은 코드가 포함될 수 있다. 이런 어느 하나의 모듈 부품에 대해 반복적으로 사용하는 함수 또는 변수와 같은 코드를 다른 코드 파일로 따로 생성하여 구동 코드에 필요할 때, 구동 코드와 연결하여 종속적으로 사용할 수 있다. 이런 어느 하나의 모듈 부품에 대해 미리 작성한 코드를 모듈 코드라 할 수 있다.
또한, 모듈 코드는 해당 모듈 부품에 대한 정보도 포함할 수 있다. 모듈 부품의 정보는 모듈 부품의 카테고리, 모델, 제조사, 기능, 핀의 개수, 핀의 형태(입력 핀 또는 출력 핀) 등을 포함할 수 있다. 이러한 모듈 코드는 각각의 모듈 부품에 대응되어 라이브러리부(130)에 저장될 수 있다.
도 3은 본 발명의 일 실시예에 따른 모듈 선택부가 사용자 인터페이스를 통해 모듈 부품을 선택하는 것을 나타낸 도면이다.
도 3을 참조하면, 모듈 선택부(110)는 메인보드(10)에 연결할 모듈 부품(M1, M2)을 사용자 인터페이스(I100)를 통해 선택할 수 있다. 사용자 인터페이스(I100)에서 나타나는 모듈 부품(M1, M2, M3, Mn)은 등록된 모듈 부품이다. 프로그램 개발 시스템(100)에 등록된 모듈 부품(M1, M2, M3, Mn)은 모두 사용자 인터페이스(I100)에 나타날 수 있고 선택할 수 있다. 여기서 등록된 모듈 부품은, 해당 모듈 부품의 모듈 코드가 라이브러리부(130)에 저장되어 구동 코드에서 해당 모듈 부품의 모듈 코드를 이용할 수 있는 모듈 부품을 말한다.
다른 실시예로, 모듈 선택부(110)가 사용자 인터페이스(I100)를 통해 모듈 부품(M1, M2, M3, Mn)을 선택 받을 때, 사용자 인터페이스(I100)에 나타나는 모듈 부품(M1, M2, M3, Mn)은 메인보드(10)와 호환 가능한 모듈 부품만 나타날 수 있다. 예를 들면, 프로그램 개발 시스템(100)에 등록된 모듈 부품이 M1 부터 M10이라면, 메인보드(10)와 호환이 가능한 모듈 부품인 M1, M3, M10만 사용자 인터페이스(I100)에 나타날 수 있다. 여기서 메인보드(10)를 다른 메인보드를 교체한다면, 교체된 메인보드에 호환되는 M2, M4, M6만 나타날 수 있다.
또는 프로그램 개발 시스템(100)에 등록된 모든 모듈 부품(M1, M2, M3, Mn)이 나타나되, 메인보드(10)와 호환이 가능한 모듈 부품(M1, M2, M3, Mn)만 선택되도록 할 수 있다. 예를 들면, 위와 같이, 프로그램 개발 시스템(1)에 등록된 모듈 부품이 M1 부터 M10이라면, 사용자 인터페이스(I100)에 M1 부터 M10까지 모두 나타나되, 메인보드(10)와 호환이 가능한 M1, M3, M10만 선택할 수 있다. 여기서 메인보드(10)를 다른 메인보드로 교체한다면, 선택할 수 있는 모듈 부품이 변경될 수 있다. 가령 교체된 메인보드에 호환되는 M2, M4, M6만 선택할 수 있도록 변경될 수 있다.
종래는 개발자가 의도한 기능을 구형하기 위해 필요한 모듈 부품의 종류를 조사하고 사용할 메인보드(10)와 연결할 모듈 부품(M1, M2, M3, Mn)이 서로 호환이 되는지 각각의 데이터 시트를 확인하고, 검토해야할 시간적 비용이 소모되었다. 그러나 본 발명에 따른 프로그램 개발 시스템(100)은 등록된 모듈 부품(M1, M2, M3, Mn)에 대해 메인보드(10)와의 호환성 여부를 손쉽게 확인할 수 있거나, 호환이 가능한 모듈 부품만을 선택할 수 있으므로 언급된 시간적 비용을 줄일 수 있다.
도 4는 본 발명의 일 실시예에 따른 모듈 세팅부가 사용자 인터페이스를 통해 하드웨어 환경설정을 하는 것을 나타낸 도면이다.
도 4를 참조하면, 선택한 모듈 부품에 대한 하드웨어 환경설정은 사용자 인터페이스(I100)를 통해 할 수 있다. 하드웨어 환경설정은 선택한 모듈 부품(M1, M2, M3, Mn)의 각 핀을 메인보드(10) 또는 마이크로컨트롤러(11)의 각 핀에 할당하는 것일 수 있다. 여기서 핀은 신호, 데이터 또는 전력을 송수신할 수 있는 물리적인 접점을 의미할 수 있다.
메인보드(10) 및 모듈 부품(M1, M2, M3, Mn)은 각각의 하드웨어 설계에 따라 신호를 송수신하는 핀이 존재한다. 개발자는 자신의 의도에 따라 메인보드(10) 핀에 모듈 부품(M1, M2, M3, Mn) 핀을 연결하여 메인보드(10)와 모듈 부품(M1, M2, M3, Mn)간의 신호 경로를 생성한다. 종래는 이러한 핀 할당은 개발자가 직접 코드를 작성해 할당하는 것이 일반적이다. 이 경우, 개발자는 메인보드(10) 데이터 시트와 메인보드(10)에 연결할 모듈 부품 데이터 시트를 하나하나 확인하며 코드를 작성한다. 메인보드(10)에 연결할 모듈 부품 핀이 몇 개인지, 해당 핀이 아날로그 입력 핀 또는 출력 핀인지, 디지털 입력 핀 또는 출력 핀인지 확인한다. 이렇듯 하나의 모듈 부품에 소모하는 시간적 비용은 메인보드(10)에 연결할 모듈 부품의 수가 많아질수록 늘어날 수밖에 없었다.
그러나 본 발명에서는 사용자 인터페이스를 이용하여 모듈 부품의 각 핀에 대응하는 메인보드(10) 핀을 할당할 수 있다. 사용자 인터페이스(I100)를 통한 하드웨어 환경설정은 도 1의 코드 생성부(140)에 의해 생성되는 구동 코드에 반영될 수 있다.
그리고 하드웨어 환경설정은 모듈 부품(M1, M2, M3, Mn)의 입출력부를 마이크로컨트롤러(11)의 입출력부에 할당하는 것을 포함할 수 있다. 보통은 메인보드(10)에 마이크로컨트롤러(11)가 장착되고 모듈 부품(M1, M2, M3, Mn) 핀은 메인보드(10) 핀과 연결하는 것이 일반적이다. 드물게, 모듈 부품(M1, M2, M3, Mn) 핀과 마이크로컨트롤러(11) 핀을 직접 연결하는 경우도 있다. 본 발명의 프로그램 개발 시스템은 모듈 부품(M1, M2, M3, Mn) 입출력부에 마이크로컨트롤러(11) 입출력부를 할당하는 것도 포함되므로 다양한 개발 케이스에서의 효율을 높일 수 있다.
사용자 인터페이스를 통한 하드웨어 환경설정에 대해 보다 구체적으로 설명하면, 모듈 선택부(110)로 모듈 부품(M1, M2, M3, Mn)을 선택하면, 선택한 모듈 부품(M1)에 따른 구체적인 하드웨어 환경설정이 가능한 사용자 인터페이스가 나타날 수 있다. 사용자 인터페이스(I100)는 핀 할당을 할 수 있는 영역(I110)과 선택한 모듈 부품(M1)의 상세한 정보를 보여주는 영역(I120)을 포함할 수 있다. 핀 할당을 할 수 있는 영역(I110)에는 모듈 부품의 각 핀에 대응하는 메인보드 핀을 지정할 수 있는 인터페이스(I111) 를 포함할 수 있다. 선택한 모듈 부품(M1)의 상세한 정보를 보여주는 영역(I120)은 선택한 모듈 부품(M1)에 대해 카테고리, 모델, 제조사, 기능 또는 구매처 등이 포함된 정보를 포함할 수 있다. 한편, 상세한 정보를 보여주는 영역(I120)을 마우스 등을 통한 클릭 시에, 해당 모듈 부품(M1)에 대한 보다 상세한 데이터 시트가 링크로 연결되어 제공될 수도 있다.
또한, 모듈 세팅부(120)는 선택한 모듈 부품(M1)의 핀에 할당이 가능한 메인보드(10) 또는 마이크로컨트롤러(11)의 핀만 선택되도록 할 수 있다. 예를 들어, 도 4에 도시된 것처럼 'Row1'핀을 할당할 때, 'Row1'은 디지털 출력 핀이므로 메인보드(10) 또는 마이크로컨트롤러(11)의 핀은 디지털 입력 핀만 선택되도록 할 수 있다. VCC, GND 또는 아날로그 핀은 선택되지 않는다. 종래와 같이 데이터 시트를 비교하며 텍스트 형태로 작성하는 방식에서는 디지털 출력 핀 'Row1'을 아날로그 입력 핀에 할당하는 실수할 수 있지만, 본 발명은 그러한 가능성은 현저히 줄일 수 있다.
일반적으로 하나의 모듈 부품(M1, M2, M3, Mn)의 총 핀의 개수보다 메인보드(10)의 총 핀의 개수가 많으므로, 선택한 모듈 부품(M1, M2, M3, Mn)의 한 핀에 대해 메인보드(10)의 총 핀 중 하나를 할당하는 방식으로 진행될 수 있다.
도 5는 본 발명의 일 실시예에 따른 구동 코드를 나타낸 도면이다. 도 5에 표기된 구동 코드(200)는 프로그램 개발 시스템(100)에서 메인보드(10)의 종류만 선택하고 모듈 부품(M1, M2, M3, Mn)을 연결하지 않은 초기 구동 코드(210)이다.
도 6은 본 발명의 일 실시예에 따른 코드 생성부(140)가 생성한 구동 코드가 삽입된 구동 코드를 나타낸 도면이다. 도 6의 구동 코드(200)는 초기 구동 코드(210)와 코드 생성부(140)가 생성한 구동 코드(220)가 삽입된 구동 코드(200)이다. 코드 생성부(140)는 모듈 세팅부(120)에서 입력한 하드웨어 환경설정이 반영된 구동 코드(220)를 생성할 수 있다. 도 4 및 도 6을 참조하면, 키 패드 모듈(Keypad_4x30)의 Row1, Row2, Row3, Row4, Col1, Col2, Col3의 핀에 대하여 각각 메인보드(10)의 5, 4, 3, 2, 8, 7, 6번 핀을 할당한 하드웨어 환경설정이 생성된 구동 코드(220)에 반영이 된 것을 확인할 수 있다. 그리고 생성된 구동 코드(220)는 선택한 모듈 부품(도 4 및 도 6에서 Keypad_4x30)과 관련된 미리 정의된 함수를 사용할 수 있도록 하는 코드도 포함할 수 있다. 도 6의 생성된 구동 코드(220) 중 '#include <Keypad_4x3.h>'는 키 패드 모듈 부품과 관련된 모듈 코드에 정의된 함수를 구동 코드(200)에서 이용할 수 있도록 구동 코드(200)와 모듈 코드를 연결하는 코드이다. 코드 생성부(140)는 구동 코드(200)에 모듈 코드와 연결하는 코드를 생성하여 구동 코드(200)와 모듈 코드를 연결시키고, 모듈 코드에서 정의된 함수를 구동 코드(200)내에서 손쉽게 사용할 수 있도록 할 수 있다.
이러한 코드 생성부(140)의 구동 코드(220) 생성은 모듈 세팅부(120)에서 하드웨어 환경설정의 완료 시 자동으로 진행될 수 있다. 사용자 인터페이스(I100)를 통해 필 할당을 완료하면 하드웨어 환경설정이 반영된 구동 코드(220)가 자동으로 생성되므로, 개발자는 생성된 구동 코드(220)를 곧바로 확인할 수 있고, 모듈 코드에 포함된 함수를 곧바로 사용할 수 있다.
도 6에서 도시된 코드 생성부(140)에 의해 생성된 구동 코드(220)는 도시된 코드에 한정되는 것이 아니라, 모듈 부품(M1, M2, M3, Mn)에 특성에 맞도록 수정될 수 있고 더 추가될 수 있다. 또한, 초기 구동 코드(210)속에 포함되어 생성될 수 있다.
도 7은 하드웨어 환경설정 변경에 따른 구동 코드의 변화를 나타낸 도면이다.
도 7를 참조하면, 본 발명의 일 실시예에 따른 프로그램 개발 시스템(100)은 하드웨어 환경설정을 변경하면 변경된 내용이 생성된 구동 코드(220)를 변경할 수 있다. 보다 구체적으로 설명하면, 도 4에 도시된 하드웨어 환경설정에 따른 핀 할당은 키 패드 모듈(Keypad_4x30)의 Row1, Row2, Row3, Row4, Col1, Col2, Col3 핀에 대하여 각각 메인보드(10)의 5, 4, 3, 2, 8, 7, 6으로 할당한 것으로 나타날 수 있다. 이에 따라 도 6에 생성된 구동 코드(220)도 5, 4, 3, 2, 8, 7, 6로 핀 할당이 된 것을 확인할 수 있다. 이 때, 도 7에 도시된 것과 같이 사용자 인터페이스(I110)를 통해 키 패드 모듈(Keypad_4x30)의 Row1 및 Row2 핀을 메인보드(10)의 10, 11 핀으로 할당을 변경하면, 코드 생성부(140)는 도 7의 수정된 구동 코드(221)과 같이 변경된 핀 할당에 따라 이미 생성된 구동 코드(220)를 변경 또는 수정할 수 있다.
개발자는 하드웨어 장치(1)를 개발하는 과정에서 수 많은 모듈 부품에 대해 설계 및 프로그래밍을 반복하게 된다. 그러한 반복되는 과정에서 매번 데이터 시트를 비교하고, 하드웨어 설정 및 코드 작성을 또한 반복하므로 비효율적인 시간 소모가 매우 크다. 또한, 반복하는 과정속에서 코드를 잘못 작성할 가능성도 크다. 보통 디버깅 과정에서 올바르게 수정되지만, 디버깅 시간도 낭비되는 경우가 많다. 이런 하드웨어 장치(1) 개발 과정에서의 비효율적인 자원 소모를 방지할 수 있다.
또한, 본 발명은 단지 코드를 생성하는 것이 아닌 메인보드(10)의 종류에 따라 서로 다른 모듈 부품(M1, M2, M3, Mn)에 대한 정보, 기본적인 하드웨어 설정 및 자주 사용되는 코드인 모듈 코드가 라이브러리부(130)에 저장되고, 개발자는 사용자 인터페이스를 이용하여 간단하게 하드웨어 환경설정을 할 수 있다. 하드웨어 환경설정은 자동으로 구동 코드에 반영되어 개발자가 손쉽게 모듈 부품에 대한 함수를 이용할 수 있으므로 모듈 교체에 따른 수정 시간 자원도 절약할 수 있다.
도 8은 본 발명의 일 실시예에 따른 도 6의 생성된 구동 코드로 연결된 모듈 코드를 나타낸 도면이다.
도 8을 참조하면, 모듈 코드(300)는 연결할 모듈 부품을 제어하기 위한 코드(변수, 함수 또는 자료형 타입 정의 및 선언)를 구동 코드 내에서 사용이 용이하도록 미리 작성해둔 코드일 수 있다. 도 6의 도시된 코드 생성부(140)가 생성한 구동 코드(220) 중 '#include <keypad_4x3.h>'으로 연결된 모듈 코드가 도 8에 도시되어 있다. 도 8에 도시된 바와 같이, 생성된 구동 코드(220)로 인해, Keypad_4x3의 클래스를 이용할 수 있고, 모듈 코드(300)에 정의된 'getKey()'함수(310)를 구동 코드(200)에서 곧바로 이용할 수 있다. 또한, 모듈 코드(300)내에도 연속되어 연결된 또 다른 모듈 코드(320)가 존재할 수 있다. 모듈 코드 내에서의 종속적으로 연결된 또 다른 모듈 코드(320)로 인해 간단한 하드웨어 환경설정으로 생성된 구동 코드(220)만으로 해당하는 모듈 부품을 제어하는 모든 함수를 이용할 수 있도록 한다.
이러한 모듈 코드(300)는 해당 모듈 부품을 개발자가 각각의 모듈 부품을 이용하기 위해 각각 따로 작성하는 것을 방지하여 자원 낭비를 줄일 수 있다. 모듈 코드는 도 8에 도시된 코드만으로 한정되는 것은 아니며, 다른 다양한 코드도 모듈 코드로 포함될 수 있다. 예를 들어, 모듈 부품의 정보를 JSON(JavaScript Object notation)의 형태로 저장하고, 하드웨어 환경설정에서 상기 모듈 부품의 정보를 나타나게 할 수 있다. 따라서 모듈 코드는 프로그래밍 영역에서 사용되는 모듈화 프로그래밍의 영역보다 더 넓은 의미를 지니며, 모듈 부품을 해당 메인보드(10)에서 사용하고, 이용할 수 있도록 하는 모든 파일 또는 코드를 포함할 수 있다.
도 9는 본 발명의 일 실시예에 따른 코드 변환부가 더 포함된 프로그램 개발 시스템의 블록도이다.
도 9를 참조하면, 메인보드(10) 또는 마이크로컨트롤러(11)에 따라, 작성되어 있는 구동 코드(200)를 메인보드(10) 또는 마이크로컨트롤러(11)에 호환되는 코드로 변경하는 코드 변환부(150)를 더 포함할 수 있다.
메인보드(10) 또는 마이크로컨트롤러(11)가 변경되면, 코드 변환부(150)는 구동 코드(200)에 연결된 모듈 코드에 대해 변경된 메인보드(10) 또는 마이크로컨트롤러(11)에 적합한 모듈 코드로 변경할 수 있다. 예를 들어, Atmega128가 장착된 메인보드에서 ARM M0가 장착된 메인보드로 변경하면, 코드 변환부(150)는 Atmega128에 적합한 코드로 작성된 모듈 코드를 ARM M0에 적합한 모듈 코드로 변경할 수 있다. 코드 생성부(140)는 변경된 모듈 코드를 구동 코드(200)에서 이용할 수 있도록 생성된 모듈 코드(200)를 수정할 수 있다. 예컨대, Atmega128 입출력 핀을 사용하는 모듈 부품 입출력 핀에 대하여, 각각 적합한 ARM M0의 입출력 핀을 선택하여 자동으로 할당할 수 있다. 이 과정에서, 기존 마이크로컨트롤러(11)보다 입출력 핀의 개수가 적거나, 기존 마이크로컨트롤러(11)에는 있는 기능이나 변경된 마이크로컨트롤러에는 없는 기능, 예컨대 아날로그 디지털 컨버터 핀이 없는 경우에는 변경하려는 마이크로컨트롤러가 적합하지 않기 때문에, 사용자에게 알람을 제공할 수 있다.
기존에 생성된 구동 코드(220)는 선택된 메인보드(10)에 맞춰 설정된 모듈 코드를 이용할 수 있도록 생성된 것이다. 따라서, 개발자가 개발 도중 메인보드(10)를 변경하면, 기존에 작성된 구동 코드(200)를 사용할 수 없다. 이 경우, 개발을 처음부터 다시 시작해야했다. 그렇지만 코드 변환부(150)가 변경된 메인보드(10) 또는 마이크로컨트롤러(11)에 적합한 모듈 코드로 변경하므로 개발자는 진행중이던 하드웨어 장치(1) 개발 프로젝트를 계속 진행할 수 있다.
도 10은 본 발명의 일 실시예에 따른 네트워크로 연결된 프로그램 개발 시스템의 블록도이다.
도 10을 참조하면, 라이브러리부(130)는 네트워크로 연결된 외부 서버(400)에 모듈 코드를 저장할 수 있다. 또한, 라이브러리부(130)는 네트워크를 통해 외부 서버(400)에 저장된 모듈 코드를 불러올 수 있다. 프로그램 개발 시스템(100)에 등록된 모듈 부품(M1, M2, M3, Mn) 중 개발자가 필요한 모듈 부품(M1, M2, M3, Mn)이 없어도, 네트워크를 통해 연결된 외부 서버(400)에 저장된 모듈 코드를 불러와 필요한 모듈 부품(M1, M2, M3, Mn)을 프로그램 개발 시스템(100)에 등록시킬 수 있다. 네트워크로 연결된 외부 서버(400)는 모듈 부품(M1, M2, M3, Mn)에 대한 모듈 코드의 방대한 데이터양을 로컬 프로그램 개발 시스템에서 구비하고 있지 않아도 되고, 필요한 모듈 부품(M1, M2, M3, Mn)의 데이터만 불러올 수 있으므로 프로그램 개발 시스템(100)의 최적화가 가능할 수 있다.
또한, 개발자로 하여금 새롭게 출시되는 모듈 부품에 대한 모듈 코드도 업데이트를 통하여 즉각적인 대응이 가능하도록 할 수 있다.
도 11은 본 발명의 일 실시예에 따른 상태 디스플레이부가 포함된 프로그램 개발 시스템의 블록도이며, 도 12는 본 발명의 일 실시예에 따른 상태 디스플레이부가 나타내는 그래픽을 도시한 도면이다.
도 11 및 도 12를 참조하면, 본 발명의 일 실시예에 따른 프로그램 개발 시스템(100)은 메인보드(10)에 연결된 모듈 부품(M1, M2, M3, Mn)과 메인보드(10)의 연결 상태를 그래픽 형태로 나타낼 수 있는 상태 디스플레이부(160)를 포함할 수 있다. 상태 디스플레이부(160)가 나타내는 그래픽(500)은 메인보드 그래픽(510) 및 연결한 모듈 부품 그래픽(520)을 포함할 수 있다.
연결 상태는 메인보드(10)에 연결된 모듈 부품(M1, M2, M3, Mn)의 핀과 그 핀에 할당된 메인보드(10)의 핀의 할당 상태일 수 있다. 연결 상태는 핀 할당이 완료된 상태, 메인보드(10) 핀이 중복되어 할당된 상태, 메인보드(10)의 핀이 할당되지 않은 상태 및 호환되지 않는 메인보드(10) 핀이 할당된 상태를 포함할 수 있다.
상태 디스플레이부(160)는 연결 상태에 따라 알람을 나타낼 수 있다. 알람은 메인보드(10)에 연결한 모듈 부품(M1, M2, M3, Mn)의 위치에 나타날 수 있다. 알람은 다양한 형태로 표시되거나 출력될 수 있다. 예를 들어, 알람은 색상을 지닌 뱃지 아이콘(521)으로 나타날 수 있다. 뱃지 아이콘(521)은 연결 상태에 따라 색상 또는 모양이 변화하여 개발자가 연결한 모듈 부품(520)의 연결 상태에 대해 인지할 수 있게 할 수 있다. 도 11에 도시된 것과 같이 연결된 모듈 부품의 그래픽(520)상에 뱃지 아이콘(521)이 나타날 수 있고, 나타난 뱃지 아이콘(521)은 연결 상태에 종속되어 변화될 수 있다. 핀 할당이 완료된 상태는 녹색으로, 연결된 모듈 부품의 핀 중 하나 이상의 핀에 대하여 메인보드(10) 핀이 중복 할당된 상태면 노란색, 연결된 모듈 부품의 핀 중 하나 이상의 핀에 대하여 메인보드(10) 핀이 할당되지 않은 상태면 회색, 연결된 모듈 부품의 핀 중 하나 이상의 핀에 대하여 메인보드(10) 핀이 호환되지 않는 핀이 할당되면 빨간색으로 나타날 수 있다.
도 13은 본 발명의 일 실시예에 따른 하드웨어 환경설정 과정에서 중복 할당된 핀의 알람을 나타낸 도면이다.
도 13을 참조하면, 도 11의 상태 디스플레이부(160)는 모듈 부품에 대한 하드웨어 환경설정 할 때, 모듈 부품의 그래픽(I130)을 나타낼 수 있다. 알람은 하드웨어 환경설정 과정에서 나타나는 모듈 부품의 그래픽(I130)에도 나타날 수 있다. 모듈 부품의 그래픽(I130)에서 중복으로 할당된 모듈 부품의 핀의 위치에 알람(I131)이 나타날 수 있다. 이 과정에서 모듈 세팅부(120)와 연계되어 동작할 수 있다. 모듈 세팅부(120)는 핀 할당하는 과정에서 핀의 연결 상태에 대해 개발자가 인지할 수 있도록 모듈 부품의 각 핀이 메인보드(10) 또는 마이크로컨트롤러(11)의 각 핀에 중복으로 할당이 되는 경우 알람(I112)을 제공할 수 있다. 또한, 상태 디스플레이부(160)가 나타낸 핀 할당된 모듈 부품의 그래픽(I131)에서 중복으로 할당된 핀에 대해서 알람이 나타나면, 나타난 알람에 입력장치의 포커스를 두면 모듈 세팅부(120)는 핀 할당 인터페이스가 그 위치에서 나타나 핀 할당 수정을 곧바로 하도록 유도할 수 있다. 예를 들면, 그래픽으로 나타난 모듈 부품의 핀의 연결 상태 그래픽(I131)에서 중복 할당된 핀은 노란색으로 나타날 수 있다. 개발자는 마우스의 커서를 노란색으로 표시된 핀으로 가져가면, 커서가 그 위치에 진입 또는 일정한 조건이 만족된 상태가 되면 핀 할당을 할 수 있는 인터페이스가 팝업으로 나타나도록 할 수 있다. 개발자는 그래픽으로 핀 할당에 대한 연결상태를 실시간으로 확인할 수 있고, 보다 직관적으로 연결 상태에 대한 문제점을 인식하고 해결할 수 있다. 텍스트 형태로 작성하는 프로그래밍의 특성 상 메인보드(10)의 핀에 모듈 부품 핀이 중복하여 할당하는 빈번한 실수를 줄일 수 있거나 없앨 수 있다.
알람은 뱃지 아이콘으로만 나타날 수 있는 것으로 한정되는 것은 아니며, 연결 상태를 개발자가 인지할 수 있는 형태면 가능하다.
도 14은 본 발명의 일 실시예에 따른 하드웨어 진단부가 포함된 프로그램 개발 시스템의 블록도이다.
도 14을 참조하면, 본 발명의 일 실시예에 따른 프로그램 개발 시스템(100)은 하드웨어 장치의 연결상태를 진당 가능하도록 미리 작성된 진단 프로그램을 하드웨어 장치(1)에 업로드하는 하드웨어 진단부(170)를 포함할 수 있다.
하드웨어 진단부(170)는 완성한 하드웨어 장치(1)를 테스트하기 위한 프로그램이 탑재되어 있다. 하드웨어 진단부(170)는 완성한 하드웨어 장치(1)에 탑재된 테스트 프로그램을 업로드하여 테스트 프로그램이 하드웨어 장치(1)를 구동하도록 할 수 있다. 테스트 프로그램은 하드웨어 장치(1)에 포함된 하나 이상의 모듈 부품과 메인보드(10) 또는 마이크로컨트롤러(11)와 연결상태를 확인할 수 있는 프로그램이다. 예를 들면, 하드웨어 장치(1)에 디스플레이 모듈 및 스피커 모듈이 장착되었다면, 하드웨어 진단부(170)가 업로드하는 테스트 프로그램은 하드웨어 장치(1)에 장착된 디스플레이 모듈에서 간단한 영상 또는 텍스트가 출력되도록 하고, 스피커 모듈에서 사운드가 출력되도록 하는 프로그램일 수 있다. 하드웨어 장치(1)을 개발하다 보면, 디버깅에서 오류가 나타나지 않았는데 하드웨어 장치(1)에서는 정상적으로 구동되지 않는 경우가 자주 발생한다. 보통 코드 상으로는 오류점이 없으나 메인보드(10) 및 마이크로컨트롤러(11)와 모듈 부품들 사이에 물리적인 연결이 제대로 되어 있지 않은 경우이다. 간단한 문제처럼 보이지만, 실제 개발 환경에서는 물리적인 연결상태를 확인할 생각도 못하고 코드의 문제점만 찾으려는 경향이 꽤 크다. 하드웨어 진단부(170)는 이런 문제점을 간단히 해결하여, 하드웨어 장치(1) 개발에서 비효율적으로 낭비되는 시간을 줄일 수 있다.
이하 프로그램 개발 시스템(100)을 이용한 프로그램 개발 방법에 대해 설명한다. 각 개발 방법 단계에 대한 구체적인 설명은 프로그램 개발 시스템과 동일하므로, 간단하게만 언급하기로 한다.
도 15는 본 발명의 일 실시예에 따른 프로그램 개발 방법의 흐름도를 나타낸 도면이다.
도 15를 참조하면, 마이크로컨트롤러가 장착된 메인보드와, 상기 메인보드와 전기적으로 연결되는 하나 이상의 모듈 부품을 포함하는 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템을 이용한 프로그램 개발 방법은 모듈 선택 단계(S110), 모듈 세팅 단계(S120) 및 코드 생성 단계(S130)를 포함할 수 있다.
모듈 선택 단계(S110)는 상기 메인보드에 연결하려는 모듈 부품을 선택하는 단계일 수 있다.
모듈 세팅 단계(S120)는 모듈 선택 단계(S110)에서 선택된 모듈 부품에 대한 하드웨어 환경설정을 사용자 인터페이스를 통해 입력하는 단계일 수 있다. 여기서 하드웨어 환경설정은 선택된 모듈 부품의 각 핀을 메인보드 또는 마이크로컨트롤러의 각 핀에 할당하는 것일 수 있다. 또한, 모듈 세팅 단계에서는 모듈 부품의 각 핀이 메인보드 또는 마이크로컨트롤러의 각 핀에 중복으로 할당이 되는 경우에 알람을 제공할 수 있다.
코드 생성 단계(S130)는 하드웨어 장치를 구동하기 위한 구동 코드를 생성하는 단계일 수 있다. 코드 생성 단계(S130)는 모듈 부품과 미리 작성된 모듈 코드를 이용하여 구동 코드를 자동으로 생성하고, 모듈 세팅 단계(S120)에서 입력된 하드웨어 환경설정을 구동 코드에 자동으로 반영하는 단계일 수 있다.
도 16은 본 발명의 일 실시예에 따른 하드웨어 진단 단계가 포함된 프로그램 개발 방법의 흐름도를 나타낸 도면이다.
도 16을 참조하면, 도 15의 코드 생성 단계(S130) 이후로, 하드웨어 진단 단계(S140)를 더 포함할 수 있다. 하드웨어 진단 단계(S140)는 하드웨어 장치의 연결상태를 진단 가능하도록 미리 작성된 진단 프로그램을 하드웨어 장치에 업로드하는 단계일 수 있다.
도 17은 본 발명의 일 실시예에 따른 핀의 중복 할당 검출 단계가 포함된 프로그램 개발 방법의 흐름도이다.
도 17을 참조하면, 모듈 부품을 선택하는 모듈 선택 단계(S210), 선택한 모듈 부품에 대해 메인보드의 핀을 할당하는 모듈 세팅 단계(S220)가 포함될 수 있다. 모듈 세팅 단계(S220)이후, 모듈 부품의 각 핀에 할당한 메인보드의 핀에 대해 중복 할당된 핀이 존재하는지 검출하는 단계(S230)가 포함될 수 있다. 할당된 메인보드의 핀 중 중복 할당된 핀이 없다면, 코드 생성 단계(S250)으로 넘어갈 수 있다. 중복 할당된 핀이 있다면, 중복 할당된 핀이 중복 할당이 가능한 핀인지, 가능하지 않은 핀인지 확인 하는 단계(S240)가 이어질 수 있다. 예를 들어, 중복 할당이 된 핀이 캔-버스(CAN-BUS)와 같은 메인보드의 네트워크 통신과 관련된 핀이거나, VCC 또는 GND와 같은 핀이라면, 다른 모듈과 중복 할당이 가능하므로 알람을 발생시키지 않고, 코드 생성 단계(S250)로 넘어갈 수 있다. 한편, 중복 할당된 핀이 마이크로컨트롤러의 데이터 입출력과 관련된 핀인 경우, 이미 다른 모듈이 해당 핀을 선점하여 사용하는 경우에 중복 할당이 불가능할 수 있다. 이 경우, 모듈 세팅부 및 상태 디스플레이부를 통해 중복 할당이 발생했다는 알람을 발생시키는 알람 발생 단계(S241)로 이어질 수 있다. 알람 발생 단계(S241) 이후 중복할당이 되었더라도, 코드 생성 단계(S250)로 넘어가서 구동 코드가 생성될 수 있다. 개발자는 중복 할당에 관한 알람을 확인하고, 사용자 인터페이스를 통해 핀 할당은 변경하면, 변경된 핀 할당을 반영하여 코드 생성부가 구동 코드를 변경할 수 있다. 또는 개발자가 직접 텍스트 코드를 수정하여 핀 할당을 변경할 수 있다. 개발자가 직접 텍스트 코드를 변경하면, 모듈 세팅부는 변경된 코드를 확인하여, 변경된 핀 할당에서 중복 할당된 핀이 없는지 다시 확인을 하는 단계를 거칠 수 있다.
이러한 중복 할당 핀을 검출하는 단계는 종래에 개발자가 프로그램을 하드웨어 장치에 업로드 하는 단계에서 검출하는 단계보다 빠른 코딩 단계에서 검출할 수 있으므로 비효율적인 시간 낭비를 줄일 수 있다. 또한, 중복 할당이 가능한 핀인지 아닌지 개발자가 데이터 시트를 확인하고 검토할 필요를 줄여주므로 개발 속도가 더 빨라질 수 있다.
본 명세서에 기재된 다양한 실시예들은 하드웨어, 미들웨어, 마이크로코드, 소프트웨어 및/또는 이들의 조합에 의해 구현될 수 있다. 예를 들어, 다양한 실시예들은 하나 이상의 주문형 반도체(ASIC)들, 디지털 신호 프로세서(DSP)들, 디지털 신호 프로세싱 디바이스(DSPD)들, 프로그램어블 논리 디바이스(PLD)들, 필드 프로그램어블 게이트 어레이(FPGA)들, 프로세서들, 컨트롤러들, 마이크로컨트롤러들, 마이크로컨트롤러들, 여기서 제시되는 기능들을 수행하도록 설계되는 다른 전자 유닛들 또는 이들의 조합 내에서 구현될 수 있다.
또한, 예를 들어, 다양한 실시예들은 명령들을 포함하는 컴퓨터-판독가능한 기록매체에 수록되거나 인코딩될 수 있다. 컴퓨터-판독가능한 기록매체에 수록 또는 인코딩된 명령들은 프로그램 가능한 프로세서 또는 다른 프로세서로 하여금 예컨대, 명령들이 실행될 때 방법을 수행하게끔 할 수 있다. 컴퓨터-판독가능한 기록매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수도 있다. 예를 들어, 이러한 컴퓨터-판독가능한 기록매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광학디스크 저장 매체, 자기 디스크 저장 매체 또는 기타 자기 저장 디바이스 또는 원하는 프로그램 코드를 컴퓨터에 의해 액세스가능한 명령들 또는 데이터 구조들의 형태로 반송하거나 저장하는데 이용될 수 있는 임의의 다른 매체를 포함할 수 있다.
이러한 하드웨어, 소프트웨어, 펌웨어 등은 본 명세서에 기술된 다양한 동작들 및 기능들을 지원하도록 동일한 디바이스 내에서 또는 개별 디바이스들 내에서 구현될 수 있다. 추가적으로, 본 발명에서 "~부"로 기재된 구성요소들, 유닛들, 모듈들, 컴포넌트들 등은 함께 또는 개별적이지만 상호 운용 가능한 로직 디바이스들로서 개별적으로 구현될 수 있다. 모듈들, 유닛들 등에 대한 서로 다른 특징들의 묘사는 서로 다른 기능적 실시예들을 강조하기 위해 의도된 것이며, 이들이 개별 하드웨어 또는 소프트웨어 컴포넌트들에 의해 실현되어야만 함을 필수적으로 의미하지 않는다. 오히려, 하나 이상의 모듈들 또는 유닛들과 관련된 기능은 개별 하드웨어 또는 소프트웨어 컴포넌트들에 의해 수행되거나 또는 공통의 또는 개별의 하드웨어 또는 소프트웨어 컴포넌트들 내에 통합될 수 있다.
특정한 순서로 동작들이 도면에 도시되어 있지만, 이러한 동작들이 원하는 결과를 달성하기 위해 도시된 특정한 순서, 또는 순차적인 순서로 수행되거나, 또는 모든 도시된 동작이 수행되어야 할 필요가 있는 것으로 이해되지 말아야 한다. 임의의 환경에서는, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 더욱이, 상술한 실시예에서 다양한 구성요소들의 구분은 모든 실시예에서 이러한 구분을 필요로 하는 것으로 이해되어서는 안되며, 기술된 구성요소들이 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키징될 수 있다는 것이 이해되어야 한다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.
1: 하드웨어 장치 10: 메인보드
11: 마이크로컨트롤러 100: 프로그램 개발 시스템
110: 모듈 선택부 120: 모듈 세팅부
130: 라이브러리부 140: 코드 생성부
150: 코드 변환부 160: 상태 디스플레이부
200: 구동 코드 210: 초기 구동 코드
220: 생성된 구동 코드 221: 변경된 구동 코드
300: 모듈 코드 400: 외부 서버
500: 그래픽
M1, M2, M3, Mn: 모듈 부품
I100: 사용자 인터페이스

Claims (21)

  1. 마이크로컨트롤러가 장착된 메인보드와, 상기 메인보드와 전기적으로 연결되는 하나 이상의 모듈 부품을 포함하는 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템으로서,
    상기 모듈 부품의 핀 정보를 포함하는 모듈 부품 정보부;
    상기 모듈 부품을 사용자 인터페이스를 통해 선택하는 모듈 선택부;
    상기 모듈 부품 정보부의 상기 핀 정보를 이용하여 상기 모듈 선택부에서 선택된 상기 모듈 부품에 대한 하드웨어 환경설정을 상기 사용자 인터페이스를 통하여 입력하는 모듈 세팅부;
    상기 모듈 부품과 관련된 모듈 코드를 저장하는 라이브러리부; 및
    상기 하드웨어 장치를 구동하기 위한 구동 코드를 생성하는 코드 생성부;를 포함하고,
    상기 코드 생성부는, 상기 라이브러리부에 저장된 상기 모듈 코드를 이용하여 상기 구동 코드를 자동으로 생성하고, 상기 모듈 세팅부에서 입력된 상기 하드웨어 환경설정을 상기 구동 코드에 자동으로 반영하며,
    상기 하드웨어 환경설정은, 상기 선택된 모듈 부품에 대한 상기 핀 정보를 이용하여 상기 모듈 부품의 각 핀에 대하여 상기 메인보드 또는 상기 마이크로컨트롤러의 연결가능한 각 핀을 상기 사용자 인터페이스를 통하여 리스팅하고 상기 사용자 입력에 의해 할당하는 것인 프로그램 개발 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 선택된 모듈 부품의 핀에 할당된 상기 메인보드 또는 상기 마이크로컨트롤러의 핀이 변경되면, 변경된 핀 할당에 따라 상기 모듈 코드를 변경하는 것인 프로그램 개발 시스템.
  4. 제1항에 있어서,
    상기 모듈 세팅부는, 상기 선택된 모듈 부품의 핀에 할당이 가능한 상기 메인보드 또는 상기 마이크로컨트롤러의 핀만 선택되도록 하는 프로그램 개발 시스템.
  5. 제1항에 있어서,
    상기 하드웨어 환경설정은, 상기 모듈 부품의 입출력부를 상기 마이크로컨트롤러의 입출력부에 할당하는 것을 포함하는 것인 프로그램 개발 시스템.
  6. 제1항에 있어서,
    상기 모듈 코드는 상기 모듈 세팅부에서 상기 하드웨어 환경설정의 완료 시 자동으로 생성되는 것인 프로그램 개발 시스템.
  7. 제1항에 있어서,
    상기 모듈 선택부는, 상기 메인보드의 종류와 호환 가능한 모듈 부품만 선택되도록 하는 것인 프로그램 개발 시스템.
  8. 제1항에 있어서,
    상기 메인보드 또는 상기 마이크로컨트롤러에 따라, 작성되어 있는 상기 구동 코드를 상기 메인보드 또는 상기 마이크로컨트롤러에 호환되는 코드로 변경하는 코드 변환부를 더 포함하는 것인 프로그램 개발 시스템.
  9. 제1항에 있어서,
    상기 라이브러리부는 네트워크로 연결된 외부 서버에 상기 모듈 코드를 저장하는 것인 프로그램 개발 시스템.
  10. 제1항에 있어서,
    상기 메인보드에 연결된 상기 모듈 부품과 상기 메인보드의 연결 상태를 그래픽 형태로 나타내는 상태 디스플레이부를 포함하는 것인 프로그램 개발 시스템.
  11. 제10항에 있어서,
    상기 모듈 세팅부는, 상기 모듈 부품의 각 핀이 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 중복으로 할당이 되는 경우에 알람을 제공하는 것인 프로그램 개발 시스템.
  12. 제11항에 있어서,
    상기 알람은, 상기 선택된 모듈 부품의 핀에 대해 상기 메인보드 또는 상기 마이크로컨트롤러의 핀을 선택할 때 발생하는 것인 프로그램 개발 시스템.
  13. 제12항에 있어서,
    상기 알람은, 상기 상태 디스플레이부에서 중복으로 할당된 핀의 위치에 나타나도록 하는 것인 프로그램 개발 시스템.
  14. 제1항에 있어서,
    상기 하드웨어 장치의 연결상태를 진단 가능하도록 미리 작성된 진단 프로그램을 상기 하드웨어에 업로드하는 하드웨어 진단부;를 포함하는 것인 프로그램 개발 시스템.
  15. 마이크로컨트롤러가 장착된 메인보드와, 상기 메인보드와 전기적으로 연결되는 하나 이상의 모듈 부품을 포함하는 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템으로서,
    상기 모듈 부품의 핀 정보를 포함하는 모듈 부품 정보부;
    상기 모듈 부품을 선택하는 모듈 선택부;
    상기 모듈 부품 정보부의 상기 핀 정보를 이용하여 사용자 인터페이스를 통하여 상기 모듈 선택부에서 선택된 상기 모듈 부품의 각 핀을 상기 마이크로컨트롤러 또는 상기 메인보드의 각 핀에 설정하는 모듈 세팅부; 및
    상기 모듈 선택부에서 선택된 상기 모듈 부품을 포함하는 상기 하드웨어 장치를 구동하기 위한 구동 코드를 자동으로 생성하되, 상기 모듈 세팅부에서 설정된 상기 모듈 부품의 각 핀의 정보를 이용하여 상기 구동 코드를 생성하는 코드 생성부를 포함하고,
    상기 모듈 세팅부는, 상기 선택된 모듈 부품에 대한 상기 핀 정보를 이용하여 상기 모듈 부품의 각 핀에 대하여 상기 메인보드 또는 상기 마이크로컨트롤러의 연결가능한 각 핀을 상기 사용자 인터페이스를 통하여 리스팅하고 상기 사용자 입력에 의해 할당하는 것인 프로그램 개발 시스템.
  16. 제15항에 있어서,
    상기 모듈 부품의 각 핀과 상기 마이크로컨트롤러 또는 상기 메인보드의 각 핀은 입출력과 관련된 핀인 것인 프로그램 개발 시스템.
  17. 마이크로컨트롤러가 장착된 메인보드와, 상기 메인보드와 전기적으로 연결되는 하나 이상의 모듈 부품을 포함하는 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템을 이용한 프로그램 개발 방법으로,
    상기 모듈 부품을 선택하는 모듈 선택 단계;
    상기 모듈 부품의 핀 정보를 이용하여 상기 모듈 선택 단계에서 선택된 상기 모듈 부품의 각 핀에 대하여 상기 메인보드 또는 상기 마이크로컨트롤러의 연결가능한 각 핀을 사용자 인터페이스를 통하여 리스팅하고 사용자 입력에 의해 할당하는 모듈 세팅 단계; 및
    상기 하드웨어 장치를 구동하기 위한 구동 코드를 생성하는 코드 생성 단계;를 포함하고,
    상기 코드 생성 단계는, 상기 모듈 부품과 관련한 미리 작성된 모듈 코드를 이용하여 상기 구동 코드를 자동으로 생성하되, 상기 모듈 세팅 단계에서 입력된 상기 모듈 부품의 각 핀의 정보를 이용하여 상기 구동 코드에 자동으로 반영하는 것인 프로그램 개발 방법.
  18. 삭제
  19. 제17항에 있어서,
    상기 모듈 세팅 단계는, 상기 모듈 부품의 각 핀이 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 중복으로 할당이 되는 경우에 알람을 제공하는 것인 프로그램 개발 방법.
  20. 제17항에 있어서,
    상기 하드웨어 장치의 연결상태를 진단 가능하도록 미리 작성된 진단 프로그램을 상기 하드웨어 장치에 업로드하는 하드웨어 진단 단계;를 포함하는 것인 프로그램 개발 방법.
  21. 제17항, 제19항 및 제20항 중 어느 한 항에 따른 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체.
KR1020180118650A 2018-10-05 2018-10-05 프로그램 개발 시스템 및 이를 이용한 개발 방법 KR101993858B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180118650A KR101993858B1 (ko) 2018-10-05 2018-10-05 프로그램 개발 시스템 및 이를 이용한 개발 방법
PCT/KR2019/010887 WO2020071639A1 (ko) 2018-10-05 2019-08-27 프로그램 개발 시스템 및 이를 이용한 개발 방법
US16/582,116 US20200110586A1 (en) 2018-10-05 2019-09-25 Program development system and development method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180118650A KR101993858B1 (ko) 2018-10-05 2018-10-05 프로그램 개발 시스템 및 이를 이용한 개발 방법

Publications (1)

Publication Number Publication Date
KR101993858B1 true KR101993858B1 (ko) 2019-06-27

Family

ID=67057277

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180118650A KR101993858B1 (ko) 2018-10-05 2018-10-05 프로그램 개발 시스템 및 이를 이용한 개발 방법

Country Status (3)

Country Link
US (1) US20200110586A1 (ko)
KR (1) KR101993858B1 (ko)
WO (1) WO2020071639A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020071639A1 (ko) * 2018-10-05 2020-04-09 주식회사 엔터핀 프로그램 개발 시스템 및 이를 이용한 개발 방법
KR102665088B1 (ko) 2022-09-08 2024-05-09 한진석 교육용 자동화 설비 제작 시뮬레이션 시스템 및 이를 이용한 교육용 자동화 설비 제작 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114115763B (zh) * 2021-11-15 2024-05-17 上海商米科技集团股份有限公司 打印机平台化产品的配置装置及配置方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090110486A (ko) * 2008-04-18 2009-10-22 주식회사 하이드로젠파워 로봇 제어 코드 생성 방법 및 그 장치
KR20160108306A (ko) * 2014-01-10 2016-09-19 시암벨라 리미티드 자동 장치 프로그램 생성을 위한 방법 및 장치
KR101674515B1 (ko) 2015-01-20 2016-11-09 주식회사 크레스프리 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07193999A (ja) * 1993-12-28 1995-07-28 Mazda Motor Corp 設備電源の設計方法及び装置
DE10205523A1 (de) * 2002-02-08 2003-08-28 Systemonic Ag Verfahren zum Bereitstellen einer Entwurfs-, Test- und Entwicklungsumgebung sowie ein System zur Ausführung des Verfahrens
JP2007164241A (ja) * 2005-12-09 2007-06-28 Nec Corp ソフトウェア部品検索システム及び方法
KR101993858B1 (ko) * 2018-10-05 2019-06-27 주식회사 엔터핀 프로그램 개발 시스템 및 이를 이용한 개발 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090110486A (ko) * 2008-04-18 2009-10-22 주식회사 하이드로젠파워 로봇 제어 코드 생성 방법 및 그 장치
KR20160108306A (ko) * 2014-01-10 2016-09-19 시암벨라 리미티드 자동 장치 프로그램 생성을 위한 방법 및 장치
KR101674515B1 (ko) 2015-01-20 2016-11-09 주식회사 크레스프리 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020071639A1 (ko) * 2018-10-05 2020-04-09 주식회사 엔터핀 프로그램 개발 시스템 및 이를 이용한 개발 방법
KR102665088B1 (ko) 2022-09-08 2024-05-09 한진석 교육용 자동화 설비 제작 시뮬레이션 시스템 및 이를 이용한 교육용 자동화 설비 제작 방법

Also Published As

Publication number Publication date
WO2020071639A1 (ko) 2020-04-09
US20200110586A1 (en) 2020-04-09

Similar Documents

Publication Publication Date Title
KR101993858B1 (ko) 프로그램 개발 시스템 및 이를 이용한 개발 방법
JP5039428B2 (ja) プログラマブルコントローラ及びplcシステム
CN107632846B (zh) 固件升级方法及装置、机框管理模块
US8176457B2 (en) Apparatus and method updating diagram of circuit based on pin swap performed in package design with respect to PLD
US7831944B2 (en) Circuit-design supporting apparatus, circuit-design supporting method, computer product, and printed-circuit-board manufacturing method
CN103902461A (zh) 不同Nand闪存兼容方法及装置
CN102291591B (zh) 电视软件功能免编译配置方法及其装置
CN106909362A (zh) Bmc固件生成的方法和装置、bmc系统启动的方法和装置
CN113342590A (zh) NVMe设备调试功能实现方法、装置、设备及存储介质
US20170102924A1 (en) Software architecture for embedded systems
US11526363B2 (en) Electronic apparatus and control method thereof
US20070283260A1 (en) Human-machine Interface System with Device Bridge and Method for Designing and Operating the Same
CN105765472A (zh) 远程控制装置以及控制系统
CN114064120A (zh) 信息处理装置和方法、阶梯程序生成装置和方法、制造产品的方法、以及记录介质
JP5079166B1 (ja) シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ
US7139693B1 (en) Using software objects to communicate with hardware devices
CN111159123A (zh) 一种嵌入式可靠参数储存文件系统及方法
US7681174B2 (en) Computer system and related method for generating program codes describing relationships of numerous function names and numerous control codes of a device
US20210294291A1 (en) Information processing device, information processing method, recording medium, and method of manufacturing product
CN116339642A (zh) 板载raid的创建方法、装置、计算机设备及存储介质
CN111352877B (zh) 系统管理总线装置管理系统及其方法
JP3491117B2 (ja) プログラマブルコントローラの制御プログラム作成システム
JPH10271836A (ja) インバータ装置
CN115525191A (zh) 一种命令操作权限配置方法、设备及介质
WO2023196124A1 (en) System-level design tool for selecting and confirming compatability of electrical components

Legal Events

Date Code Title Description
GRNT Written decision to grant