KR20060065388A - 소프트웨어 개발이 용이한 임베디드 시스템 및 그 방법 - Google Patents

소프트웨어 개발이 용이한 임베디드 시스템 및 그 방법 Download PDF

Info

Publication number
KR20060065388A
KR20060065388A KR1020040104500A KR20040104500A KR20060065388A KR 20060065388 A KR20060065388 A KR 20060065388A KR 1020040104500 A KR1020040104500 A KR 1020040104500A KR 20040104500 A KR20040104500 A KR 20040104500A KR 20060065388 A KR20060065388 A KR 20060065388A
Authority
KR
South Korea
Prior art keywords
hardware
software
dependent
main image
image area
Prior art date
Application number
KR1020040104500A
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 KR1020040104500A priority Critical patent/KR20060065388A/ko
Priority to CNA2005100870852A priority patent/CN1786904A/zh
Publication of KR20060065388A publication Critical patent/KR20060065388A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/48Incremental compilation

Abstract

본 발명은 임베디드 시스템의 소프트웨어 개발을 용이하게 하기 위한 방법에 관한 것으로서, 하드웨어 의존적인 구동코드를 라이브러리화 하여 다른 별도의 이미지로 분리하고, 소프트웨어 주 이미지에서 호출할 수 있는 방법을 제공함으로서 하드웨어 의존적인 코드를 별도의 이미지로 개발할 수 있는 기반을 마련해주기 위한 것이다.
이를 실현하기 위한 본 발명의 임베디드 시스템은, 프로그램 저장부(112)를 라이브러리화 되어진 하드웨어 실행이미지 영역(120)과 소프트웨어 주 이미지 영역(130)으로 분리시킨 상태에서, 특정 위치에 있는 하드웨 의존적 실행 이미지의 함수주소 테이블 주소값을 소프트웨어 주 이미지로 복사해 오면 소프트웨어 주 이미지 내의 코드부에서도 하드웨어 의존적 실행 이미지 함수를 호출되어질 수 있도록 하는 것을 특징으로 한다.
임베디드, 시스템, 소프트웨어, 소스코드, 구동코드

Description

