KR101182534B1 - 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된단말장비, dsl 모듈 생성방법 및 상호 에이피아이호출방법 - Google Patents
플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된단말장비, dsl 모듈 생성방법 및 상호 에이피아이호출방법 Download PDFInfo
- Publication number
- KR101182534B1 KR101182534B1 KR1020060106559A KR20060106559A KR101182534B1 KR 101182534 B1 KR101182534 B1 KR 101182534B1 KR 1020060106559 A KR1020060106559 A KR 1020060106559A KR 20060106559 A KR20060106559 A KR 20060106559A KR 101182534 B1 KR101182534 B1 KR 101182534B1
- Authority
- KR
- South Korea
- Prior art keywords
- function
- api
- dsl
- module
- calling
- Prior art date
Links
Images
Classifications
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 RO 영역에 위치하는 플랫폼 함수들을 기능별로 분리한 다음 DSL 모듈을 구성하고 그 구성된 DSL 모듈내에 함수심볼로 API 을 호출하기 위한 stub블록 을 구비하는 비휘발성메모리인 제1 저장매체와; 상기 제1 저장매체에 저장된 플랫폼을 로딩할경우 DSL모듈과 함께 실행데이터를 로딩저장하고 프로그램실행에 따른 함수심볼로 API 호출시 DSL모듈의 stub블록를 통해 찾은 해당 API의 위치로 링킹하여 API를 호출하는 휘발성 메모리인 제2 저장매체와; 상기 제2 저장매체로 로딩되어 실행되는DSL모듈에서 다른 API를 호출할 경우 현재 로딩되는DSL모듈의 stub블록내에서 해당 함수심볼을 이용하여API의 주소값을 찾아 그 해당 DSL모듈의 API 위치로 링킹한 다음 호출처리하도록 제어하는 주제어부를 포함하여 구성되는 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된 단말장비, DSL 모듈 생성방법 및 상호 에이피아이 호출방법을 제공한다.
플랫폼, DSL 모듈, stub함수블록, 링킹, Import section
Description
도 1은 종래 스태틱 링킹기능이 구비된 단말장비를 설명하는 설명도.
도 2는 본 발명의 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된 단말장비를 설명하는 설명도.
도 3은 본 발명에 의해 생성된 DSL 모듈의 구조를 설명하는 설명도.
도 4는 본 발명의 DSL 모듈 생성방법을 설명하는 플로우차트.
도 5는 본 발명의 Stub source를 설명하는 설명도.
도 6은 본 발명의 상호API호출방법을 설명하는 플로우차트.
본 발명의 일실시예를 설명하는 설명도.
도 7는 본 발명의 API호출방법의 일실시예를 설명하는 설명도.
<부호의 상세한 설명>
1 : 단말장비 2A-N: DSL 모듈
3 : Stub 4 : 제1 저장매체(ROM)
5 :제2 저장매체(RAM) 6 : 주제어부
7 :이동통신망시스템 8 : 무선모듈부
9 :디스플레이 10: 마이크로폰
11:코덱부 12:키패널부
13: 상대방 단말장비
본 발명은 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된 단말장비, DSL 모듈 생성방법 및 상호 에이피아이 호출방법에 관한 것으로, 특히 단말장비의 모든 플랫폼들을 기능별로 분리한 다음 DSL형태로 모듈화하고 그 모듈화된 DSL 모듈내에 구비된 stub블록을 통해 각 DSL 모듈간 상호 API 를 신속히 호출하는 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된 단말장비, DSL 모듈 생성방법 및 상호 에이피아이 호출방법 에 관한 것이다.
일반적으로 이동중인 사람이 무선 송수신이 가능한 휴대형 단말장비를 이용하여 문자, 숫자, 영상 등 각종 데이터를 기지국 시스템을 통해 무선으로 주고받는 통신기능을 무선데이터 통신이라고 말하는데, 이러한 무선데이터 통신은 예컨대, 셀룰러폰, 휴대용 컴퓨터, 팩시밀리, 신용카드 조회기 등 각종 단말장비를 이용하여 이동 중에 양방향으로 자료를 교환하거나 검색하는 이동 통신체계이다.
그런데, 상기와 같은 이동통신체계 중 단말장비에는 내장된 메모리를 관리하는 운영체제가 단말장비를 제조한 제조사(OEM) 영역이 있고, 반면에 그러한 단말장비의 통신망을 운용하는 망운용사업자에 의해서 관리되는 WIPI(Wireless internet platform for interoperability) 영역이 존재하게 된다.
그리고, 상기와 같은 종래 단말장비는 설정된 응용프로그램을 실행하기 위해 어플리케이션을 이용할 경우 예컨대, 응용프로그램이 제조사나 WIPI플랫폼의 API(application program interface)를 이용하게 된다. 그런데, 이러한 API는 응용 프로그램이 컴퓨터 운영 체계(OS)나 데이터베이스 관리 시스템(DBMS) 등 다른 프로그램의 기능을 이용하기 위한 인터페이스로서, 응용 프로그래밍 인터페이스(application programming interface)라고도 하며, 일반적으로 API라는 약어로 부른다. 실제로 이 API는 OS 등의 기능과 그 기능을 사용하는 방법을 정의한 함수의 집합을 말하며, 응용 프로그램은 API를 사용하여 OS 등이 가지고 있는 다양한 기능을 이용할 수 있다. 또한, 상기와 같은 플랫폼 정보를 저장하기 위한 단말장비의 ROM은 통상 랜드플래쉬(LAND-FLASH)를 사용한다.
그러면, 상기와 같은 종래 랜드 플래쉬를 사용하는 단말장비를 도 1을 참고로 살펴보면, RO(READ ONLY)영역, RW(READ WRITE)영역 및 ZI영역으로 구분되고, 이중 RO영역에 스테틱(Static)하게 링크된 라이브러리의 API주소값들을 기록된 순서로 저장시킨 API 링크 테이블(70)이 위치되어 있고 RW 영역에 플랫폼 운용을 위한 폰바이오스 혹은 응용 프로그램들이 임베디드형태로 저장하는 비휘발성메모리 인 ROM(71)과;
상기 ROM(71)으로부터 로딩된 API 링크 테이블(70)를 RO 영역에, 폰바이오스 및 응용프로그램의 실행데이터들을 RW영역에, 초기화하지 않은 전역변수의 사이즈정보를 ZI영역에 로딩시킴과 더불어 내부에서 처리된 임시데이터들을 Heap영역에서 처리하는 휘발성메모리인 RAM(72)과;
상기 RAM(72)의 RW영역으로 사용자가 설정한 폰바이오스 혹은 응용프로그램을 로딩시키고 RO영역에 위치한 API 링크 테이블(70)로부터 실행을 원하는 API를 저장 순서대로 찾아 해당 API를 호출한 다음 API를 통해 플랫폼 예컨대, 제조사나 WIPI 플랫폼의 기능을 실행하도록 제어하는 제어부(73)를 포함한다.
한편, 상기와 같은 종래 랜드 플래쉬를 사용하는 단말장비의 로딩동작을 살펴보면, 먼저, 단말장비(74)의 제어부(73)는 시스템이 온 되면 부팅(booting)을 실행한 후에 단말장비 사용자가 키패드(75)를 통해 자신이 원하는 응용프로그램 예컨대, WIPI영역의 게임이나 기타 제조사영역의 계산기기능의 어플리케이션을 실행시킬 경우 이러한 어플리케이션과 관련된 모든 라이브러리를 ROM(71)에서 RAM(72)으로 로딩시킨다.
즉, 상기 단말장비(74)의 제어부(73)는 부팅이나 프로그램이 실행될 경우 이들을 RAM(72)에 로딩시키게 하는데, 예컨대, ROM(71)의 RO영역에 위치한 API 링크 테이블(70)은 RAM(72)의 RO 영역으로, ROM(71)의 RW 영역에 위치한OS와 응용프로그램들은 이미지 형태로 저장되어 있다가 부팅 혹은 로딩과 동시에 RAM(72)의 RW영역 으로 복사되어 RAM Disk를 만든 후, RAM 디스크 상에서 OS와 응용프로그램 예컨대, 제조사 어플리케이션이나 WIPI 어플리케이션들을 구동시키게 된다.
그리고, 상기 ROM(71)의 ZI영역에 있는 예컨대, 크기 등의 정보 역시 RAM(72)의 ZI영역으로 상기 RW영역에 있는 정보와 함께 로딩된다.
이때, 단말장비(70)의 주제어부(73)가 로딩된 프로그램을 실행하기 위해 필요한 API를 호출할 경우 이미 로딩된 RAM(72)의 RO영역에 위치한 API 링크 테이블(70)로부터 실행을 원하는 API를 저장 순서대로 검색한다음 해당 API의 주소값을 얻어 API를 호출한 다음 그 호출한API를 통해 플랫폼 예컨대, 제조사나 WIPI 플랫폼의 기능을 실행시킨다.
그러나, 상기와 같은 종래 랜드 플래쉬를 사용하는 단말장비는 예컨대, WIPI나 제조사 플랫폼 API들의 주소값들이 API 링크 테이블(70)내에 순서대로 저장되는 방식이어서, 후에 이들의 순서에 API의 주소를 추가하거나 혹은 삭제할 경우 이들의 순서가 뒤섞여지기 때문에 API를 호출하여도 호출 되지않아 단말장비의 기능이 정지되게되므로 그에 따라 단말장비의 동작안정성이 상당히 저하되었으며, 설령 이를 무시하고 새로 작성된 API의 주소값을 변경하기를 원할 경우 ROM(71)의 RO영역에위치한 API 링크 테이블(70)의 전체를 모두 함께 변경시켜야 하므로 그에 따라 변경비용도 상당히 증가시킨다는 문제점이 있었다.
이에 본 발명은 상기와 같은 제반 문제점을 해결하기 위해 발명된 것으로, 원하는 API 호출시 API의 기록순서에 관계없이Stub블록을 통해 API의 주소값을 획득한 다음 그 획득된 API 주소로 즉시 링킹하여 API를 호출오류없이 안정적으로 호출할 수 있는 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된 단말장비 및 상호 에이피아이 호출방법을 제공함에 그 목적이 있다.
본 발명의 또 다른 목적은 각 DSL 모듈의 Stub 블록을 통해 실제 실행해야할 API의 존재유무를 판단한 다음 해당 API의 주소값을 신속히 얻어 그 API의 실제주소 위치로 신속히 링킹시킬 수 있는 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된 단말장비 및 상호 에이피아이 호출방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명은RO 영역에 위치하는 플랫폼 함수들을 기능별로 분리한 다음 DSL 모듈을 구성하고 그 구성된 DSL 모듈내에 함수심볼로 API 을 호출하기 위한 stub블록 을 구비하는 비휘발성메모리인 제1 저장매체와;
상기 제1 저장매체에 저장된 플랫폼을 로딩할경우 DSL모듈과 함께 실행데이터를 로딩저장하고 프로그램실행에 따른 함수심볼로 API 호출시 DSL모듈의 stub블록를 통해 찾은 해당 API의 위치로 링킹하여 API를 호출하는 휘발성 메모리인 제2 저장매체와;
상기 제2 저장매체로 로딩되어 실행되는DSL모듈에서 다른 API를 호출할 경우 현재 로딩되는DSL모듈의 stub블록내에서 해당 함수심볼을 이용하여API의 주소값을 찾아 그 해당 DSL모듈의 API 위치로 링킹한 다음 호출처리하도록 제어하 는 주제어부를 포함하여 구성되는 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된 단말장비를 제공한다.
본 발명의 또 다른 특징은 단말장비의 모든 플랫폼 함수들을 기능별로 분리하여 DSL 모듈화 하는 모듈화과정과;
상기 모듈화과정후에 해당 모듈(DSL)이 제공할 EXPORT 함수 목록을 인자로 주어진 DSL 헤더로부터 추출하는 함수목록 추출과정과;
상기 함수목록 추출과정후에 그 추출된 EXPORT 함수목록의 함수Symbol(함수이름)에 대해 플랫폼의 다른 DSL 이 사용할 수 있도록 stub source 를 생성하는 스터브소스 생성과정과;
상기 스터브소스 생성과정후에 플랫폼을 위한 두 개의 object 파일들의 차이를 이용하여 ELF파일을 생성하는 ELF 파일생성과정과;
상기 ELF 파일생성과정후에 생성된 stub source와 ELF파일정보를 이용하여 DSL File Format 으로 파일을 생성하여 롬에 저장시키는 DSL 파일생성과정을 포함하여 구성되는 DSL 모듈 생성방법을 제공한다.
더나아가, 본 발명의 또다른 특징은 단말장비에 특정기능이 설정되었을 경우 현재 실행에 필요한 실행데이터와 함께 DSL 모듈의stub함수블록도 제1저장매체(ROM)로부터 제2저장매체로 로딩시키는 함수로딩단계와;
상기DSL로딩단계후에 로딩된 플랫폼모듈을 실행하기 위해 함수심볼을 이용하여 함수심볼의 API의 주소값을 현재 실행된DSL 모듈의 stub함수블록 내에서 검 색하는 함수심볼이용 검색단계와;
상기 함수심볼이용 검색단계후에 검색된 함수의 실제 API의 주소값을 이용하여 해당 위치로 링킹한 다음 현재 실행 할 실제 API를 호출하여 플랫폼 모듈의 내용을 실행시키는 링킹실행단계와;
상기 링킹실행단계후에 현재 DSL 모듈에서 다른 DSL 모듈의 API를 호출할경우 다음 실행을 위해 함수심볼을 이용하여 함수심볼의 API의 주소값을 현재의DSL 모듈의 stub함수블록 내에서 검색하는 함수심볼이용 재검색단계와;
상기 함수심볼이용 재검색단계후에 DSL간에 검색된 함수의 실제 API의 주소값을 이용하여 해당 위치로 링킹한 다음 현재 실행 할 실제 API를 호출하여 플랫폼 모듈의 내용을 실행시키는 API 재호출실행단계를 포함하여 구성되는 상호 에이피아이 호출방법을 제공한다.
이하, 본 발명을 첨부된 예시도면에 의거 상세히 설명한다.
본 발명은 도 2에 도시된 바와 같이 RO(READ ONLY)영역, RW(READ WRITE)영역 및 ZI영역으로 구분된 영역에서 RO 영역에 위치하는 단말장비(1)의 모든 플랫폼 함수들을 기능별로 분리한 다음 예컨대, 데이터베이스 관리 시스템(DBMS), 미디어 시스템, 파일시스템, 네트워크시스템 등으로 분리하여 DSL 모듈(2A-N)을 구성하고 그 구성된 DSL 모듈(2A-N)내에 함수이름(함수심볼)으로 API 을 호출하기 위한 stub블록(3) 을 구비하며, RW영역에 플랫폼 운용을 위한 폰바이오스 혹은 응용 프로그램 들도 저장하는 비휘발성메모리(ROM)인 제1 저장매체(4: 이하 ROM이라 함)와;
상기 제1 저장매체(4)에 저장된 플랫폼 로딩시 DSL모듈(2A-N) 과 함께 폰바이오스 혹은 응용프로그램의 실행데이터를 로딩저장하고 프로그램실행에 따른 함수이름(함수심볼)으로 API 호출시 DSL모듈(2A-N)의 stub블록(3)를 통해 찾은 해당 API의 위치로 링킹하여 API를 호출하며, 단말장비 내부에서 처리된 임시데이터들을 저장하고, RO영역, RW영역, ZI영역 및 Heap영역으로 구분되는 휘발성메모리(RAM)인 제2저장매체(5: 이하 RAM이라 함)와;
상기 ROM(4)의 DSL모듈(2A-N)과 사용자가 설정한 폰바이오스 혹은 응용프로그램을 RAM(5)의 해당영역으로 로딩시킨 다음 프로그램실행에 따른 API 호출시 DSL모듈(2A-N)의 stub블록(3)내에서 해당 함수이름(함수심볼)으로 API의 주소값을 찾아 그 해당 API 위치로 링킹한 다음 호출처리하도록 제어하며, 단말장비(1)의 기능을 전반적으로 제어하는 주제어부(6)를 포함한다.
여기서, 상기 비휘발성메모리(ROM)인 제1 저장매체(5)는 LAND-FLASH를 사용할 수 있다.
또한, 상기 단말장비(1)에는 무선모듈이 구비된 PDA, 무선모듈이 구비된 노트북, 무선모듈이 구비된 PC 및 휴대폰을 포함한다.
그리고, 상기 stub 블록(3)은 ROM(4)의 RO영역에 위치한 플랫폼 모듈의 DSL 모듈(2A-N)내에 위치하여 DSL모듈(2A-N) 실행시 모듈화된 함수들이 찾는 API의 실제 주소 값들을 각기 저장하고 이들을 찾는 절차가 들어있다.
여기서, 상기 DSL 모듈(2A-N)의 구조는 도 3에 도시된 바와같이 DSL 헤더, RO Section , Import Section , RW Section, Relocation Info의 구조로 구성된다.
또한, Import Section에는 import library info, symbol finder, GOT(Gobal offset table), PLT(Procedure linkage table), stub 블록(3: Import library)등이 포함되어 구성된다.
한편, 상기 단말장비(1)에는 주제어부(6)의 전송제어신호에 따라 이동통신망시스템(7)를 경유하여 단말장비(1)로 송수신되는 영상 및 음성신호가 포함된 무선 호신호(멀티미디어신호 포함)를 처리하는 무선모듈부(8)와;
주제어부(6)의 표시기능 제어신호에 따라 단말장비(1)에서 처리되는 각종 데이터를 외부로 표시하는 디스플레이(9)와;
주제어부(6)의 호 연결 제어신호에 따라 마이크로폰(10)을 통해 입력되는 아날로그 음성신호를 디지털신호로 변환하거나 디지털 음성신호를 아날로그신호로 변환하여 출력하는 코덱부(11)와;
주제어부(6)의 일단에 연결되어 주제어부(6)로 사용자의 기능설정신호를 입력시키는 키패널부(12)를 더 포함한다.
다음에는 상기와 같은 장치에 적용되는 제어방법을 설명한다.
본 발명의 DSL 생성방법은 도 4에 도시된 바와 같이 초기상태에서 모듈화과정(S1)으로 진행하여 단말장비의 모든 플랫폼 함수들을 기능별로 분리하여 DSL 모듈화한다.
그리고, 모듈화과정(S1)후에 함수목록 추출과정(S2)으로 진행하여 해당 모듈(DSL)이 제공할 EXPORT 함수 목록을 인자로 주어진 DSL 헤더로부터 추출한다.
또한, 함수목록 추출과정(S2)후에 스터브소스 생성과정(S3)으로 진행하여 그 추출된 EXPORT 함수목록의 함수Symbol(함수이름) 에 대해 플랫폼의 다른 DSL 이 사용할 수 있도록 stub source 를 생성한다.
더나아가, 스터브소스 생성과정(S3)후에 ELF 파일생성과정(S4)으로 진행하여 플랫폼을 위한 두 개의 object 파일들의 차이를 이용하여 ELF파일을 생성한다.
여기서, 상기 ELF 파일생성과정(S4)에는 두 개의 object 파일들을 0x20 만큼 차이나는 scatter loading script 를 사용한 다음 이들을 링크(link)시켜 두 개의 ELF 파일을 생성하는 ELF파일 구체실행단계를 더 포함한다. 그리고, 상기 ELF 파일생성과정(S4)에는 두 ELF 파일을 비교하여 차이가 있는 곳에 대한 Binding 정보를 생성하는 바인딩정보 생성단계를 더 포함한다.
또한, 상기 ELF 파일생성과정(S4)에는 시작번지가 0x0 인 ELF 파일에서 추출된 EXPORT 함수의 이름으로 심볼주소를 찾아 이들 주소에 함수주소 테이블을 생성함과 더불어 DSL File Format 의 Export Function Address Table 로 기록하는 어드레스테이블 기록단계를 더 포함한다.
그리고, 상기 ELF 파일생성과정(S4)에는 ELF파일에서 각각의 함수이름을 한 개의 문자열로 만들어 DSL File Format 의 Export Function Name Table 로 기록하는 함수이름 기록단계를 더 포함한다.
한편, ELF 파일생성과정(S4)후에 DSL 파일생성과정(S5)으로 진행하여 생성된 stub source와 ELF파일정보를 이용하여 DSL File Format 으로 파일을 생성하여 롬에 저장시킨다.
다시말해서, 본발명 단말장비(1)의 플랫폼은 Base Layer 를 기반으로 각각의 기능별 모듈인 DSL 로 분리한다. 그리고, 해당 모듈(DSL)이 제공할 EXPORT 함수 목록을 인자로 주어진 헤더로부터 추출한다. 또한, 그 추출된 EXPORT 함수 Symbol(함수이름)에 대해 다른 DSL이 사용할 수 있도록 stub source 를 생성한다.
여기서, 상기 stub source 는 ARM assembler 로 이용하여 도 5에 도시된 바와같이 구조로 생성한다.
그리고, 상기 플랫폼의 두 개의 object 파일들을 0x20 만큼 차이나는 scatter loading script 를 사용하여 link 시켜 두 개의 ELF 파일을 생성한다. 이렇게 하는 이유는 WIPI Binary Format 과 같이 동적 Binding 정보를 생성하기 위해서이다. 또한, 상기 과정에서 두 ELF 파일을 비교하여 차이가 있는 곳에 대한 Binding 정보도 생성한다. 그리고, 상기 ELF파일에서 시작번지가 0x0 인 ELF 파일에서 추출된 EXPORT 함수의 이름으로 심볼주소를 찾아 이들 주소에 함수주소 테이블을 생성함과 더불어 DSL File Format 의 Export Function Address Table 로 기록한다. 이와 더불어, ELF파일에서 각각의 함수이름을 한 개의 문자열로 만들어 DSL File Format 의 Export Function Name Table 로 기록한다.
한편, 상기 과정에 의해 생성된 정보들 예컨대, stub source와 ELF파일정보 를 이용하여 DSL File Format 으로 파일을 생성하여 ROM(4)에 저장시킨다.
여기서, 상기 DSL File Format 은 DSL 헤더, Export function address table, Export function name table, RO Section , Import library table , RW Section의 구조로 구성된다.
한편, 본 발명의 DSL모듈간 API방법은 도 6에 도시된 바와 같이 초기상태(S11)에서 기능설정 확인단계(S12)로 진행하여 현재 단말장비에 특정기능 예컨대, 응용프로그램의 실행이 설정되었는 지를 확인한다. 이때, 기능설정 확인단계(S12)중에 확인한 결과 현재 단말장비에 특정기능 예컨대, 응용프로그램이 설정되지 않았을 경우 현단계를 종료하고 대기상태로 진행한다.
그러나, 기능설정 확인단계(S12)중에 확인한 결과 단말장비에 특정기능 예컨대, 응용프로그램이 설정되었을 경우 DSL로딩단계(S13)로 진행하여 현재 실행에 필요한 폰바이오스 혹은 응용프로그램의 실행데이터와 함께 stub블록이 구비된 DSL모듈도 ROM으로부터 RAM으로 로딩시킨다.
그리고, DSL로딩단계(S13)후에 함수심볼이용 검색단계(S14)로 진행하여 로딩된 플랫폼모듈을 실행하기 위해 함수심볼을 이용하여 함수심볼의 API의 주소값을 현재 실행된DSL 모듈의 stub함수블록 내에서 검색한다.
또한, 함수심볼이용 검색단계(S14)후에 링킹실행단계(S15)로 진행하여 검색된 함수의 실제 API의 주소값을 이용하여 해당 위치로 링킹한 다음 현재 실행 할 실제 API를 호출하여 플랫폼 모듈의 내용을 실행시킨다.
그리고, 상기 링킹실행단계(S15)후에 다른 DSL API호출 확인단계(S16)로 진행하여 현재 DSL 모듈에서 다른 DSL 모듈의 API를 호출하는 지를 확인한다. 이때, 상기 다른 DSL API호출 확인단계(S16)중에 확인한결과 현재 DSL 모듈에서 다른 DSL 모듈의 API를 호출하지 않을 경우 현단계를 종료하고 대기상태로 진행한다. 그러나, 상기 다른 DSL API호출 확인단계(S16)중에 확인한결과 현재 DSL 모듈에서 다른 DSL 모듈의 API를 호출할경우 함수심볼이용 재검색단계(S17)로 진행하여 다음 실행을 위해 함수심볼을 이용하여 함수심볼의 API의 주소값을 현재의DSL 모듈의 stub함수블록 내에서 검색한다.
또한, 함수심볼이용 재검색단계(S17)후에 API 재호출실행단계(S18)로 진행하여 DSL간에 검색된 함수의 실제 API의 주소값을 이용하여 해당 위치로 링킹한 다음 현재 실행 할 실제 API를 호출하여 플랫폼 모듈의 내용을 실행시킨다.
여기서, 상기 함수심볼이용 검색단계와 함수심볼이용 재검색단계의 각각은 다음단계 실행을 위한 API를 검색할 필요가 있을 경우 현재 실행이 완료된 DSL 모듈(1A)의 Import section 내의 stub블록에서 함수심볼(함수이름)을 이용하여 API를 검색하는 함수구체검색단계를 더 포함한다. 그리고, 상기 함수심볼이용 검색단계와 함수심볼이용 재검색단계의 각각은stub블록내에서 찾고자하는 API가 DSL모듈내에 있을 경우 그 검색된 주소값을 현재 실행되고 있는 DSL 모듈의 Import section 내의 GOT(Global Offset Table) 에 기록하는 GOT기록단계를 더 포함한다.
다시 말해서, 본 발명의 단말장비(1)는 사용자가 단말장비(1)에 구비된 예컨대, 응용프로그램의 실행이 설정되었을 경우 현재 실행에 필요한 응용프로그램의 실행데이터와 함께 stub함수블록(3)이 구비된 해당 DSL모듈(2A-N)도 ROM(4)으로부터 RAM(5)으로 로딩시킨다.
즉, 상기와 같이 프로그램이 설정될 경우 단말장비(1)의 주제어부(6)는 ROM(4)의 RO 영역에 위치하는 모듈화된 플랫폼 함수 즉, DSL 모듈(2A-N)을 RAM(5)의 RO 영역으로, ROM(4)의 RW영역에 위치하는 플랫폼 운용을 위한 폰바이오스 혹은 응용 프로그램과 함께 RAM(5)의 RW영역으로 로딩시킨다.
그리고, 상기와 같이 플랫폼모듈이 로딩되어 실행될 경우 먼저, 단말장비(1)의 주제어부(6)는 현재 실행되는 API의 호출을 위해 RAM(5)의 RO영역에 위치한 해당 DSL모듈(1A)의 함수들을 실행한 후, 다음단계 실행을 위한 API를 검색할 필요가 있을 경우 현재 실행이 완료된 DSL 모듈(1A)의 Import section 내의 stub블록(3)에서 함수심볼(함수이름)을 이용하여 API를 검색한다.
이때, 상기 주제어부(6)는stub블록(3)내에서 검색될 경우 예컨대, 도 7에 도시된 바와 같이 찾고자하는 API가 DSL모듈(2B)내에 있을 경우 그 검색된 주소값을 DSL 모듈(1A)의 Import section 내의 GOT(Global Offset Table) 에 기록하게 된다. 그리고, 상기 주제어부(6)는 그 검색된 DSL모듈(2B)내의 주소위치로 링킹한 다음 해당API를 호출하여 플랫폼 모듈의 내용을 실행시킨다.
마찬가지로, 상기 DSL모듈(2B)이 구동중에 API를 찾을 필요가 있을 경우 예컨대, 다음 실행을 위해 찾고자하는 API가 DSL 모듈(2C)내에 있다고 가정할 경우 상기 주제어부(6)는 DSL모듈(2B)의 stub블록(3)내에서 API의 주소값을 검색한다음 그 검색된 주소값을 DSL 모듈(2B)의 Import section 내의 GOT(Global Offset Table) 에 기록하고 그 검색된 DSL모듈(2C)내의 주소위치로 링킹한 다음 해당API를 호출하여 플랫폼 모듈의 내용을 실행시킨다.
따라서, 상기와 같은 본 발명의 방법을 사용할 경우 각 DSL 모듈(2A-N)에서 플랫폼을 실행하는 중에 다른 DSL 모듈(2A-N)의 API를 호출하여 DSL간 API기능을 원활히 실행하게된다.
여기서, 상기와 같이 단말장비(1)의 응용프로그램이 실행될 경우 주제어부(6)는 그 실행되는 내용을 디스플레이(9)에 표시함과 더불어 음성신호는 코덱부(11)를 통해 마이크로폰(10)으로 방출시킨다. 이때, 만약 외부로부터 무선모듈부(8)를 통해 무선 호의 착신이 있을 경우 단말장비(1)의 주제어부(6)는 이를 디스플레이(9)나 마이크로폰(10)을 통해 일람해 준다. 그리고, 단말장비(1)의 사용자가 해당 호를 연결시키기를 원할 경우 주제어부(6)는 이동통신망시스템(7)을 통해 상대방 단말기(13)로 응답 호를 전송하므로 통상의 통화를 이루게 된다.
이상 설명에서와 같이 본 발명은 각 DSL 모듈내에 상호 API를 호출할 수 있 는 Stub 블록을 이용하여 필요한 DSL모듈간 연결고리를 생성할 수 있기 때문에 원하는 API 호출시 새로 추가된API의 기록순서에 관계없이Stub블록을 통해 API의 주소값을 획득한 다음 그 획득된 API 주소의 위치로 즉시 링킹하여 해당API를 호출 오류없이 안정적으로 호출할 수 있으므로 그에 따라 API의 호출특성을 극대화시키는 장점을 가지고 있다.
또한, 본 발명에 의하면, 각 DSL 모듈의 Stub 블록을 통해 실제 실행해야할 API의 존재유무를 판단한 다음 해당 API의 주소값을 신속히 얻어 그 API의 실제주소 위치로 신속히 링킹시킬 수 있으므로 그에 따라 플랫폼의 다이나믹 링킹특성도 상당히 향상시키는 효과도 있다.
Claims (14)
- RO(Read Only) 영역에 위치하는 플랫폼 함수들을 기능별로 분리한 다음 DSL(Dynamic System Library) 모듈을 구성하고 그 구성된 DSL 모듈 내에 함수심볼(Symbol)로 에이피아이(API, Application Programming Interface)를 호출하기 위한 stub 블록을 구비하는 비휘발성 메모리인 제1 저장매체와;상기 제1 저장매체에 저장된 플랫폼을 로딩할 경우 DSL 모듈과 함께 실행데이터를 로딩 저장하고 프로그램실행에 따른 함수심볼로 에이피아이 호출시 DSL 모듈의 stub 블록를 통해 찾은 해당 에이피아이의 위치로 링킹하여 에이피아이를 호출하는 휘발성 메모리인 제2 저장매체와;상기 제2 저장매체로 로딩 되어 실행되는 DSL 모듈에서 다른 에이피아이를 호출할 경우 현재 로딩되는 DSL 모듈의 stub 블록 내에서 해당 함수심볼을 이용하여 에이피아이의 주소값을 찾아 그 해당 DSL 모듈의 에이피아이 위치로 링킹한 다음 호출처리 하도록 제어하는 주제어부를 포함하여 구성되는 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된 단말장비.
- 제1항에 있어서,상기 제1 저장매체는 LAND-FLASH인 것을 특징으로 하는 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된 단말장비.
- 제1항에 있어서,상기 단말장비에는 무선모듈이 구비된 PDA, 무선모듈이 구비된 노트북, 무선모듈이 구비된 PC 및 휴대폰을 더 포함하여 구성되는 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된 단말장비.
- 제1항에 있어서,상기 stub 블록은 제1저장매체의 RO영역에 위치한 DSL 모듈 내에 구비되어 DSL모듈 실행 시 모듈화된 함수들이 찾는 에이피아이의 실제 주소 값들을 각기 저장하고 이들을 찾는 절차가 들어있는 것을 특징으로 하는 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된 단말장비.
- 제1항에 있어서,상기 DSL 모듈의 구조는 DSL 헤더, RO Section , Import Section , RW(Read Write) Section, Relocation Info의 구조로 구성되는 것을 특징으로 하는 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된 단말장비.
- 제5항에 있어서,상기Import Section에는 import library info, symbol finder, GOT(Gobal offset table), PLT(Procedure linkage table), stub 블록(Import library)이 더 포함되어 구성되는 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된 단말장비.
- 단말장비의 모든 플랫폼 함수들을 기능별로 분리하여 DSL 모듈화 하는 모듈화과정과;상기 모듈화 과정 후에 해당 DSL 모듈이 제공할 EXPORT 함수 목록을 인자로 주어진 DSL 헤더로부터 추출하는 함수목록 추출과정과;상기 함수목록 추출과정 후에 그 추출된 EXPORT 함수목록의 함수심볼에 대해 플랫폼의 다른 DSL 이 사용할 수 있도록 스터브소스(stub source)를 생성하는 스터브소스 생성과정과;상기 스터브소스 생성과정 후에 플랫폼을 위한 두 개의 object 파일들의 차이를 이용하여 ELF(Executable and Linking Format)파일을 생성하는 ELF 파일 생성과정과;상기 ELF 파일 생성과정 후에 그 생성된 스터브소스와 ELF파일정보를 이용하여 DSL File Format 으로 파일을 생성하여 롬에 저장시키는 DSL 파일생성과정을 포함하여 구성되는 DSL 모듈 생성방법.
- 제7항에 있어서,상기 ELF 파일생성과정에는 두 개의 object 파일들을 0x20 만큼 차이나는 scatter loading script 를 사용한 다음 이들을 링크(link)시켜 두 개의 ELF 파일을 생성하는 ELF파일 구체실행단계를 더 포함하는 구성되는 DSL 모듈 생성방법.
- 제7항에 있어서,상기 ELF 파일생성과정에는 두 ELF 파일을 비교하여 차이가 있는 곳에 대한 바인딩 정보(Binding Information)를 생성하는 바인딩 정보 생성단계를 더 포함하여 구성되는 DSL 모듈 생성방법.
- 제7항에 있어서,상기 ELF 파일생성과정에는 시작번지가 0x0 인 ELF 파일에서 추출된 EXPORT 함수의 이름으로 심볼주소를 찾아 이들 주소에 함수주소 테이블을 생성함과 더불어 DSL File Format 의 Export Function Address Table로 기록하는 어드레스 테이블(Address Table) 기록단계를 더 포함하여 구성되는 DSL 모듈 생성방법.
- 제7항에 있어서,상기 ELF 파일생성과정에는 ELF파일에서 각각의 함수이름을 한 개의 문자열로 만들어 DSL File Format 의 Export Function Name Table 로 기록하는 함수이름(Function Name) 기록단계를 더 포함하여 구성되는 DSL 모듈 생성방법.
- 단말장비에 특정기능이 설정되었을 경우 현재 실행에 필요한 실행데이터와 함께 DSL 모듈의 stub 함수블록도 제1저장매체(ROM)로부터 제2저장매체로 로딩시키는 함수 로딩 단계와;상기 함수 로딩 단계 후에 로딩된 플랫폼모듈을 실행하기 위해 함수심볼을 이용하여 함수심볼의 에이피아이의 주소값을 현재 실행된 DSL 모듈의 stub 함수블록 내에서 검색하는 함수심볼 이용 검색 단계와;상기 함수심볼 이용 검색 단계 후에 검색된 함수의 실제 에이피아이의 주소값을 이용하여 해당 위치로 링킹한 다음 현재 실행할 실제 에이피아이를 호출하여 플랫폼 모듈의 내용을 실행시키는 링킹 실행 단계와;상기 링킹 실행 단계 후에 현재 DSL 모듈에서 다른 DSL 모듈의 에이피아이를 호출할 경우 다음 실행을 위해 함수심볼을 이용하여 함수심볼의 에이피아이의 주소값을 현재의 DSL 모듈의 stub 함수블록 내에서 검색하는 함수심볼 이용 재검색 단계와;상기 함수심볼 이용 재검색 단계 후에 DSL간에 검색된 함수의 실제 에이피아이의 주소값을 이용하여 해당 위치로 링킹한 다음 현재 실행할 실제 에이피아이를 호출하여 플랫폼 모듈의 내용을 실행시키는 에이피아이 재호출 실행 단계를 포함하여 구성되는 상호 에이피아이 호출방법.
- 제12항에 있어서,상기 함수심볼 이용 검색단계와 함수심볼 이용 재검색 단계의 각각은 다음 단계 실행을 위한 에이피아이를 검색할 필요가 있을 경우 현재 실행이 완료된 DSL 모듈의 Import section 내의 stub 블록에서 함수심볼을 이용하여 에이피아이를 검색하는 함수 구체 검색 단계를 더 포함하여 구성되는 상호 에이피아이 호출방법.
- 제12항에 있어서,상기 함수심볼 이용 검색단계와 함수심볼 이용 재검색 단계의 각각은 stub 블록 내에서 찾고자 하는 에이피아이가 DSL 모듈 내에 있을 경우 그 검색된 주소값을 현재 실행되고 있는 DSL 모듈의 Import section 내의 GOT(Global Offset Table)에 기록하는 GOT기록단계를 더 포함하여 구성되는 상호 에이피아이 호출방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060106559A KR101182534B1 (ko) | 2006-10-31 | 2006-10-31 | 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된단말장비, dsl 모듈 생성방법 및 상호 에이피아이호출방법 |
PCT/KR2007/005423 WO2008054133A1 (en) | 2006-10-31 | 2007-10-31 | Terminal having mutual api calling function in platform library, and dsl module generation method and api calling method using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060106559A KR101182534B1 (ko) | 2006-10-31 | 2006-10-31 | 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된단말장비, dsl 모듈 생성방법 및 상호 에이피아이호출방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080038969A KR20080038969A (ko) | 2008-05-07 |
KR101182534B1 true KR101182534B1 (ko) | 2012-09-12 |
Family
ID=39344444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060106559A KR101182534B1 (ko) | 2006-10-31 | 2006-10-31 | 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된단말장비, dsl 모듈 생성방법 및 상호 에이피아이호출방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101182534B1 (ko) |
WO (1) | WO2008054133A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104266452A (zh) * | 2014-10-13 | 2015-01-07 | 合肥美的电冰箱有限公司 | 风冷冰箱的控制方法和风冷冰箱的控制装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101256149B1 (ko) * | 2010-07-12 | 2013-04-19 | 홍익대학교 산학협력단 | 프로그램 카운터 인코딩을 이용한 간접 함수 호출 보호 방법 및 보호 장치 |
CN112860453B (zh) * | 2020-12-14 | 2022-04-08 | 广州市玄武无线科技股份有限公司 | 消息管理方法、系统、电子设备及存储介质 |
CN113867720A (zh) * | 2021-09-29 | 2021-12-31 | 上海同星智能科技有限公司 | 软件平台用第三方程序库函数互调方法及互调系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100653179B1 (ko) | 2004-12-17 | 2006-12-04 | 한국전자통신연구원 | 플랫폼 동적 업그레이드 기능을 가지는 무선통신단말기 및그 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5375241A (en) * | 1992-12-21 | 1994-12-20 | Microsoft Corporation | Method and system for dynamic-link library |
US7047536B1 (en) * | 2000-12-29 | 2006-05-16 | Nortel Networks Ltd | Method and apparatus for classifying remote procedure call transport traffic |
-
2006
- 2006-10-31 KR KR1020060106559A patent/KR101182534B1/ko active IP Right Grant
-
2007
- 2007-10-31 WO PCT/KR2007/005423 patent/WO2008054133A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100653179B1 (ko) | 2004-12-17 | 2006-12-04 | 한국전자통신연구원 | 플랫폼 동적 업그레이드 기능을 가지는 무선통신단말기 및그 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104266452A (zh) * | 2014-10-13 | 2015-01-07 | 合肥美的电冰箱有限公司 | 风冷冰箱的控制方法和风冷冰箱的控制装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2008054133A1 (en) | 2008-05-08 |
KR20080038969A (ko) | 2008-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101233493B (zh) | 冲突解决装置 | |
US7925634B2 (en) | Data recovery method and system of mobile device | |
US8799818B2 (en) | Content search method and mobile terminal having content search function | |
US20100093396A1 (en) | Systems and methods for storing or performing functions within removable memory, such as a subscriber identity module of a mobile device | |
CN1829261A (zh) | 提供支持多语言的移动终端和系统 | |
US8694924B2 (en) | Mobile terminal having function of managing file and folder | |
US20090003797A1 (en) | Method, Apparatus and Computer Program Product for Providing Content Tagging | |
CN101026848A (zh) | 移动终端和软件更新方法 | |
KR20110008699A (ko) | 휴대단말의 데이터 저장 방법 및 장치 | |
CN1293469C (zh) | 具有菜单显示改变功能的移动通信终端及其菜单显示改变方法 | |
KR101182534B1 (ko) | 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된단말장비, dsl 모듈 생성방법 및 상호 에이피아이호출방법 | |
CN1758220A (zh) | 一种升级软件版本的方法 | |
US8762429B1 (en) | File location application programming interface | |
US9118756B2 (en) | Recording method, recording device, and electronic device | |
KR101281183B1 (ko) | 무선인터넷 플랫폼모듈의 부트 레이지 로딩 기능이 구비된단말장비 및 그 제어방법 | |
CN112882685B (zh) | 面向对象编程语言的对象的扩展方法及装置 | |
US20060282658A1 (en) | Boot systems and methods and related devices | |
KR101273914B1 (ko) | 플랫폼 라이브러리 다이나믹 링킹기능이구비된 단말장비 및 그 제어방법 | |
KR20070063132A (ko) | 이동 통신 단말기의 배드 블럭 관리장치와 배드 블럭관리방법 | |
US20100153588A1 (en) | Computer executable program for managing medias | |
KR101200236B1 (ko) | 무선인터넷 플랫폼의 레이지 로딩 기능이 구비된 단말장비및 그 제어방법 | |
KR100627819B1 (ko) | 왑 브라우저의 기능을 이용하여 애플리케이션을 제어하는방법 | |
US20040254986A1 (en) | Information processing apparatus and program | |
US20080140933A1 (en) | Method and apparatus for displaying file in terminal having removable memory device | |
CN116991447B (zh) | 一种操作系统更新方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150821 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160830 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170823 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180829 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20190826 Year of fee payment: 8 |