KR100866546B1 - 센서 노드용 소프트웨어 개발 시스템 및 방법 - Google Patents

센서 노드용 소프트웨어 개발 시스템 및 방법 Download PDF

Info

Publication number
KR100866546B1
KR100866546B1 KR1020060053767A KR20060053767A KR100866546B1 KR 100866546 B1 KR100866546 B1 KR 100866546B1 KR 1020060053767 A KR1020060053767 A KR 1020060053767A KR 20060053767 A KR20060053767 A KR 20060053767A KR 100866546 B1 KR100866546 B1 KR 100866546B1
Authority
KR
South Korea
Prior art keywords
sensor node
section
host system
linking
object code
Prior art date
Application number
KR1020060053767A
Other languages
English (en)
Other versions
KR20070058944A (ko
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 한국전자통신연구원
Publication of KR20070058944A publication Critical patent/KR20070058944A/ko
Application granted granted Critical
Publication of KR100866546B1 publication Critical patent/KR100866546B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 센서 노드용 소프트웨어를 개발하기 위한 호스트 시스템에 있어서, 사용자로부터 입력된 소스 코드를 크로스 컴파일하여 목적 코드를 생성하는 크로스 컴파일부, 상기 크로스 컴파일부에서 생성된 목적 코드를 상기 센서 노드의 커널 모듈과 링킹하여 목적 코드의 실행 이미지를 생성하는 타겟 링킹부, 상기 타겟 링킹부에서 생성된 목적 코드의 실행 이미지를 상기 센서 노드에 전송하는 통신부로 구성된 것으로서, 센서 노드용 소프트웨어 개발 환경에서 호스트 시스템에서 개발된 응용 목적 코드를 커널 이미지와 통합된 전체 이미지가 아닌 목적 코드만을 링킹하여 타겟으로 전송하기 때문에 링킹 및 다운로딩 시간을 줄여, 센서 노드용 소프트웨어 개발 시간을 단축시킬 수 있다.
임베디드 소프트웨어, 센서노드, 소스코드, 크로스 컴파일, 링킹, 개발환경

Description

센서 노드용 소프트웨어 개발 시스템 및 방법{System and Method for developing software for sensor node}
도 1은 종래의 센서 노드용 소프트웨어 개발 시스템을 나타낸 도면.
도 2는 본 발명에 따른 센서 노드용 소프트웨어 개발 시스템의 구성을 개략적으로 나타낸 블럭도.
도 3은 본 발명에 따른 목적 코드가 포함하는 링킹 정보를 나타낸 도면.
도 4는 본 발명에 따른 센서 노드용 소프트웨어 개발 방법을 나타낸 흐름도.
도 5는 본 발명에 따른 크로스 컴파일된 목적 코드의 센서 노드와의 링킹 방법을 나타낸 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100, 200 : 호스트 시스템 110, 250 : 센서 노드
202 : 소스 편집부 204 : 크로스 컴파일부
206 : 타겟 링킹부 208 : 저장부
210, 252 : 통신부 254 : 링킹 에이전트부
256 : MCU(Microcontroller Unit)
본 발명은 임베디드 시스템 크로스 개발 환경의 호스트 시스템에서 응용 소스에 대한 목적 코드를 타겟 센서 노드의 커널과 연동하여 링킹을 수행하고, 그 수행 결과를 무선으로 상기 타겟 센서 노드에 전송하는 센서 노드용 소프트웨어 개발 시스템 및 방법에 관한 것이다.
언제 어디서나 컴퓨팅 환경을 쉽게 제공받을 수 있는 유비쿼터스 환경으로 가면서, 센서 노드와 같은 초소형 임베디드 시스템에 대한 수요는 증가하고 있으며, 센서 노드 뿐만 아니라 센서 노드들로 연결되는 센서 네트워크 환경에 대한 많은 연구들이 행해지고 있다.
임베디드 시스템은 데스크탑 PC와 같은 범용 컴퓨터 시스템과는 다르게, 특수한 목적으로 특수한 기능을 하는 기기 또는 장치에 내장되는 컴퓨터 시스템을 말한다.
예를 들면, 휴대폰, PDA, 웹 패드와 같은 이동형 기기에 내장된 컴퓨터 시스템 또는 디지털 TV, 인터넷 냉장고와 같은 가전 제품에 내장된 컴퓨터 시스템을 말한다. 그 밖에도 현실 세계에서 접하는 많은 기기와 장치들에 컴퓨터 시스템이 내장되어 기기와 장치들의 기능을 개선시킨다. 심지어 동전 크기 보다 작은 센서들에도 컴퓨터 시스템이 내장되어 센서들 간의 통신 등의 기능을 수행한다.
범용 컴퓨터 시스템과 다르게 임베디드 시스템은 항상 고성능, 고용량의 CPU와 메모리와 같은 자원을 요구하지 않으므로, 범용 컴퓨터 시스템과 비교하여 부족한 자원과 성능을 갖게 된다.
이와 같은 이유로 임베디드 시스템에서 수행되는 임베디드 소프트웨어에 대한 개발은 임베디드 시스템보다 성능이 우수한 범용 컴퓨터 시스템에서 이루어진다. 보통 범용 컴퓨터 시스템을 호스트 시스템이라고 하고, 임베디드 시스템을 타겟 시스템이라 하며, 호스트 시스템과 타겟 시스템이 연결되어 타겟 시스템에서 수행되는 소프트웨어에 대한 개발을 호스트 시스템에서 수행하는 개발 환경을 크로스 개발 환경이라 한다.
도 1은 종래의 센서 노드용 소프트웨어 개발 시스템을 나타낸 도면이다.
도 1을 참조하면, 센서 노드용 소프트웨어는 PC와 같은 호스트 시스템(100)에서 개발되고, 호스트 시스템(100)은 센서 노드(120)와 시리얼 통신으로 연결된 모습을 갖는다.
호스트 시스템(100)에서 개발된 이미지는 시리얼 통신을 통하여 센서 노드(110)로 다운로드되고, 상기 센서 노드(110)는 상기 다운로드된 이미지를 플래시 메모리에 저장하여 실행한다.
여기서, 상기 센서 노드용 소프트웨어는 센서 노드 하드웨어의 자원을 관리하는 커널 모듈과 커널 위에서 수행되는 응용 모듈로 구분된다. 상기 커널 모듈은 라이브러리 형태로 제공되고, 상기 제공된 라이브러리를 이용하여 응용 소프트웨어를 개발하게 된다.
응용 소프트웨어 개발자는 호스트 시스템(100)에서 응용 소스 코드를 편집하 고, 편집된 소스 코드를 커널 라이브러리와 크로스 컴파일하고, 상기 컴파일된 바이너리 이미지를 센서 노드(110)에 전송한다. 즉, 상기 호스트 시스템(100)은 상기 소스 코드와 상기 커널 라이브러리를 크로스 컴파일한 결과와 커널 모듈을 포함하는 전체 이미지를 상기 시리얼 통신을 통하여 상기 센서 노드(110)에 전송한다.
그러면, 상기 센서 노드(110)는 상기 호스트 시스템(100)으로부터 전송된 바이너리 이미지를 실행한다. 상기 센서 노드(110)가 상기 바이너리 이미지를 실행하는 중에 실행 오류가 발생하면, 상기 개발자는 상기 호스트 시스템(100)에서 소스 코드를 수정하여 수정된 소스 코드를 이용하여 크로스 컴파일, 다운로딩, 실행 과정을 반복하게 된다.
상기와 같이 응용 소스 코드를 편집한 후, 커널 모듈과 링킹하여 커널과 응용 모듈이 포함되는 전체 바이너리 이미지를 호스트 시스템(100)에서 만들어 센서 노드(110)에 다운로딩하는 방식으로 수행된다.
그러나 상기와 같은 종래의 방법은 응용 소스 코드가 수정될 때마다 매번 커널과 응용 모듈을 포함하는 전체 이미지를 센서 노드로 다운로딩해야 하는 문제점이 있다.
또한, 소스 코드가 수정될 때마다 커널을 포함한 이미지 전체가 센서 노드의 플래시 메모리로 다운로딩되어 퓨징되기 때문에 다운로딩 시간이 길며, 플래시 메모리 전체를 퓨징하기 때문에 플래시 메모리 수명을 단축시키는 단점이 있다.
따라서, 본 발명의 목적은 임베디드 시스템의 크로스 개발 환경에서 응용 소스를 수정하여 센서 노드로 다운로딩할 때, 커널과 응용을 모두 포함하는 전체 이미지가 아닌 수정된 응용 이미지만을 타겟으로 전송하는 센서 노드용 소프트웨어 개발 시스템 및 방법을 제공하는데 있다.
본 발명의 다른 목적은 호스트 시스템이 수정된 응용 이미지를 타겟으로 전송할 때 무선 통신을 사용하여 수행하는 센서 노드용 소프트웨어 개발 시스템 및 방법을 제공하는데 있다.
상기 목적들을 달성하기 위하여 본 발명의 일 측면에 따르면, 센서 노드용 소프트웨어를 개발하기 위한 호스트 시스템에 있어서, 사용자로부터 입력된 소스 코드를 크로스 컴파일하여 목적 코드를 생성하는 크로스 컴파일부, 상기 크로스 컴파일부에서 생성된 목적 코드를 상기 센서 노드의 커널 모듈과 링킹하여 목적 코드의 실행 이미지를 생성하는 타겟 링킹부, 상기 타겟 링킹부에서 생성된 목적 코드의 실행 이미지를 상기 센서 노드에 전송하는 통신부를 포함하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발을 위한 호스트 시스템이 제공된다.
호스트 시스템에서 생성된 목적 코드를 실행시키는 센서 노드에 있어서, 메모리, 상기 호스트 시스템과 무선 통신을 수행하는 통신부, 상기 호스트 시스템과 연동하여 상기 목적 코드에 포함된 섹션 정보에 따라 상기 메모리를 할당하고, 상기 통신부를 통해 상기 호스트 시스템으로부터 전송된 목적 코드의 실행 이미지를 상기 할당된 메모리에 저장하여 실행시키는 링킹 에이전트부를 포함하는 것을 특징으로 하는 센서 노드가 제공된다.
심볼 테이블이 저장된 호스트 시스템과 센서 노드로 구성된 크로스 개발 환경에서 센서 노드용 소프트웨어 개발 방법에 있어서, 상기 호스트 시스템이 사용자로부터 입력된 소스 코드를 크로스 컴파일하여 목적 코드를 생성하고, 상기 호스트 시스템이 상기 생성된 목적 코드를 상기 센서 노드와 연동하여 링킹을 수행하고, 상기 호스트 시스템이 상기 센서 노드와의 링킹 수행 중 오류가 발생하지 않으면, 상기 목적 코드의 실행 메시지를 상기 센서 노드에 전송하고, 상기 센서 노드가 상기 실행 메시지에 포함된 메모리 주소의 명령을 실행하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발 방법이 제공된다.
상기 호스트 시스템이 상기 생성된 목적 코드를 상기 센서 노드와 연동하여 링킹을 수행하는 것은 상기 목적 코드가 포함하는 심볼 정보의 모든 미정의 심볼이 심볼 테이블에 등록되어 있으면, 상기 센서 노드에 메모리 할당 요청 메시지를 전송하고, 상기 센서 노드가 상기 메모리 할당 요청 메시지에 포함된 섹션 타입과 섹션 크기에 따라 메모리를 할당하고, 상기 메모리 할당 정보를 상기 호스트 시스템에 전송하고, 상기 호스트 시스템이 상기 센서 노드로부터 전송된 메모리 할당 정보를 이용하여 상기 목적 코드에 해당하는 텍스트 섹션과 데이터 섹션을 상기 심볼 테이블에 저장된 커널 심볼의 주소와 연결되도록 재배치를 수행하고, 상기 센서 노드에 데이터 저장 요청 메시지를 전송하고, 상기 센서 노드가 상기 데이터 저장 요청 메시지에 포함된 데이터를 저장하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발 방법이 제공된다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 2는 본 발명에 따른 센서 노드용 소프트웨어 개발 시스템의 구성을 개략적으로 나타낸 블럭도, 도 3은 본 발명에 따른 목적 코드가 포함하는 링킹 정보를 나타낸 도면이다.
도 2를 참조하면, 센서 노드용 소프트웨어 개발 시스템은 사용자에 의해 입력/편집된 소스 코드를 크로스 컴파일하여 목적 코드를 생성하고, 상기 생성된 목적 코드를 링킹하여 목적 코드의 실행 이미지를 생성하는 호스트 시스템(200), 상기 호스트 시스템(200)에서 생성된 목적 코드의 실행 이미지를 다운로딩하여 실행하는 센서 노드(250)를 포함한다.
이때, 상기 호스트 시스템(200)과 상기 센서 노드(250)는 ZigBee와 같은 무선 통신 방식으로 통신을 수행한다.
상기 호스트 시스템(200)은 센서 노드용 소프트웨어를 개발하기 위한 것으로서, 입력부(미도시), 출력부(미도시), 소스 편집부(202), 크로스 컴파일부(204), 타겟 링킹부(206), 저장부(208), 통신부(210)를 포함한다.
상기 소스 편집부(202)는 사용자로부터 입력된 소스 코드 작성 및 편집 등을 수행한다.
상기 소스 편집부(202)는 상기 사용자에게 소스 코드 작성 기능을 제공한다. 즉, 상기 사용자는 입력부를 통하여 소스 코드 생성, 열기 , 편집, 저장 등의 명령을 입력하고, 상기 입력된 정보는 상기 소스 편집부(202)에 전달되어 상기 사용자가 요구하는 내용들이 수행되어 상기 출력부에 출력되게 된다.
예를 들면, 소스 코드를 수정한 후에 상기 사용자가 입력부에서 소스 코드 저장 명령을 내리면, 상기 소스 편집부(202)는 그와 같은 명령을 받고 현재 편집된 소스 코드를 저장부(208)에 저장한다. 성공적으로 저장된 경우에 그 결과에 따른 메시지가 출력부에 출력되고, 그 결과를 보고 상기 사용자는 저장이 성공적으로 수행되었음을 인지한다.
상기 크로스 컴파일부(204)는 상기 소스 편집부(202)를 통해 작성된 소스 코드를 크로스 컴파일하여 목적 코드를 생성한다.
상기 생성된 목적 코드는 실행에 필요한 섹션들과 링킹에 필요한 섹션들로 구성된다. 상기 실행에 필요한 섹션들은 상기 센서 노드의 기계어 명령어들로 구성되는 프로그램 섹션과 데이터 섹션으로 구성된다.
상기 링킹에 필요한 섹션은 도 3과 같이 구성된다.
도 3을 참조하면, 목적 코드가 포함하는 링킹 정보는 섹션 정보, 심볼 정보, 재배치 정보를 포함한다.
상기 섹션 정보는 목적 코드를 구성하는 섹션들에 대한 정보를 나타내며, 섹션 타입, 섹션 위치, 섹션 크기로 구성된다. 상기 섹션 타입은 섹션의 종류를 나타내는 것으로, 프로그램 섹션, 데이터 섹션, 심볼 섹션, 재배치 섹션 등을 말한다. 상기 섹션 위치는 목적 코드 내에서의 해당 섹션의 옵셋 값을 말하고, 섹션 크기와 함께 각 섹션들의 내용을 추출할 때 사용된다.
상기 심볼 정보와 재배치 정보는 목적 코드의 링킹을 위하여 필요한 정보이다.
상기 심볼 정보는 목적 코드에서 정의되는 정의 심볼과 외부에서 정의되고 목적 코드에서 참조되는 미정의 심볼에 대한 정보를 나타내는 것으로서, 심볼 타입, 심볼 이름, 정의 섹션, 심볼 위치를 포함한다.
상기 심볼 타입은 정의 심볼, 미정의 심볼을 구분하여 주고, 정의 섹션은 해당 심볼이 정의하는 섹션을 가리킨다. 상기 심볼 위치는 심볼이 정의되는 섹션 내 옵셋 값을 말한다.
상기 재배치 정보는 텍스트, 데이터 섹션에 대하여 재배치를 적용할 때, 사용되는 정보로서, 재배치 타입, 재배치 적용 섹션, 재배치 위치, 재배치 심볼을 포함한다.
상기 재배치 타입은 재배치가 적용되는 규칙, 예를 들면 재배치 계산 규칙, 재배치 적용 비트 수 등의 정보를 내포하는 정수 값을 갖는다. 상기 재배치 적용 섹션은 재배치가 적용되는 섹션을 가리키며, 섹션 정보의 인덱스 값을 갖는다. 상기 재배치 위치는 재배치가 적용되는 부분의 섹션 내 옵셋 값을 말한다. 상기 재배치 심볼은 재배치와 관련된 심볼을 가리키며, 심볼 정보의 인덱스 값을 갖는다.
상기 타겟 링킹부(206)는 상기 크로스 컴파일부(204)에서 생성된 목적 코드를 상기 센서 노드(250)에서 수행되는 커널모듈과 링킹을 수행하여 목적 코드의 실행 이미지를 생성하고, 상기 생성된 목적 코드의 실행 이미지를 상기 센서 노 드(250)에 전송되도록 한다.
상기 저장부(208)는 링킹에 필요한 데이터들이 저장된 제1 저장부(208a), 상기 소스 편집부(202)를 통해 생성된 소스 코드와 상기 크로스 컴파일부(204)에서 생성된 목적 코드를 저장하는 제2 저장부(208b)로 구성된다. 여기서, 상기 제1 저장부(208a)는 예를 들면, RAM일 수 있다.
상기 제1 저장부(208a)에는 심볼 테이블이 저장되어 있고, 상기 심볼 테이블에는 심볼 이름과 심볼 주소가 저장되어 있다.
상기 통신부(210)는 ZigBee와 같은 무선 통신을 이용하여 상기 센서 노드(250)와 통신을 수행한다. 즉, 상기 통신부(210)는 상기 타겟 링킹부(206)에서 생성된 목적 코드의 실행 이미지를 무선으로 상기 센서 노드(250)에 전송하는 역할을 수행한다.
상기 센서 노드(250)는 임베디드 시스템을 말하는 것으로, 센서를 통하여 주변 상황을 감지하여 데이터를 수집하고, 상기 수집된 데이터를 인접 다른 센서 노드에 전달하는 기능을 수행한다.
또한, 상기 센서 노드(250)는 상기 호스트 시스템(200)으로부터 전송된 목적 코드의 실행 이미지를 실행시켜서, 오류 발생 여부를 판단한다.
상기와 같은 역할을 수행하는 센서 노드(250)는 통신부(252), 링킹 에이전트부(254), MCU(Microcontroller Unit)(256)를 포함한다.
상기 MCU(256)는 하나의 칩으로 구성되며, 명령어 처리를 수행하는 CPU(257)와 프로그램과 데이터를 저장하는 메모리(258)를 포함한다. 상기 메모리(258)는 프 로그램을 저장하는 제1 메모리(258a), 데이터를 저장하는 제2 메모리(258b)로 구성된다. 여기서, 상기 제1 메모리(258a)는 플래시 메모리일 수 있고, 상기 제2 메모리(258b)는 SRAM일 수 있다.
상기 링킹 에이전트부(254)는 상기 호스트 시스템(200)의 타겟 링킹부(206)와 연동하여 섹션 정보에 따라 메모리(258)를 할당하고, 그 메모리 할당 정보를 상기 타겟 링킹부(206)에 전송한다.
또한, 상기 링킹 에이전트부(254)는 상기 호스트 시스템(200)으로부터 전송된 목적 코드의 실행 이미지에 포함된 해당 프로그램과 데이터를 상기 메모리(258)에 저장하고, 상기 저장된 프로그램을 실행시키는 역할을 수행한다.
상기 통신부(252)는 ZigBee와 같은 무선 통신 방식으로 상기 호스트 시스템(200)의 통신부(252)를 통해 데이터의 송수신을 수행한다.
이하 상기와 같이 구성된 시스템의 동작에 대하여 설명하기로 한다.
상기 호스트 시스템(200)의 타겟 링킹부(206)는 제2 저장부(208b)에 저장된 커널 코드를 분석하여 상기 커널 코드가 포함하는 심볼(이하, 커널 심볼이라 칭함)을 추출하고, 상기 추출된 커널 심볼을 상기 제1 저장부(208a)에 저장한다.
그런 다음 상기 타겟 링킹부(206)는 상기 제1 저장부(208a)에 저장된 각 커널 심볼에 대하여 심볼 이름과 타겟 메모리 주소를 상기 심볼 테이블에 등록한다. 상기 심볼 테이블은 상기 제1 저장부(208a)에 위치하는 것으로서, 상기 심볼 테이블에 저장되는 커널 심볼들은 추후 응용 목적 코드의 링킹을 위하여 사용된다.
상기와 같이 커널 심볼 등록이 완료되면, 상기 사용자는 소스 코드를 작성하 고, 상기 작성된 소스 코드는 상기 제2 저장부(208b)에 저장된다.
그런 다음 상기 사용자가 상기 저장된 소스 코드에 대한 컴파일 명령을 입력하면, 상기 크로스 컴파일부(204)는 상기 제2 저장부(208b)에 저장된 소스 코드를 크로스 컴파일하여 목적 코드를 생성하고, 상기 생성된 목적 코드를 상기 제2 저장부(208b)에 저장한다.
그런 다음 상기 사용자가 상기 저장된 목적 코드에 대한 링킹 명령을 입력하면, 상기 타겟 링킹부(206)는 상기 제2 저장부(208b)에 저장된 목적 코드에 대해 상기 센서 노드(250)의 링킹 에이전트부(254)와 연동하여 링킹을 수행한다. 상기 링킹 수행을 통해 상기 타겟 링킹부(206)는 목적 코드의 실행 이미지를 생성하고, 상기 생성된 목적 코드의 실행 이미지를 상기 통신부(210)를 통하여 상기 센서 노드(250)로 전송한다.
즉, 상기 타겟 링킹부(206)는 상기 제2 저장부(208b)에 저장된 목적 코드를 읽고, 상기 목적 코드가 포함하는 섹션 정보, 심볼 정보, 재배치 정보를 추출하여 상기 제1 저장부(208a)에 저장한다.
그런 다음 상기 타겟 링킹부(206)는 상기 제1 저장부(208a)에 저장된 심볼 정보의 각 심볼들 중 정의되지 않은 심볼이 존재하는지 상기 제1 저장부(208a)에 저장된 심볼 테이블을 이용하여 검사한다. 즉, 상기 타겟 링킹부(206)는 상기 목적 코드가 포함하는 심볼 정보에 대하여 상기 심볼 테이블에 존재하지 않은 심볼이 존재하는지를 판단한다.
상기 판단결과 상기 심볼 정보의 심볼중에서 상기 심볼 테이블에 정의되지 않은 심볼이 존재하면, 상기 타겟 링킹부(206)는 해당 심볼은 프로그램 수행 과정에서 오류를 발생할 수 있다고 판단하여 링킹 오류 메시지를 출력한다.
만약, 상기 판단결과 상기 심볼 정보의 심볼이 모두 상기 심볼 테이블에 정의되어 있으면, 상기 타겟 링킹부(206)는 상기 제1 저장부(208a)에 저장된 목적 코드가 포함하는 섹션 정보를 바탕으로 상기 센서 노드(250)의 메모리(258)가 할당되도록 상기 센서 노드(250)에 메모리 할당 요청 메시지를 전송한다.
즉, 상기 타겟 링킹부(206)는 상기 센서 노드(250)의 메모리 할당을 위하여 상기 목적 코드가 포함하는 섹션 정보에 포함된 섹션 크기, 섹션 타입, 메모리 할당 요청 명령을 포함하는 메모리 할당 요청 메시지를 상기 통신부(210)에 전달한다. 여기서, 상기 섹션 타입은 텍스트 섹션 또는 데이터 섹션에 대한 정보이다.
그러면, 상기 호스트 시스템(200)의 통신부(210)는 상기 메모리 할당 요청 메시지를 상기 센서 노드(250)의 통신부(252)에 전달하고, 상기 통신부(252)는 상기 메모리 할당 요청 메시지를 상기 링킹 에이전트부(254)에 전송한다.
상기 링킹 에이전트부(254)는 상기 메모리 할당 요청 메시지가 수신되면, 상기 MCU(커널)(256)에 메모리 할당을 요청한다. 그러면, 상기 MCU(256)는 상기 메모리 할당 요청 메시지에 포함된 섹션 타입과 섹션 크기를 이용하여 제1 메모리(250a) 또는 제2 메모리(258b)를 할당한다. 예를들면, 상기 섹션 타입이 텍스트 섹션이면, 제1 메모리 영역을 할당하고, 데이터 섹션이면, 제2 메모리 영역을 할당한다.
상기와 같이 메모리가 할당되면, 상기 MCU(256)는 상기 링킹 에이전트 부(254)에 메모리 할당 정보를 전송하고, 상기 링킹 에이전트부(254)는 상기 전송된 메모리 할당 정보를 상기 통신부를 통하여 상기 타겟 링킹부(206)에 전송한다. 여기서, 상기 메모리 할당 정보는 할당된 메모리의 시작 주소이다.
상기 타겟 링킹부(206)는 상기 센서 노드(250)로부터 전송된 메모리 할당 정보에 따라 상기 제2 저장부(208b)에 저장된 목적 코드의 텍스트 섹션과 데이터 섹션을 읽어 상기 제1 저장부(208a)에 복사한다. 즉, 상기 타겟 링킹부(206)는 상기 제1 저장부(208a)에 저장된 섹션 정보 중 섹션 위치를 이용하여 상기 제2 저장부(208b)에 저장된 목적 코드의 텍스트 섹션과 데이터 섹션을 추출하고, 상기 추출된 텍스트 섹션과 데이터 섹션을 상기 제1 저장부(208a)에 복사한다.
상기 제1 저장부(208a)에 복사된 텍스트 섹션과 데이터 섹션은 목적 코드가 센서 노드(250)에서 실제 실행되는 부분으로, 재배치 과정을 통하여 커널 심볼들과의 주소가 연결되고 상기 센서 노드(250)로 전송되어 바로 실행될 수 있다.
즉, 상기 타겟 링킹부(206)는 상기 제1 저장부(208a)에 저장된 재배치 정보가 포함하는 재배치 심볼과 상응하는 심볼을 가지고 상기 제1 저장부(208a)에 저장된 심볼 테이블에서 찾는다. 그런 다음 상기 타겟 링킹부(206)는 상기 찾은 심볼이 가지고 있는 타겟 메모리 주소와 재배치 타입, 재배치 위치를 바탕으로 상기 제1 저장부(208a)에 저장된 텍스트 또는 데이터 영역에 대한 재배치를 수행한다.
그런 다음 상기 타겟 링킹부(206)는 상기 제1 저장부(208a)에 저장된 텍스트와 데이터 섹션들에 대하여 섹션 내용, 타겟 메모리 주소, 섹션 타입을 포함하는 데이터 저장 요청 메시지를 상기 통신부(2110)를 통하여 상기 센서 노드(250)의 링 킹 에이전트부(254)에 전송한다.
그러면, 상기 링킹 에이전트부(254)는 섹션 타입이 텍스트인 경우, 그 섹션 내용을 해당 타겟 메모리 주소에 저장하고, 데이터 섹션인 경우, 그 섹션 내용을 해당 타겟 메모리 주소에 저장한다.
상기와 같은 링킹 과정에서 오류가 발생하면 상기 사용자는 링킹 오류를 해결하도록 소스를 수정한다.
상기와 같은 링킹이 정상적으로 완료되면, 상기 타겟 링킹부(206)는 상기 통신부(210)를 통하여 타겟 메모리 주소와 실행 명령을 포함하는 실행 메시지를 상기 링킹 에이전트부(254)에 전송한다. 여기서, 상기 타겟 메모리 주소는 목적 코드의 타겟 메모리에 대한 시작 주소이다.
상기 링킹 에이전트부(254)는 상기 호스트 시스템(200)으로부터 실행 메시지가 수신되면, 상기 실행 메시지를 분석하여 해당 주소의 명령을 실행시킨다.
상기 실행 과정에서 오류가 발생하면, 상기 사용자는 실행 오류 부분을 수정하고, 오류가 발생하지 않으면 소스 코드 개발 완료 상태로 이동하여 응용 소스 개발을 종료한다.
도 4는 본 발명에 따른 센서 노드용 소프트웨어 개발 방법을 나타낸 흐름도이다.
도 4를 참조하면, 호스트 시스템은 저장부에 저장된 커널 코드를 분석하고(S400), 상기 분석된 커널 코드가 포함하는 커널 심볼 정보를 심볼 테이블에 등록한다(S402). 상기 커널 심볼 정보는 상기 분석된 커널 코드에 포함된 심볼에 대 한 이름, 타겟 메모리 주소를 포함한다.
단계 402가 수행되면, 상기 호스트 시스템은 사용자로부터 입력/편집된 소스 코드를 저장하고(S404), 상기 저장된 소스 코드를 크로스 컴파일하여 목적 코드를 생성한다(S406). 상기 생성된 목적 코드는 저장부에 저장된다.
즉, 사용자가 소스 코드 작성 명령을 입력하면, 상기 호스트 시스템은 소스 코드 작성을 위한 화면을 제공한다. 상기 사용자가 상기 제공된 화면을 통해 소스 코드를 작성하면, 상기 호스트 시스템은 상기 사용자에 의해 입력된 소스 코드를 저장한다. 그런다음 상기 사용자가 컴파일 명령을 입력하면, 상기 호스트 시스템은 상기 저장된 소스 코드를 크로스 컴파일하여 목적 코드를 생성한다.
단계 406의 수행 후, 상기 호스트 시스템은 상기 저장된 목적 코드를 읽어서 센서 노드와 연동하여 링킹을 수행한다(S408).
즉, 상기 사용자가 상기 생성된 목적 코드에 대한 링킹 명령을 입력하면, 상기 호스트 시스템은 상기 목적 코드에 대해 상기 센서 노드와 연동하여 링킹을 수행한다. 상기 호스트 시스템이 상기 목적 코드에 대해 상기 센서 노드와 연동하여 링킹을 수행하면, 상기 목적 코드의 실행 이미지는 상기 센서 노드로 전송되어 상기 센서 노드에 저장된다. 상기 센서 노드와 연동하여 링킹을 수행하는 방법에 대한 상세한 설명은 도 5를 참조하기로 한다.
단계 408의 수행중 오류가 발생하지 않으면(S410), 상기 호스트 시스템은 상기 센서 노드에 실행 메시지를 전송한다(S412). 상기 실행 메시지는 타겟 메모리 주소와 실행 명령을 포함한다.
상기 센서 노드는 상기 호스트 시스템으로부터 실행 메시지가 수신되면(S414), 상기 실행 메시지에 포함된 메모리 주소의 명령을 실행한다(S416).
단계 416의 실행 과정에서 오류가 발생하지 않으면(S418), 상기 센서 노드는 응용 소스 개발을 종료한다(S420).
만약, 단계 418의 판단결과 오류가 발생하면, 상기 센서 노드는 오류 발생 메시지를 출력한다(S422). 그러면, 상기 사용자는 상기 소스 코드 작성 단계로 이동하여 실행 오류 부분을 수정한다.
만약, 단계 410의 판단결과 링킹 오류가 발생하면, 상기 호스트 시스템은 링킹 오류 메시지를 출력한다(S424). 그러면, 상기 사용자는 상기 소스 코드 작성 단계로 이동하여 실행 오류 부분을 수정한다.
도 5는 본 발명에 따른 크로스 컴파일된 목적 코드의 센서 노드와의 링킹 방법을 나타낸 흐름도이다.
도 5를 참조하면, 사용자에 의해 링킹 명령이 입력되면, 호스트 시스템은 목적 코드의 링킹 정보를 분석하여(S500), 심볼 테이블에 상기 목적 코드의 모든 미정의 심볼이 등록되어 있는지를 판단한다(S502).
즉, 상기 호스트 시스템은 상기 목적 코드가 포함하는 섹션 정보, 심볼 정보, 재배치 정보 중 심볼 정보를 바탕으로 심볼 정보가 포함하는 각 심볼들 중 정의되지 않은 심볼이 존재하는지를 상기 심볼 테이블를 이용하여 판단한다.
단계 502의 판단결과 상기 심볼 테이블에 목적 코드의 모든 미정의 심볼이 존재하면, 상기 호스트 시스템은 상기 센서 노드에 메모리 할당 요청 메시지를 전 송한다(S504). 상기 메모리 할당 요청 메시지에는 섹션 크기, 섹션 타입, 메모리 할당 요청 명령을 포함한다.
상기 센서 노드는 상기 호스트 시스템으로부터 메모리 할당 요청 메시지가 수신되면(S506), 상기 메시지에 포함된 섹션 크기에 해당하는 메모리를 할당한다(S508). 이때, 상기 센서 노드는 섹션 타입이 텍스트 섹션이면 플래시 메모리를 할당하고, 데이터 섹션이면 SRAM 영역을 할당한다.
단계 508의 수행 후, 상기 센서 노드는 상기 메모리 할당 정보를 상기 호스트 시스템에 전송한다(S510). 상기 메모리 할당 정보는 할당을 위한 메모리의 시작 주소를 말한다.
상기 호스트 시스템는 상기 센서 노드로부터 메모리 할당 정보가 수신되면(S512), 상기 목적 코드에 해당하는 텍스트 섹션과 데이터 섹션을 커널 심볼들과의 주소가 연결되도록 재배치를 수행한다(S514).
즉, 상기 호스트 시스템은 목적 코드에 대한 재배치 정보가 포함하는 재배치 심볼에 해당하는 심볼을 심볼 테이블을 검색하여 찾는다. 그런 다음 상기 호스트 시스템은 상기 찾은 심볼이 갖는 타겟 메모리 주소, 재배치 타입, 재배치 위치를 이용하여 저장부에 저장된 텍스트 또는 데이터 영역에 대한 재배치를 수행한다.
단계 514의 수행 후, 상기 호스트 시스템은 데이터 저장 요청 메시지를 상기 센서 노드에 전송한다(S516). 상기 데이터 저장 요청 메시지에는 재배치가 적용된 텍스트 섹션과 데이터 섹션들에 대한 섹션 내용, 섹션의 타겟 메모리 주소, 섹션 타입 등을 포함한다.
상기 센서 노드는 상기 호스트 시스템으로부터 데이터 저장 요청 메시지가 수신되면(S518), 상기 메시지에 포함된 데이터를 저장한다(S520). 즉, 상기 센서 노드는 텍스트 섹션의 경우에는 플래시 메모리의 해당 주소 공간에 해당 데이터를 저장하고, 데이터 섹션의 경우에는 SRAM의 해당 주소 공간에 해당 데이터를 저장한다.
만약, 단계 502의 판단결과 상기 심볼 테이블에 목적 코드의 모든 미정의 심볼이 존재하지 않으면, 상기 호스트 시스템은 링킹 오류 메시지를 출력한다(S522).
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
본 발명은 상기 실시예에 한정되지 않으며, 많은 변형이 본 발명의 사상 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 가능함은 물론이다.
상술한 바와 같이 본 발명에 따르면, 센서 노드용 소프트웨어 개발 환경에서 호스트 시스템에서 개발된 응용 목적 코드를 커널 이미지와 통합된 전체 이미지가 아닌 목적 코드만을 링킹하여 타겟으로 전송하기 때문에 링킹 및 다운로딩 시간을 줄여, 센서 노드용 소프트웨어 개발 시간을 단축시킬 수 있는 센서 노드용 소프트웨어 개발 시스템 및 방법을 제공할 수 있다.
또한, 본 발명에 따르면, 센서 노드용 소프트웨어 개발 환경에서, 플래시 메모리 전체를 매번 퓨징하지 않고 일부 영역만을 퓨징하기 때문에, 플래시 메모리의 수명을 연장할 수 있는 센서 노드용 소프트웨어 개발 시스템 및 방법을 제공할 수 있다.
또한, 본 발명에 따르면, 센서 노드용 소프트웨어 개발 환경에서, 센서 노드와 무선 통신으로 응용 목적 코드를 전송할 수 있기 때문에, 센서 노드가 항상 호스트 시스템의 유선 시리얼 테이블에 연결되지 않고 멀리 떨어져 위치할 수 있는 센서 노드용 소프트웨어 개발 시스템 및 방법을 제공할 수 있다.

Claims (21)

  1. 센서 노드용 소프트웨어를 개발하기 위한 호스트 시스템에 있어서,
    사용자로부터 입력된 소스 코드를 크로스 컴파일하여 실행에 필요한 섹션과 링킹에 필요한 섹션이 포함된 목적 코드를 생성하는 크로스 컴파일부;
    상기 크로스 컴파일부에서 생성된 목적 코드를 상기 센서 노드의 커널 모듈과 링킹하여 목적 코드의 실행 이미지를 생성하는 타겟 링킹부;및
    상기 타겟 링킹부에서 생성된 목적 코드의 실행 이미지를 상기 센서 노드에 전송하는 통신부
    를 포함하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발을 위한 호스트 시스템.
  2. 제1항에 있어서,
    상기 사용자로부터 입력된 소스 코드와 상기 크로스 컴파일부에서 생성된 목적 코드를 저장하는 저장부를 더 포함하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발을 위한 호스트 시스템.
  3. 제2항에 있어서,
    상기 저장부에는 커널 코드가 포함하는 심볼(커널 심볼)에 대한 이름과 타겟 메모리 주소가 저장된 심볼 테이블이 저장된 것을 특징으로 하는 센서 노드용 소프 트웨어 개발을 위한 호스트 시스템.
  4. 삭제
  5. 제1항에 있어서,
    상기 실행에 필요한 섹션은 프로그램 섹션과 데이터 섹션을 포함하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발을 위한 호스트 시스템.
  6. 제1항에 있어서,
    상기 링킹에 필요한 섹션은 섹션 정보, 심볼 정보, 재배치 정보를 포함하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발을 위한 호스트 시스템.
  7. 제1항에 있어서,
    상기 통신부는 무선 통신부인 것을 특징으로 하는 센서 노드용 소프트웨어 개발을 위한 호스트 시스템.
  8. 호스트 시스템에서 생성된 목적 코드를 실행시키는 센서 노드에 있어서,
    메모리;
    상기 호스트 시스템과 무선 통신을 수행하는 통신부;및
    상기 호스트 시스템과 연동하여 상기 목적 코드에 포함된 섹션 정보에 따라 상기 메모리를 할당하고, 상기 통신부를 통해 상기 호스트 시스템으로부터 전송된 목적 코드의 실행 이미지에 포함된 섹션 내용을 상기 할당된 메모리에 저장하여 실행시키며, 상기 목적 코드의 실행 이미지를 실행한 결과 실행 오류가 발생하면 오류 발생 메시지를 출력하는 링킹 에이전트부
    를 포함하는 것을 특징으로 하는 센서 노드.
  9. 제8항에 있어서,
    상기 목적 코드에 포함된 섹션 정보는 섹션 타입, 섹션 크기를 포함하는 것을 특징으로 하는 센서 노드.
  10. 삭제
  11. 심볼 테이블이 저장된 호스트 시스템과 센서 노드로 구성된 크로스 개발 환경에서 센서 노드용 소프트웨어 개발 방법에 있어서,
    상기 호스트 시스템이 사용자로부터 입력된 소스 코드를 크로스 컴파일하여 실행에 필요한 섹션과 링킹에 필요한 섹션을 포함하는 목적 코드를 생성하는 단계;
    상기 호스트 시스템이 상기 생성된 목적 코드를 상기 센서 노드와 연동하여 링킹을 수행하는 단계;
    상기 호스트 시스템이 상기 센서 노드와의 링킹 수행 중 오류가 발생하지 않으면, 상기 목적 코드의 실행 메시지를 상기 센서 노드에 전송하는 단계;및
    상기 센서 노드가 상기 실행 메시지에 포함된 메모리 주소에 해당하는 명령을 실행하는 단계
    를 포함하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발 방법.
  12. 제11항에 있어서,
    상기 호스트 시스템이 상기 센서 노드와의 링킹 수행 중 오류가 발생하면, 링킹 오류 발생 메시지를 출력하는 단계를 더 포함하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발 방법.
  13. 제11항에 있어서,
    상기 실행 메시지에 포함된 메모리 주소의 명령을 실행하는 중에 오류가 발생하면, 실행 오류 발생 메시지를 출력하는 단계를 더 포함하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발 방법.
  14. 제11항에 있어서,
    상기 심볼 테이블에는 커널 코드가 포함하는 커널 심볼 정보가 저장된 것을 특징으로 하는 센서 노드용 소프트웨어 개발 방법.
  15. 제14항에 있어서,
    상기 커널 심볼 정보는 상기 커널 코드에 포함된 심볼에 대한 이름과 타겟 메모리 주소를 포함하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발 방법.
  16. 삭제
  17. 제11항에 있어서,
    상기 실행에 필요한 섹션은 프로그램 섹션과 데이터 섹션을 포함하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발 방법.
  18. 제11항에 있어서,
    상기 링킹에 필요한 섹션은 섹션 정보, 심볼 정보, 재배치 정보를 포함하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발 방법.
  19. 제11항에 있어서,
    상기 호스트 시스템이 상기 생성된 목적 코드를 상기 센서 노드와 연동하여 링킹을 수행하는 단계는,
    상기 호스트 시스템이 상기 목적 코드가 포함하는 심볼 정보의 모든 미정의 심볼이 상기 심볼 테이블에 등록되어 있으면, 상기 센서 노드에 메모리 할당 요청 메시지를 전송하는 단계;
    상기 센서 노드가 상기 메모리 할당 요청 메시지에 포함된 섹션 타입과 섹션 크기에 따라 메모리를 할당하고, 상기 메모리 할당 정보를 상기 호스트 시스템에 전송하는 단계;
    상기 호스트 시스템이 상기 센서 노드로부터 전송된 메모리 할당 정보를 이용하여 상기 목적 코드에 해당하는 텍스트 섹션과 데이터 섹션을 상기 심볼 테이블에 저장된 커널 심볼의 주소와 연결되도록 재배치를 수행하고, 상기 센서 노드에 데이터 저장 요청 메시지를 전송하는 단계;및
    상기 센서 노드가 상기 데이터 저장 요청 메시지에 포함된 섹션 내용을 저장하는 단계를 포함하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발 방법.
  20. 제19항에 있어서,
    상기 메모리 할당 정보는 할당을 위한 메모리의 시작 주소인 것을 특징으로 하는 센서 노드용 소프트웨어 개발 방법.
  21. 제19항에 있어서,
    상기 호스트 시스템이 상기 센서 노드로부터 전송된 메모리 할당 정보를 이용하여 상기 목적 코드에 해당하는 텍스트 섹션과 데이터 섹션을 상기 심볼 테이블에 저장된 커널 심볼의 주소와 연결되도록 재배치를 수행하고, 상기 센서 노드에 데이터 저장 요청 메시지를 전송하는 단계는,
    상기 목적 코드의 재배치 정보가 포함하는 재배치 심볼과 상응하는 심볼을 상기 심볼 테이블을 검색하여 찾는 단계;
    상기 찾은 심볼이 갖는 타겟 메모리 주소, 재배치 타입, 재배치 위치를 이용하여 상기 목적 코드에 해당하는 텍스트 섹션과 데이터 섹션에 대한 재배치를 수행하는 단계;및
    상기 재배치된 텍스트 섹션과 데이터 섹션에 대한 섹션 내용, 섹션에 대한 타겟 메모리 주소, 섹션 타입을 포함하는 데이터 저장 요청 메시지를 상기 센서 노드에 전송하는 단계를 포함하는 것을 특징으로 하는 센서 노드용 소프트웨어 개발 방법.
KR1020060053767A 2005-12-05 2006-06-15 센서 노드용 소프트웨어 개발 시스템 및 방법 KR100866546B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050117704 2005-12-05
KR20050117704 2005-12-05

Publications (2)

Publication Number Publication Date
KR20070058944A KR20070058944A (ko) 2007-06-11
KR100866546B1 true KR100866546B1 (ko) 2008-11-04

Family

ID=38355508

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060053767A KR100866546B1 (ko) 2005-12-05 2006-06-15 센서 노드용 소프트웨어 개발 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100866546B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220015115A (ko) 2020-07-30 2022-02-08 경북대학교 산학협력단 마이크로컨트롤러 업데이트 관리방법 및 관리시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418310B1 (en) 1999-08-05 2002-07-09 Ericsson Inc. Wireless subscriber terminal using java control code
KR20050076175A (ko) * 2004-01-19 2005-07-26 삼성전자주식회사 바이너리 위치정보를 이용한 임베디드 소프트웨어 원격다운로드방법 및 시스템
KR20060070165A (ko) * 2004-12-20 2006-06-23 한국전자통신연구원 무선 센서 네트워크에서 센서 노드 동적 재구성을 위한무선 송/수신 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418310B1 (en) 1999-08-05 2002-07-09 Ericsson Inc. Wireless subscriber terminal using java control code
KR20050076175A (ko) * 2004-01-19 2005-07-26 삼성전자주식회사 바이너리 위치정보를 이용한 임베디드 소프트웨어 원격다운로드방법 및 시스템
KR20060070165A (ko) * 2004-12-20 2006-06-23 한국전자통신연구원 무선 센서 네트워크에서 센서 노드 동적 재구성을 위한무선 송/수신 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220015115A (ko) 2020-07-30 2022-02-08 경북대학교 산학협력단 마이크로컨트롤러 업데이트 관리방법 및 관리시스템

Also Published As

Publication number Publication date
KR20070058944A (ko) 2007-06-11

Similar Documents

Publication Publication Date Title
CN100559346C (zh) 用于实例化抽象类的系统和方法
CN101151608B (zh) 开发人员容易地找出或扩展系统上周知位置的能力
KR100546742B1 (ko) 타겟 시스템 기반 소스 프로그램 개발장치 및 방법
US20100281463A1 (en) XML based scripting framework, and methods of providing automated interactions with remote systems
CN100514294C (zh) 避免数据处理设备中的数据不一致性的方法和装置
JP4041248B2 (ja) コンパイラ装置、コンパイルプログラムが記録されたコンピュータ読み取り可能な記録媒体及びコンパイル方法
KR20150043475A (ko) 문서 자원들의 사용 예측
JP2000347873A (ja) マルチプラットフォーム環境における命令選択
CN102741811A (zh) 改善基于模板的JavaScript小部件的性能
JPH10320214A (ja) コンパイルシステム及びコンピュータプログラム製品
KR102156371B1 (ko) 네이티브 빌드 기반의 임베디드 소프트웨어 개발 환경을 지원하기 위한 임베디드 소프트웨어 개발 도구 제공 방법 및 장치
JP6418696B2 (ja) 命令セットシミュレータおよびそのシミュレータ生成方法
CN106796525A (zh) 按需加载动态脚本语言代码以减少内存使用
US7761860B2 (en) Pre-compiling device
US20060184924A1 (en) Intelligent platform management interface firmware architecture and method of building the same
CN112732321A (zh) 一种固件修改方法、装置、计算机可读存储介质和设备
CN116934330A (zh) 一种调用智能合约的方法及执行方法、计算机设备及存储介质
CN103077066A (zh) 一种编译时嵌入产品关键信息的方法和系统
KR100866546B1 (ko) 센서 노드용 소프트웨어 개발 시스템 및 방법
KR100461535B1 (ko) 내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법
CN111552480A (zh) 跨平台编译方法、装置、设备及可读存储介质
US20060080636A1 (en) Method of building intelligent platform management interface firmware architecture
Chiang et al. Two-stage diff: An efficient dynamic software update mechanism for wireless sensor networks
Kachman et al. Universal framework for remote firmware updates of low-power devices
US9880612B2 (en) Execution control method and execution control apparatus

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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