소프트웨어 개발이 용이한 임베디드 시스템 및 그 방법{EMBEDDED SYSTEM FOR BEING EASY SOFTWARE DEVELOPMENT AND METHOD THEREOF}
도 1은 일반적인 임베디드 시스템을 나타낸 구성도.
도 2는 본 발명에 따른 프로그램 로딩부의 이미지 영역 구성도.
도 3은 본 발명 시스템의 하드웨어 실행이미지와 소프트웨어 주이미지간의 동작시 호출상태를 나타낸 모식도.
도 4는 본 발명의 방법을 통한 소프트웨어 변경시의 코드 변경을 위한 동작과정을 나타낸 순서도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 임베디드 시스템 101 : 중앙처리부
102,112 : 프로그램 저장부 103 : 프로그램 로딩부
104 : 주변장치 120 : 하드웨어 실행이미지 영역
130 : 소프트웨어 주 이미지 영역
본 발명은 임베디드 시스템 환경에서 소프트웨어 개발을 용이하게 하기위한 것으로서, 더욱 상세하게는 하드웨어 의존적인 기능의 분리를 통해 소프트웨어의 개발성을 용이하게 이루기 위한 방법에 관한 것이다.
일반적으로, 임베디드 시스템(embedded system)이라 함은 일반적인 컴퓨터가 아닌 각종 전자제품이나 정보기기 등에 설치되어 있는 마이크로프로세서(Microprocessor)에 미리 정해진 특정한 기능만을 수행하는 S/W를 내장시킨 시스템을 말한다.
즉, 임베디드 시스템은 산업 및 군사용 제어기기, 디지털정보 가전기기, 자동 센서장비 등의 기능을 다양화하고 부가가치를 높이기 위한 핵심 시스템으로, 일상생활 속에서 쉽게 접할 수 있는 휴대폰, TV, 세탁기, DVD 플레이어, MP3 플레이어, 캠코더, 디지털 카메라 등과 같은 가전기기가 있다. 뿐만 아니라, 승강기, 항공기, 의료기기, 기차, 통신장비(교환기, 라우터 등)도 임베디드 시스템이다.
한편, 임베디드 소프트웨어란 임베디드 시스템에 탑재되는 소프트웨어를 말하는 것으로, 임베디드 시스템의 응용 분야가 다양해지면서 예전에는 단순했던 임베디드 소프트웨어가 점점 더 복잡하고 다양한 기능을 처리하게 되었다.
즉, Time-to-market이 생명인 임베디드 시스템 제조업자들은 임베디드 소프트웨어를 빨리 개발하여 프로젝트 기간을 단축하는데 반드시 필요한 임베디드 소프트웨어 개발 환경을 강력히 원하고 있다.
이러한 임베디드 시스템에는 마이크로 프로세서와, 소프트웨어 저장영역과 소프트웨어를 구동시키는 영역이 필요하다.
도 1은 이러한 임베디드 시스템(100)을 개략적으로 도시한 구성이다.
도 1을 참조하면, 임베디드 시스템(100)은 마이크로 프로세서(CPU,101)와, 프로그램 저장부(ROM,102), 프로그램 로딩부(RAM,103), 그리고 주변장치(104)로 구성되며, 프로그램 저장부(102)는 롬(ROM) 및 하드 디스크, 그리고 플로피 디스크 등이 주로 사용되고, 프로그램 로딩부(103)는 소프트 웨어의 관점에서 보면 스택(stack) 및 힙(heap)이고 하드웨어의 관점에서 보면 램(RAM)이 된다. 주변장치(104)는 특정 용도를 위한 입출력 장치로서, 예를 들어 세탁기일 경우 모터 구동회로라 할 수 있다.
그러나, 이러한 종래 일반적인 임베디드 시스템(100)에서는 프로그램 저장부(102)내에서 하드웨어 의존적인 코드가 대부분 하나의 이미지 안에 위치되어 소스 코드에 혼재되어 있다.
따라서, 하드웨어 부분의 변경이나 소프트웨어(모듈, 운영체제 등)의 변경시 많은 소스의 검토가 필요하고 전체 이미지의 재 생성 과정의 복잡도를 증가시키는 문제점을 갖고 있었다.
또한, 이미 구현되어 있는 하드웨어 구동부분의 코드를 재작성해야 하는 상황까지 발생하게 되는 문제점이 있었다.
본 발명은 상기한 종래 임베디드 환경에서 소프트웨어 개발의 어려움을 개선하기 위해 제안된 것으로서, 하드웨어 의존적인 구동코드를 라이브러리화 하여 다른 별도의 이미지로 분리하고 소프트웨어 주이미지에서 호출할 수 있는 새로운 방법을 제공함으로서 하드웨어 의존적인 코드를 별도의 이미지로 개발할 수 있도록 하는데 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 임베디드 시스템은, 라이브러리화 되어진 하드웨어 의존적 실행이미지 영역과 소프트웨어 주 이미지 영역으로 분리된 프로그램 저장부를 포함하며, 상기 프로그램 저장부 분리시킨 상태에서, 특정 위치에 있는 하드웨어 의존적 실행 이미지 영역의 함수주소 테이블 주소값을 소프트웨어 주 이미지로 복사해 오면 소프트웨어 주 이미지 영역의 코드부에서도 하드웨어 의존적 실행 이미지 함수의 호출이 가능하게 구성된다.
또한, 본 발명의 임베디드 시스템의 소프트웨어 개발을 용이하게 하기 위한 방법은, 프로그램 저장부를 라이브러리화 되어진 하드웨어 의존적 실행이미지 영역과 소프트웨어 주 이미지 영역으로 분리시킨 상태에서, 특정 위치에 있는 하드웨어 의존적 실행 이미지 영역의 함수주소 테이블 주소값을 소프트웨어 주 이미지로 복사해 오면 소프트웨어 주 이미지 영역의 코드부에서도 하드웨어 의존적 실행 이미지 함수의 호출이 가능한 방법이다.
또한, 본 발명의 임베디드 시스템의 소프트웨어 개발을 용이하게 하기 위한 방법은, 프로그램 저장부가 라이브러리화 되어진 하드웨어 실행이미지 영역과 소프트웨어 주 이미지 영역으로 분리되어 있으며, 상기 소프트웨어 주 이미지 영역에 있는 함수주소 테이블의 주소 변수에 하드웨어 실행이미지 영역중 함수주소 테이블의 특정 위치에 있는 주소값을 복사하는 초기화 세팅 단계; 상기 초기화 세팅이 이루어진 상태에서 함수주소 테이블에 있는 함수주소를 호출하는 호출단계; 상기 호 출되어진 주소를 참고로 하여 프로그래밍 언어로 작성된 소스코드를 컴파일하여 생성하는 컴파일단계; 및 상기 컴파일 되어진 프로그램을 링크하여 실행화일을 생성시키는 링크단계;로 이루어진다.
이하, 본 발명의 구체적인 실시예를 첨부된 도 2 내지 도 4를 참조하여 상세히 살펴보기로 한다.
먼저, 본 실시예에 따른 임베디드 시스템의 프로그램 저장부(112) 영역 분포를 살펴보면, 종래에는 하나의 전체 실행이미지 안에 하드웨어 의존적인 코드를 위치시켰으나 본 발명에서는 도 2에 나타내어진 바와 같이 각각 생성이 가능하도록 하드웨어 실행이미지 영역(120)과 소프트웨어 주 이미지 영역(130)으로 구분되도록 구성시킨 것이다.
그리고, 도 3에서와 같이 하드웨어 실행이미지 영역(120)은 하드웨어 초기화루틴부(121)와, 함수주소 테이블 주소부(122)와, 함수주소 테이블(123) 그리고 하드웨어 드라이버 라이브러리 함수들(124)이 저장되어져 있고, 소프트웨어 주 이미지 영역(130)에는 상기 하드웨어 실행이미지 영역(120)과 대응되는 이미지 형태로 함수주소 테이블의 주소(132)과 하드웨어 드라이버 라이브러리 함수 호출하는 코드들(134)이 구획된 상태로 저장되어져 있다.
이와같은 영역 분포를 갖고 있는 임베디드 시스템 환경에서 소프트웨어의 변동에 의한 소스코드의 호출 및 처리과정을 도 4의 순서도를 참조하여 살펴보기로 한다.
본 발명의 임베디드 시스템에서는 종래와 달리 하드웨어 의존적인 코드를 라이브러리화 하여 분리시켜 저장하고 있으므로, 모듈이나 운영체계의 소프트웨어적인 변동 또는 하드웨어의 부분적인 변경이 발생시 해당 영역만을 변경처리할 수 있게된다.
즉, 소프트웨어 주 이미지 영역에 있는 함수주소 테이블의 주소 변수에 하드웨어 실행이미지 영역중 함수주소 테이블의 주소(122)의 특정 위치(A)에 있는 주소값을 복사하는 초기화 세팅 단계가 실시되어진 후, 상기 초기화 세팅이 이루어진 상태에서 프로그램 저장부(112)내의 소프트웨어 적인 소스코드의 변경이 이루어지면 함수주소 테이블(123)에 있는 함수주소를 호출하는 호출단계가 실행되어지게 된다.
이때 호출하는 방법으로는 함수주소 테이블(123)에 있는 함수주소를 참고로 호출하게 되는데, 이러한 호출이 이루어지면 해당 주소는 소프트웨어 주 이미지영역(130)에 복사되어져 있는 함수주소 테이블의 주소(132)에서 메모리 되어지게 된다.
그리고, 마이크로 프로세서의 제어에 의해 해당 프로그램 언어의 문법에 맞게 실행 가능하도록 프로그램들을 코딩한 후, 상기 호출되어진 주소를 참고로 하여 프로그래밍 언어로 작성된 소스코드를 컴파일하여 생성하는 컴파일단계에서는 적재주소를 함수주소 테이블의 주소에서 특정위치를 지정하여 컴파일하고, 컴파일 후에 나온 파일을 텍스트코드의 형태로 바꿔주게 된다.
이후, 상기 컴파일 되어진 프로그램을 링크하는 링크단계에서는 실행화일이 생성되어짐으로서 소프트웨어의 변동에 따른 OS의 변경이 이루어질 수 있게되는 것이다.
따라서, 이와같은 임베디드 시스템 환경에서의 소프트웨어 개발시 별도의 이미지가 영향을 받지 않게되어 작업자는 실제 변경부분에만 집중할 수 있게되어 임베디드 환경에서 빠르게 OS의 변경을 이룰 수 있게됨을 알 수 있다.
또한, 새로운 하드웨어의 도입시에도 하드웨어 의존적인 코드만 필요한 형태로 변경해주면 됨으로 기존과 같이 프로그램 로딩부의 하드웨어 구동코드까지 재작성할 필요가 없게되고, 이에따라 소프트웨어 주이미지를 그대로 이용할 수 있게되는 것이다.
이상에서 살펴본 바와같은 본 발명은, 하드웨어 의존적인 구동코드를 라이브러리화 하여 다른 별도의 이미지로 분리하고, 소프트웨어 주 이미지에서 호출할 수 있는 방법을 제공함으로서 하드웨어 의존적인 코드를 별도의 이미지로 개발할 수 있는 기반을 마련해줄 수 있게된다.

Claims (3)

  1. 임베디드 시스템에 있어서,
    라이브러리화 되어진 하드웨어 의존적 실행이미지 영역과 소프트웨어 주 이미지 영역으로 분리된 프로그램 저장부를 포함하며,
    상기 프로그램 저장부 분리시킨 상태에서, 특정 위치에 있는 하드웨어 의존적 실행 이미지 영역의 함수주소 테이블 주소값을 소프트웨어 주 이미지로 복사해 오면 소프트웨어 주 이미지 영역의 코드부에서도 하드웨어 의존적 실행 이미지 함수의 호출이 가능한 것을 특징으로 하는 소프트웨어 개발이 용이한 임베디드 시스템.
  2. 프로그램 저장부를 라이브러리화 되어진 하드웨어 의존적 실행이미지 영역과 소프트웨어 주 이미지 영역으로 분리시킨 상태에서, 특정 위치에 있는 하드웨어 의존적 실행 이미지 영역의 함수주소 테이블 주소값을 소프트웨어 주 이미지로 복사해 오면 소프트웨어 주 이미지 영역의 코드부에서도 하드웨어 의존적 실행 이미지 함수의 호출이 가능한 임베디드 시스템의 소프트웨어 개발이 용이한 방법.
  3. 임베디드 시스템의 소프트웨어 변경과정에 있어서,
    프로그램 저장부가 라이브러리화 되어진 하드웨어 실행이미지 영역과 소프트웨어 주 이미지 영역으로 분리되어 있으며, 상기 소프트웨어 주 이미지 영역에 있 는 함수주소 테이블의 주소 변수에 하드웨어 실행이미지 영역중 함수주소 테이블의 특정 위치에 있는 주소값을 복사하는 초기화 세팅 단계;
    상기 초기화 세팅이 이루어진 상태에서 함수주소 테이블에 있는 함수주소를 호출하는 호출단계;
    상기 호출되어진 주소를 참고로 하여 프로그래밍 언어로 작성된 소스코드를 컴파일하여 생성하는 컴파일단계; 및
    상기 컴파일 되어진 프로그램을 링크하여 실행화일을 생성시키는 링크단계;가 수행되어짐을 특징으로 하는 임베디드 시스템의 소프트웨어 개발을 용이한 방법.
KR1020040104500A 2004-12-10 2004-12-10 소프트웨어 개발이 용이한 임베디드 시스템 및 그 방법 KR20060065388A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040104500A KR20060065388A (ko) 2004-12-10 2004-12-10 소프트웨어 개발이 용이한 임베디드 시스템 및 그 방법
CNA2005100870852A CN1786904A (zh) 2004-12-10 2005-07-26 容易进行软件开发的嵌入系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040104500A KR20060065388A (ko) 2004-12-10 2004-12-10 소프트웨어 개발이 용이한 임베디드 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR20060065388A true KR20060065388A (ko) 2006-06-14

Family

ID=36784385

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040104500A KR20060065388A (ko) 2004-12-10 2004-12-10 소프트웨어 개발이 용이한 임베디드 시스템 및 그 방법

Country Status (2)

Country Link
KR (1) KR20060065388A (ko)
CN (1) CN1786904A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008054132A1 (en) * 2006-10-31 2008-05-08 Sk Telecom Co., Ltd. Terminal having platform library dynamic linking function and method of controlling the same
WO2017209425A1 (ko) * 2016-06-01 2017-12-07 구자철 사용자 중심의 기능 가변식 컴파일링 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008054132A1 (en) * 2006-10-31 2008-05-08 Sk Telecom Co., Ltd. Terminal having platform library dynamic linking function and method of controlling the same
WO2017209425A1 (ko) * 2016-06-01 2017-12-07 구자철 사용자 중심의 기능 가변식 컴파일링 시스템

Also Published As

Publication number Publication date
CN1786904A (zh) 2006-06-14

Similar Documents

Publication Publication Date Title
CN107168749B (zh) 一种编译方法、装置、设备和计算机可读存储介质
EP3410296B1 (en) Starting method and device for embedded device
JP6198939B2 (ja) ドライバをロードする方法及び組み込みデバイス
CN102902556B (zh) 一种嵌入式设备的多级引导加载方法
US5881290A (en) Industrial controller decompiler accommodating an expandable instruction set
JP2006092544A (ja) プリオペレーティングシステム環境におけるモジュールの動的リンク
US8464236B2 (en) Data consistency in data processing systems
US20040194071A1 (en) Compiling device, computer-readable recording medium on which a compiling program is recorded and a compiling method
US10445074B2 (en) Method of optimally compiling PLC command
CN111797387B (zh) 拦截外挂插件的方法及装置
CN111061486B (zh) 一种安卓应用程序增量方法
KR20060065388A (ko) 소프트웨어 개발이 용이한 임베디드 시스템 및 그 방법
CN113138790B (zh) Android机顶盒客制化集成方法、装置及机顶盒集成开发系统
WO2022184112A1 (zh) 安卓系统的应用调试方法、装置、程序、介质及电子设备
CN113342376B (zh) 一种针对物联网设备的操作系统进行升级的方法及装置
US20020073133A1 (en) Register allocation method and software development method for various execution environments and LSI for executing developed software
JP2009258796A (ja) プログラム開発装置及びプログラム開発方法
CN107273165B (zh) 一种实现模块动态调用的系统及方法
CN100476736C (zh) 在虚拟机环境下调用方法的方法和包括虚拟机的系统
CN112445483B (zh) 一种指令生成方法、装置、电子设备及存储介质
JP7003259B2 (ja) シミュレーション装置
KR20190114510A (ko) Plc의 브랜치 명령어 처리 방법
CN113286090B (zh) 摄像头多驱动动态配置方法、加载方法及相关装置
JP2004192604A (ja) 組込みソフトウェア開発装置及び組込みソフトウェア開発方法
KR100382355B1 (ko) 공용 라이브러리의 텍스트 영역 교체 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application