KR20050026572A - 임베디드 플랫폼이 탑재된 이동통신단말과 그 제어방법 - Google Patents

임베디드 플랫폼이 탑재된 이동통신단말과 그 제어방법 Download PDF

Info

Publication number
KR20050026572A
KR20050026572A KR1020030062971A KR20030062971A KR20050026572A KR 20050026572 A KR20050026572 A KR 20050026572A KR 1020030062971 A KR1020030062971 A KR 1020030062971A KR 20030062971 A KR20030062971 A KR 20030062971A KR 20050026572 A KR20050026572 A KR 20050026572A
Authority
KR
South Korea
Prior art keywords
embedded
library
application
memory
platform
Prior art date
Application number
KR1020030062971A
Other languages
English (en)
Other versions
KR100561679B1 (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 에스케이 텔레콤주식회사
Priority to KR1020030062971A priority Critical patent/KR100561679B1/ko
Publication of KR20050026572A publication Critical patent/KR20050026572A/ko
Application granted granted Critical
Publication of KR100561679B1 publication Critical patent/KR100561679B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/40Circuits

Abstract

본 발명은 어플리케이션 및 라이브러리의 실행속도를 향상시키고 다중실행을 가능하게 하는임베디드 플랫폼이 탑재된 이동통신단말과 그 제어방법에 관한 것으로, 무선인터넷 환경을 지원하는 단말의 CPU코어 및 호 처리를 수행하는 하드웨어 아키텍처로 구성된 모뎀칩 프로세서와, 운영체제 계층모듈과, I/O장치를 구동하는 I/O모듈을 포함하여 구성되는 모바일 플랫폼이 탑재된 이동통신단말에 있어서, 임베디드 어플리케이션 및 라이브러리를 포함하는 임베디드 모듈과, 플랫폼의 동작에 따른 데이터를 저장하는 메모리와, API를 통해 상기 임베디드 모듈을 통한 상기 메모리로의 데이터 저장과플랫폼 등록을 수행하는 임베디드 제어모듈을 구비함으로써, 어플리케이션 및 라이브러리의 실행속도를 향상시키고 어플리케이션 및 라이브러리의 다중실행을 가능하게 하는 효과가 있다.

Description

임베디드 플랫폼이 탑재된 이동통신단말과 그 제어방법{Mobile Communication Terminal with Embedded Platform and Control Method Therefor}
본 발명은 무선단말 플렛폼에서 단말에 임베디드 형태의 어플리케이션 및 라이브러리를 제공할 수 있는 임베디드 플랫폼이 탑재된 이동통신단말과 그 제어방법에 관한 것이다.
이동통신단말의 하드웨어, 소프트웨어 기술의 발전에 따라 단말의 기능이 기존의 음성호처리 및 단문전송 데이터 처리 이외에 게임, 일정관리, 계산기, 알람 등 이용자에게 유용한 부가기능이 탑재되고 있으며, 또한 이동통신단말에서 인터넷 접속이 가능해짐에 따라서 이용자는 언제 어디서나 인터넷에 접속하여 필요한 정보를 검색하고 컨텐츠 및 서비스를 이용할 수 있게 되었다.
종래에는 이동통신단말에서 상기한 다양한 부가서비스를 제공하기 위하여 응용어플리케이션 혹은 라이브러리를 다운로드 가능한 상태의 프로그램으로 제작하고, 그 제작된 응용어플리케이션이나 혹은 라이브러리를 이동통신단말의 플래시 메모리에 저장하였다.
이때 플래시 메모리에 저장되는 어플리케이션 및 라이브러리는 이동통신단말의 모뎀칩이 즉시 인식가능한 오퍼레이션 코드 형태로 이루어지며 플래시 메모리에 지정된 절대번지 영역에 저장되었다.
상기한 종래의 이동통신단말의 플랫폼이 어플리케이션 및 라이브러리를 실행하고자 할때에는 플래시 메모리에 저장된 데이터를 메모리의 램(RAM) 영역으로 로딩하여 실행하였는데, 근래에 어플리케이션 및 라이브러리의 용량이 커지면서 로딩시간이 길어졌으며, 이동통신 단말의 제한적인 메모리 리소스를 과다하게 점유하는 단점이 있었다.
또한 종래의 이동통신단말의 플랫폼은 상기 어플리케이션 및 라이브러리의 실행을 위해 램 영역으로 로딩하고 글로벌 변수를 지정하기 때문에 다중실행이 불가능하였으며, 힙(heap) 메모리(RAM)의 리로케이션 정보를 이용하여 데이터를 링크 하였기 때문에 실행속도가 현저히 저하되는 단점이 있었다.
따라서, 상기한 바와 같은 문제점들을 해결하고자 본 발명은 어플리케이션 및 라이브러리의 실행속도를 향상시키고 다중실행을 가능하게 하는 임베디드 플랫폼이 탑재된 이동통신단말과 그 제어방법을 제공하는데 그 목적이 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 임베디드 플랫폼이 탑재된 이동통신단말은, 무선인터넷 환경을 지원하는 단말의 CPU코어 및 호 처리를 수행하는 하드웨어 아키텍처로 구성된 모뎀칩 프로세서와, 운영체제 계층 모듈과, I/O장치를 구동하는 I/O모듈을 포함하여 구성되는 모바일 플랫폼이 탑재된 이동통신단말에 있어서, 임베디드 어플리케이션 및 라이브러리를 포함하는 임베디드 모듈과, 플랫폼의 동작에 따른 데이터를 저장하는 메모리와, API를 통해 상기 임베디드 모듈을 통한 상기 메모리로의 데이터 저장과 플랫폼 등록을 수행하는 임베디드 제어모듈을 포함하는 것을 특징으로 한다.
또한 본 발명에 따른 임베디드 플랫폼이 탑재된 이동통신단말의 제어방법은, 무선인터넷 환경을 지원하는 단말의 CPU코어 및 호 처리를 수행하는 하드웨어 아키텍처로 구성된 모뎀칩 프로세서와, 운영체제 계층 모듈과, 임베디드 어플리케이션 및 라이브러리를 포함하는 임베디드 모듈과, 플랫폼의 동작에 따른 데이터를 저장하는 메모리와, API를 통해 상기 임베디드 모듈을 통한 상기 메모리로의 데이터 저장과 플랫폼 등록을 수행하는 임베디드 제어모듈을 포함하는 임베디드 플랫폼이 탑재된 이동통신단말의 제어방법으로서, 상기 임베디드 모듈의 임베디드 어플리케이션을 실행하는 단계, 상기 임베디드제어모듈을 통하여 해당 API를 실행하는 단계, 상기 임베디드 어플리케이션의 실행에 따른 독립적 어플리케이션 메모리 영역을 상기 메모리에 할당하고 플랫폼에 등록하는 단계를 포함하는 것을 특징으로한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명하기로 한다.
도 1은 본 발명에 따른 이동통신단말의 플랫폼 구성을 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명에 따른 이동통신단말의 플랫폼은, 무선인터넷 환경을 지원하는 단말의 CPU코어 및 호 처리를 수행하는 하드웨어 아키텍처로 구성된 모뎀칩 프로세서(20)와, 운영체제(OS) 계층 모듈(30)을 포함한다.
또한, 이동통신단말의 플랫폼의 모뎀칩 프로세서(20)에는 키입력부(11), 사운드 출력부(12) 및 표시부(13)가 접속되는데, 상기 키입력부(11)는 사용자로부터의 키입력을 입력받아 상기 모뎀칩 프로세서(20)로 전송하며, 사운드 출력부(12)는 모뎀칩 프로세서(20)의 제어에 따라서 단말의 스피커를 통해 사운드를 출력하며, 표시부(13)는 단말의 작동정보를 포함하는 모든 시각적 표시를 수행한다.
또한 상기 플랫폼은 API를 통해 I/O장치(50)를 구동하는 I/O모듈(40)과, 임베디드 어플리케이션 및 라이브러리를 포함하는 임베디드 모듈(60)과, 플랫폼의 동작에 따른 데이터를 저장하는 메모리(80)와, API를 통해 상기 임베디드 모듈(60)을 통한 메모리(80)로의 데이터 저장과 플랫폼 등록을 수행하는 임베디드 제어모듈(70)을 포함한다.
전술한 상기한 모뎀칩 프로세서(20)는 운영체제 계층 모듈(30)과 접속되어 동작되는데, 상기 운영체제 계층 모듈(30)은 이동통신단말의 운영체제로서, 예를 들어 모뎀칩 프로세서를 통하여 운용되는 REX(Real Time Excution), PSOS(Pioneer Server OS)등의 운영체제가 될 수 있다.
상기 I/O모듈(40)은, I/O 인터페이스 계층모듈(43)과, 각 I/O장치(50)에 대한 함수를 작성하여 플랫폼에 등록하는 포팅(Porting)층인 플랫폼 적용 계층모듈(42) 및 복수의 I/O장치(50)를 공통 제어할 수 있도록 하는 API계층 모듈(41)을 포함하여 구성되며, I/O장치(50)의 형태에 따라 플랫폼에 등록된 해당 함수를 호출하여 I/O 장치(50)를 제어할 수 있도록 구성된다.
상기 API 계층모듈(41)은 소정의 프로세스를 위해 운영체제에 의해 호출되는 함수의 집합으로서, 플랫폼 적용 계층 모듈을 거쳐 모뎀칩 프로세서(20)에서 구동되는 API들이 있다.
상기 플랫폼 적용 계층 모듈(42)은 각 I/O장치(50)에 대한 함수를 작성하고 플랫폼에 등록하는 것으로, 제조사의 소프트웨어 또는 소프트웨어 블록을 플랫폼에 연결시키는 역할을 수행한다.
한편, 상기 임베디드 모듈(60)은 임베디드 어플리케이션 모듈(61)과 임베디드 라이브러리 모듈(62)을 포함한다. 그리고, 상기 임베디드 제어모듈(70)은 상기 임베디드 모듈(60)로부터의 프로그램 수행에 따라 메모리(8)를 제어하기 위한 API를 관리하며 모뎀칩프로세서(20)로 제공하는 임베디드 API계층 모듈(71)과, API실행에 따라 메모리(80)를 제어하는 메모리 인터페이스 계층모듈(73)과, 메모리(80)에 할당된 각 독립영역(Private Area)에 대한 정보를 플랫폼에 등록하는 포팅(Porting)층인 플랫폼 적용 계층모듈(72)을 포함한다.
상기 메모리(80)는 데이터를 저장하기 위한 것으로, 플랫폼의 동작에 따라 필요한 데이터 및 각종 라이브러리의 작동에 따라 생성되는 데이터를 저장관리하기 위한 것이다. 상기 메모리는 힙(heap) 메모리를 포함하며, 상기 힙(heap) 메모리는 어플리케이션 등의 프로세스가 사용할 수 있도록 미리 예약되어 있는 메인 메모리의 영역이며, 그 영역정보는 상기 임베디드 제어모듈(70)의 플랫폼 적용계층 모듈(72)에 의해 플랫폼에 등록된다.
이하에서는 상기한 구성을 포함하는 본 발명에 따른 이동통신단말 플랫폼의 동작을 설명하도록 한다.
전술한 바와 같이 본 발명에 따른 이동통신단말의 플랫폼은 이동통신단말에 각종 부가 기능을 부여하는 어플리케이션 및 동작에 필요한 각종 라이브러리를 임베디드 모듈을 통해 임베디드 형태로 이동통신단말에 제공된다. 어플리케이션 및 라이브러리가 임베디드 형태로 이동통신단말에 제공됨에 따라서 종래의 로딩에 따른 실행 대기시간을 최소화할 수 있다.
본 발명에 따른 이동통신단말의 플랫폼은 실행하고자 하는 어플리케이션 및/또는 라이브러리를 임베디드 모듈(60)로부터 직접 실행하고 각 어플리케이션 및 라이브러리가 이용하는 변수를 로컬 변수로 지정하고 그에 따라 생성되는 데이터를 메모리(80)의 램의 영역에 개별적으로 저장한다. 즉, 본 발명에 따른 플랫폼은 임베디드 제어모듈(70)을 통해 어플리케이션 및 라이브러리의 실행에 따른 변수를 로컬변수로 지정함으로써, 각 프로세스마다의 변수를 독립적으로 운용하며, 메모리(80)의 영역을 다중분할하여 상기 각 프로세스에 따라 생성되는 로컬변수의 각 데이터를 독립적인 메모리 영역(Private Area)에 저장관리함으로써, 어플리케이션 및 라이브러리를 충돌없이 다중 실행(멀티 인스턴스)시킬 수 있으며, 이를 위한 상세한 설명은 다음과 같다.
본 발명에 따른 이동통신단말의 플랫폼은, 멀티 인스턴스를 가능하게 할 수 있도록 각 인스턴스마다 별도의 메모리 공간(Private Area)을 할당제어하도록 메모리(80)를 제어한다. 즉, 임베디드 어플리케이션(Embedded Application) 및 임베디드 라이브러리(Embedded Library)에서는 전역변수/정적(Static)변수를 사용하지 못하도록 제한함과 동시에 임베디드 제어모듈(70)은 각 인스턴스마다 상기한 별도의 메모리 공간(Private Area)을 할당하고 상기 할당된 정보를 플랫폼에 등록하게 함으로써 해당 인스턴스 구동 시에는 플랫폼에 등록해놓은 메모리 공간(Private Area)에 해당하는 영역을 메모리(80)로부터 획득할 수 있도록 한다.
도 2는 본 발명에 따른 메모리 영역 할당을 설명하기 위한 블록도이다.
도 2를 참조하면, 임베디드 어플리케이션(#1)과 일반 어플리케이션(#2)이 실행되고, 각 어플리케이션(#1 및 #2)은 임베디드 라이브러리 모듈(62)의 임베디드 라이브러리(#1 내지 #3)를 실행시킬 경우, 상기 임베디드 라이브러리(#1 내지 #3)의 수행에 의해 상기 임베디드 제어모듈(70)은 각 인스턴스 마다 라이브러리 메모리 영역(Library Private Area)을 PA1 ~ PA4로 할당하고 플랫폼에 등록한다. 이때 임베디드 라이브러리(#2)는 어플리케이션(#1 및 #2)에 의해 실행되는데, 각 어플리케이션의 제어에 따른 인스턴스마다 서로 다른 라이브러리 메모리 영역(Library Private Area)인 PA2 및 PA3을 할당받는다.
이때 임베디드 어플리케이션(#1) 역시 임베디드 제어모듈(70)을 통해 별도의 어플리케이션 메모리 영역 PA5를 할당받는데, 이 역시 하나의 인스턴스당 하나의 어플리케이션 메모리 영역이 할당된다. 상기 어플리케이션(#2)는 임베디드가 아니므로 상기한 메모리 할당에 해당 사항이 없다.
전술한 각 메모리 영역(Private Area)에서는 로컬 변수가 이용되고, 각각은 상호 독립적으로 운용되며, 임베디드 제어 계층에 의해 플랫폼 등록등의 동작이 수행된다.
전술한 구현방법의 임베디드 어플리케이션의 구조체의 코딩 예는 다음과 같다.
struct _MyPrivateArea {
M_Int32 a;
M_Int32 b;
M_Char szTmpName[256];
...
} MyPrivateArea;
void startClet(M_Int32 argc, M_Char* argv)
{
M_Uint32 Id;
MyPrivateArea* pArea;
OEMC_knlCreateAppPrivateArea(sizeof(MyPrivateArea), &Id);
pArea = (MyPrivateArea*)MC_GETDPTR(Id);
pArea->a = 10;
pArea->b = 20;
또한 임베디드 라이브러리의 구조체의 코딩 예는 다음과 같다.
struct _MyPrivateArea {
M_Int32 a
M_Int32 b;
M_Char szTmpName[256];
...
} MyLibPrivateArea;
void DllA()
{
M_Char LibID = "0000100001"
M_Uint32 Id;
MyLibPrivateArea * pArea;
OEMC_knlCreateLibPrivateArea(MC_knlGetCurProgramID(), LibID, sizeof(MyLibPrivateArea), &Id);
pArea = (MyLibPrivateArea *)MC_GETDPTR(Id);
pArea->a = 10;
pArea->b = 20;
...
}
void DllB()
{
M_Uint32 Id;
MyLibPrivateArea* pArea;
OEMC_knlGetLibPrivateArea(MC_knlGetCurProgramID(), LibID, &Id);
pArea = (MyLibPrivateArea *)MC_GETDPTR(Id);
멀티 인스턴스를 지원하기 위해 추가되어야 할 API는 어플리케이션 메모리 영역 생성 API로서 OEMC_knlCreateAppPrivateArea 로 정의할 수 있는데, 상기 API에 따라서 현재 수행되고 있는 어플리케이션의 메모리 영역(Application Private Area)을 생성한다. 어플리케이션의 메모리 영역(Application Private Area)이란 전술한 바와 같이 현재 인스턴스(instance)화된 응용 프로그램에서 접근할 수 있도록 설정된 메모리 저장공간을 의미한다. 어플리케이션의 메모리 영역은 하나의 응용 프로그램 인스턴스 당 하나만 생성가능하며 응용 프로그램은 자신이 생성하지 않은 어플리케이션 메모리 영역에 접근할 수 없다.
이러한 상기 API를 통해 생성된 어플리케이션 메모리 영역은 해당 어플리케이션 종료 시 자동으로 메모리(80)에서 삭제되며, 임베디드 제어모듈(70)은 상기 삭제와 함께 플랫폼의 등록된 정보를 삭제한다.
전술한 API의 프로토타입은 다음과 같이 기술할 수 있다.
M_Int32 OEMC_knlCreateAppPrivateArea(M_Int32 areaSize, M_Uint32* areaID)
이때 매개 변수 areaSize는 생성할 어플리케이션 메모리 영역(Application Private Area)의 크기를 나타내며, 매개변수 areaID는 어플리케이션 메모리 영역(Application Private Area)에 해당하는 간접 버퍼 ID를 의미한다.
이때 상기한 API의 실행, 즉 함수의 실행에 따라서 반환 값이 생성되는데, 함수가 성공적으로 실행되는 경우와 실패할 경우로 나뉘어 진다. 이중 함수의 실행이 실패할 경우는 잘못된 매개변수(M_E_INVALID), 메모리 부족(M_E_NOMEMORY), 이미 사용중(M_E_INUSE) 및 임베디드 어플리케이션이 아닌 경우(M_E_ACCESS) 등으로 나눌 수 있다.
상기한 바에 따르면, 어플리케이션 메모리 영역은 하나의 응용 어플리케이션 인스턴스당 하나의 메모리 영역만 존재하며, 임베디드 형태의 어플리케이션에만 해당한다.
본 발명에 따른 임베디드 어플리케이션은 글로벌 변수인 전역변수나 정적 변수를 사용할 수 없으므로, 응용 프로그램 전반적으로 사용되는 전역적인 정보를 저장하기 위해 상기한 어플리케이션 메모리 영역을 생성하여 사용하게 된다. 일반 응용 프로그램에서 사용하는 전역변수를 임베디드 어플리케이션의 어플리케이션 메모리 영역을 이용해 시뮬레이션하기 위한 구조체의 예제코드는 다음과 같이 표현할 있다.
struct _MyPrivateArea {
M_Int32 a;
M_Int32 b;
M_Char szTmpName[256];
...
} MyPrivateArea;
void startClet(M_Int32 argc, M_Char* argv)
{
M_Uint32 Id;
MyPrivateArea* pArea;
OEMC_knlCreateAppPrivateArea(sizeof(MyPrivateArea), &Id);
pArea = (MyPrivateArea*)MC_GETDPTR(Id);
pArea->a = 10;
pArea->b = 20;
...
}
void handleCletEvent(int type, )
{
M_Uint32 Id;
MyPrivateArea* pArea;
OEMC_knlGetAppPrivateArea(&Id);
pArea = (MyPrivateArea*)MC_GETDPTR(Id);
MC_knlSprintk(pArea->szTmpName, "name[%d]", a);
...
}
현재 수행되고 있는 어플리케이션의 메모리 영역을 얻어오는 API는 어플리케이션 메모리 영역 획득 API로서 OEMC_knlGetAppPrivateArea로 정의할 수 있으며, 이에 대한 프로토타입은 M_Int32 OEMC_knlGetAppPrivateArea(M_Uint32* areaID)으로 정의할 수 있다.
이때 매개 변수 areaID는 어플리케이션 메모리 영역(Application Private Area)에 해당하는 간접 버퍼 ID를 의미한다. 이때 상기한 API의 실행, 즉 함수의 실행에 따라서 반환 값이 생성되는데, 함수가 성공적으로 실행되는 경우와 실패할 경우로 나뉘어 진다. 이중 함수의 실행이 실패할 경우는 잘못된 매개변수(M_E_INVALID), 어플리케이션 메모리 영역이 존재하지 않음(M_E_NOTEXIST), 임베디드 어플리케이션이 아닌 경우(M_E_ACCESS) 등의 실패 경우등으로 나눌 수 있다. 이 역시 마찬가지로 임베디드 어플리케이션에서만 이용할 수 있다.
한편, 현재 수행되고 있는 라이브러리의 메모리 영역(Library Private Area)을 생성하기 위한 API는 라이브러리 메모리 영역 생성 API로서 OEMC_knlCreateLibPrivateArea로 정의할 수 있는데, 상기 라이브러리 메모리 영역(Library Private Area)이란 현재 인스턴스화된 라이브러리에서 접근할 수 있도록 설정된 메모리 저장공간을 의미한다.
상기 라이브러리 메모리 영역(Library Private Area)은 하나의 라이브러리 인스턴스 당 하나만 생성 가능하며 각 라이브러리는 자신이 생성하지 않은 라이브러리 메모리 영역(Library Private Area)에 접근할 수 없다. 상기 함수를 통해 생성된 라이브러리 메모리 영역(Library Private Area)은 임베디드 제어모듈(70) 에 의해 해당 라이브러리 종료 시 자동으로 삭제된다.
상기한 라이브러리 메모리 영역을 생성하기 위한 API의 프로토타입은 M_Int32 OEMC_knlCreateLibPrivateArea(M_Int32 programID, M_Char* libName, M_Int32 areaSize, M_Uint32* areaID)으로 정의할 수 있다.
이때 상기 프로토타입의 매개 변수 programID는 라이브러리를 로드 한 프로그램 ID, libName는 라이브러리 메모리 영역(Library PrivateArea)을 생성할 라이브러리 이름(라이브러리를 로드할 때 사용되는 이름과 동일해야 함), areaSize는 생성할 라이브러리 메모리 영역(Library Private Area)의 크기, areaID는 라이브러리 메모리 영역(Library Private Area)에 해당하는 간접 버퍼 ID이다.
이때 상기한 API의 실행, 즉 함수의 실행에 따라서 반환 값이 생성되는데, 함수가 성공적으로 실행되는 경우와 실패할 경우로 나뉘어 진다. 함수의 실행이 실패할 경우는 잘못된 매개변수(M_E_INVALID), 메모리 부족(M_E_NOMEMORY), 이미 사용중(M_E_INUSE), programID가 해당 라이브러리를 로드 한 programID와 다른 경우, ID가 다른 경우(M_E_ACCESS), 또는 라이브러리 이름(libName)이 로드 될 때 사용된 이름과 다를 경우, 또는 임베디드 라이브러리 가 아닌 경우로 나눌 수 있다.
이때에도 라이브러리 메모리 영역(Library Private Area)은 하나의 라이브러리 인스턴스당 하나만 존재하며, 임베디드 라이브러리에서만 사용 가능하다.
상기한 바와 같이 라이브러리 메모리 영역(Library Private Area)은 임베디드 라이브러리에서 사용된다. 임베디드 라이브러리는 글로벌 변수인 전역변수나 정적 변수를 사용할 수 없으므로, 라이브러리 전반적으로 사용되는 전역적인 정보를 저장하기 위해 라이브러리 메모리 영역(Library Private Area)를 생성하여 사용하게 된다. 이에 따라 일반 라이브러리에서 사용하는 전역변수를 임베디드 라이브러리에서 라이브러리 메모리 영역(Library Private Area)을 이용해 시뮬레이션 하는 구조체의 예제코드는 다음과 같이 표현할 수 있다.
struct _MyPrivateArea {
M_Int32 a;
M_Int32 b;
M_Char szTmpName[256];
...
} MyLibPrivateArea;
void DllA()
{
M_Char LibID = "0000100001"
M_Uint32 Id;
MyLibPrivateArea* pArea;
OEMC_knlCreateLibPrivateArea(MC_knlGetCurProgramID(), LibID, sizeof(MyLibPrivateArea), &Id);
pArea = (MyLibPrivateArea *)MC_GETDPTR(Id);
pArea->a = 10;
pArea->b = 20;
...
}
void DllB()
{
M_Uint32 Id;
MyLibPrivateArea * pArea;
OEMC_knlGetLibPrivateArea(MC_knlGetCurProgramID(), LibID, &Id);
pArea = (MyLibPrivateArea *)MC_GETDPTR(Id);
MC_knlSprintk(pArea->szTmpName, "name[%d]", a);
...
}
이때 현재 수행되고 있는 응용 어플리케이션의 라이브러리 메모리 영역(Library Private Area)을 얻어오기 위한 API는 라이브러리 메모리 영역 획득 API로서 OEMC_knlGetLibPrivateArea으로 나타낼 수 있으며, 이에 대한 프로토 타입은 M_Int32 OEMC_knlGetLibPrivateArea(M_Int32 programID, M_Char* libName, M_Uint32* areaID)으로 표현할 수 있다.
이때 매개 변수 programID는 라이브러리를 로드한 프로그램 ID, libName은 라이브러리 메모리 영역(Library Private Area)을 생성할 라이브러리 이름(라이브러리를 로드 할 때 사용되는 이름과 동일해야 함), areaID는 라이브러리 메모리 영역(Library Private Area)에 해당하는 간접 버퍼 ID이다.
이때 상기한 API의 실행, 즉 함수의 실행에 따라서 반환 값이 생성되는데, 함수가 성공적으로 실행되는 경우와 실패할 경우로 나뉘어 진다. 함수의 실행이 실패할 경우는 잘못된 매개변수(M_E_INVALID), 라이브러리 메모리 영역이 존재하지 않음(M_E_NOTEXIST), programID가 해당 라이브러리를 로드 한 프로그램 ID와 다를 경우, 또는 libName이 로드 될 때 사용된 이름과 다를 경우, 또는 임베디드 라이브러리가 아닌 경우(M_E_ACCESS)로 나눌 수 있다.
이하에서는 본 발명에 따른 제어과정의 실시예를 설명하도록 한다.
도 3은 본 발명에 따른 임베디드 제어과정의 실시예를 설명하기 위한 흐름도이다.
도 3을 참조하면, 사용자가 키입력부(11)를 통해 명령을 입력하거나 혹은 소정의 프로그램에 의해 어플리케이션의 실행 명령이 접수되면, 운영체제계층모듈(30)은 상기 임베디드 모듈(60)을 제어하여 임베디드 어플리케이션 계층모듈(61)로부터 해당 임베디드 어플리케이션을 실행시킨다(S10). 이때 어플리케이션은 임베디드 형태이기 때문에 종래의 로딩과정을 통한 실행속도보다 빠르게 실행될 수 있다.
이에 따라서 메모리(80)에 별도의 영역을 할당하기 위해 임베디드 제어 계층(70)은 해당 API를 통해 메모리(80)에 독립적인 어플리케이션 메모리 영역을 할당(S20)하고 플랫폼에 등록한다(S30).
이때 플랫폼은 임베디드 어플리케이션(혹은 일반 어플리케이션)이 임베디드 라이브러리를 호출하는 지를 판단(S50)하고, 임베디드 라이브러리를 호출한다고 판단되면 임베디드 라이브러리 모듈(62)로부터 해당 임베디드 라이브러리를 실행시킨다(S60). 이때 라이브러리는 임베디드 형태이기 때문에 종래의 로딩과정을 통한 실행속도보다 빠르게 실행될수 있다.
이에 따라 임베디드 제어 계층(70)은 해당 API를 통해 메모리(80)에 독립적인 라이브러리 메모리 영역을 할당(S80)하고 플랫폼에 등록한다(S90).
상기한 과정은 임베디드 어플리케이션 및/또는 라이브러리의 각 인스턴스마다 수행되어 메모리(80)에 독립적인 영역이 할당되고 운용됨으로써, 멀티 인스턴스를 가능하게 한다.
상기한 바와 같이 본 발명에 따른 임베디드 플랫폼이 탑재된 이동통신단말과 그 제어방법에 의하면, 어플리케이션 및 라이브러리의 실행속도를 향상시키고 어플리케이션 및 라이브러리의 다중실행을 가능하게 하는 효과가 있다.
도 1은 본 발명의 실시예에 따른 모바일 플랫폼의 구성을 설명하기 위한 블록도,
도 2는 본 발명에 따른 멀티 인스턴스의 실시예를 설명하기 위한 블록도,
도 3은 본 발명에 따른 임베디드 플랫폼을 탑재된 이동통신단말의 제어방법의 실시예를 설명하기 위한 흐름도이다.
< 도면의 주요부분에 대한 간단한 설명 >
20:모뎀칩 프로세서 30:운영체제계층
40:I/O모듈 50:I/O장치
60:임베디드 모듈 70:임베디드 제어모듈
80:메모리

Claims (14)

  1. 무선인터넷 환경을 지원하는 단말의 CPU코어 및 호 처리를 수행하는 하드웨어 아키텍처로 구성된 모뎀칩 프로세서와, 운영체제 계층 모듈과, I/O장치를 구동하는 I/O모듈을 포함하여 구성되는 모바일 플랫폼이 탑재된 이동통신단말에 있어서,
    임베디드 어플리케이션 및 라이브러리를 포함하는 임베디드 모듈과,
    플랫폼의 동작에 따른 데이터를 저장하는 메모리와,
    API를 통해 상기 임베디드 모듈을 통한 상기 메모리로의 데이터 저장과플랫폼 등록을 수행하는 임베디드 제어모듈을 포함하는 것을 특징으로 하는 임베디드 플랫폼이 탑재된 이동통신단말.
  2. 제 1 항에 있어서,
    상기 임베디드 모듈은,
    어플리케이션을 임베디드 저장하는 임베디드 어플리케이션 모듈과,
    라이브러리를 임베디드 저장하는 임베디드 라이브러리 모듈을 포함하는 것을 특징으로 하는 임베디드 플랫폼이 탑재된 이동통신단말.
  3. 제 1 항에 있어서,
    상기 임베디드 제어모듈은,
    상기 임베디드 모듈로부터의 어플리케이션 및/또는 라이브러리 수행에 따라 상기 메모리를 제어하기 위한 API를 관리하며 상기 모뎀뎁칩프로세서로 제공하는 임베디드 API계층 모듈과,
    상기 API실행에 따라 상기 메모리를 제어하는 메모리 인터페이스 계층모듈과,
    상기 메모리에 할당된 각 독립영역에 대한 정보를 플랫폼에 등록하는 포팅층인 플랫폼 적용 계층모듈을 포함하는 것을 특징으로 하는 임베디드 플랫폼이 탑재된 이동통신단말.
  4. 제 3 항에 있어서,
    상기 임베디드 API계층모듈은,
    현재 수행되고 있는 임베디드 어플리케이션의 독립적인 메모리 영역을 상기 메모리에 생성하기 위한 어플리케이션 메모리 영역생성 API와,
    현재 수행되고 있는 임베디드 라이브러리의 독립럭인 메모리 영역을 상기 메모리에 생성하기 위한 라이브러리 메모리 영역 생성 API를 포함하는 것을 특징으로 하는 임베디드 플랫폼이 탑재된 이동통신단말.
  5. 제 4 항에 있어서,
    상기 어플리케이션 메모리 영역생성API및 라이브러리 메모리 영역 생성API는 로컬 변수를 이용하는 것을 특징으로 하는 임베디드 플랫폼이 탑재된 이동통신단말.
  6. 제 4 항에 있어서,
    상기 임베디드 API계층모듈은,
    현재 수행되고 있는 임베디드 어플리케이션의 어플리케이션 메모리 영역획득API와,
    현재 수행되고 있는 임베디드 라이브러리의 라이브러리 메모리 영역 획득API를 포함하는 것을 특징으로 하는 임베디드 플랫폼이 탑재된 이동통신단말.
  7. 제 4 항에있어서,
    상기 어플리케이션 메모리 영역생성 API는,
    생성할 어플리케이션 메모리 영역의 크기를 나타내는매개변수와, 어플리케이션 메모리 영역에 해당하는 간접 버퍼 ID를 나타내는 매개변수를 사용하는 것을 특징으로 하는 임베디드 플랫폼이 탑재된 이동통신단말.
  8. 제 4 항에있어서,
    상기 라이브러리 메모리 영역 생성API는,
    라이브러리를 로드 한 프로그램 ID와, 라이브러리 메모리 영역을 생성할 라이브러리 이름과, 생성할 라이브러리 메모리 영역의 크기와, 라이브러리 메모리 영역에 해당하는 간접 버퍼 ID를 매개변수로 이용하는 것을 특징으로 하는 임베디드 플랫폼이 탑재된 이동통신단말.
  9. 제 6 항에있어서,
    상기 어플리케이션 메모리 영역획득 API는, 어플리케이션 메모리 영역에 해당하는 간접 버퍼 ID를 나타내는 매개변수를 사용하는 것을 특징으로 하는 임베디드 플랫폼이 탑재된 이동통신단말.
  10. 제 6 항에 있어서,
    상기 라이브러리 메모리 영역 획득API는,
    라이브러리를 로드한 프로그램 ID와, 라이브러리 메모리 영역을 생성할 라이브러리 이름과, 라이브러리 메모리 영역에 해당하는 간접 버퍼 ID를 매개변수로 이용하는 것을 특징으로 하는 임베디드 플랫폼이 탑재된 이동통신단말.
  11. 제 8 항 또는 제 10 항에 있어서,
    상기 라이브러리 메모리 영역 생성 및 획득 API에서, 라이브러리 이름은 라이브러리 생성 및 로드시의 이름이 동일한 것을 특징으로 하는 임베디드 플랫폼이 탑재된 이동통신단말.
  12. 무선인터넷 환경을 지원하는 단말의 CPU코어 및 호 처리를 수행하는 하드웨어 아키텍처로 구성된 모뎀칩 프로세서와, 운영체제 계층 모듈과, 임베디드 어플리케이션 및 라이브러리를 포함하는 임베디드 모듈과, 플랫폼의 동작에 따른 데이터를 저장하는 메모리와, API를 통해 상기 임베디드 모듈을 통한 상기 메모리로의 데이터 저장과플랫폼 등록을 수행하는 임베디드 제어모듈을 포함하는 임베디드 플랫폼이 탑재된 이동통신단말의 제어방법으로서,
    상기 임베디드 모듈의 임베디드 어플리케이션을 실행하는 단계,
    상기 임베디드 제어모듈을 통하여 해당 API를 실행하는 단계,
    상기 임베디드 어플리케이션의 실행에 따른 독립적 어플리케이션 메모리 영역을 상기 메모리에 할당하고 플랫폼에 등록하는 단계를 포함하는 것을 특징으로 하는 임베디드 플랫폼이 탑재된 이동통신단말의 제어방법.
  13. 제 12 항에 있어서,
    상기 임베디드 플랫폼이 탑재된 이동통신단말의 제어방법은,
    임베디드 라이브러리의 실행여부를 판단하는 단계와,
    상기 판단결과 임베디드 라이브러리 실행이라고 판단되면 상기 임베디드 모듈을 통해 해당 임베디드 라이브러리를 실행하는 단계와,
    상기 임베디드 제어모듈을 통하여 해당 API를 실행하는 단계,
    상기 임베디드 라이브러리의 실행에 따른 독립적 라이브러리 메모리 영역을 상기 메모리에 할당하고 플랫폼에 등록하는 단계를 포함하는 것을 특징으로 하는 임베디드 플랫폼이 탑재된 이동통신단말의 제어방법.
  14. 제 12 항 또는 제 13 항에 있어서,
    상기 어플리케이션 메모리 영역 및 라이브러리 메모리 영역 할당은 인스턴스 별로 이루어지며 각각 로컬 변수를 이용하는 것을 특징으로 하는 임베디드 플랫폼이 탑재된 이동통신단말의 제어방법.
KR1020030062971A 2003-09-09 2003-09-09 임베디드 플랫폼이 탑재된 이동통신단말과 그 제어방법 KR100561679B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030062971A KR100561679B1 (ko) 2003-09-09 2003-09-09 임베디드 플랫폼이 탑재된 이동통신단말과 그 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030062971A KR100561679B1 (ko) 2003-09-09 2003-09-09 임베디드 플랫폼이 탑재된 이동통신단말과 그 제어방법

Publications (2)

Publication Number Publication Date
KR20050026572A true KR20050026572A (ko) 2005-03-15
KR100561679B1 KR100561679B1 (ko) 2006-03-15

Family

ID=37384290

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030062971A KR100561679B1 (ko) 2003-09-09 2003-09-09 임베디드 플랫폼이 탑재된 이동통신단말과 그 제어방법

Country Status (1)

Country Link
KR (1) KR100561679B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100593843B1 (ko) * 2004-02-11 2006-07-13 (주) 고미드 이동 통신 단말기용 응용 프로그램 운영 시스템

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101058932B1 (ko) 2009-03-09 2011-08-23 주식회사 케이티 플랫폼 액티베이터를 포함하는 모바일 플랫폼이 탑재된 이동통신단말 및 그 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100593843B1 (ko) * 2004-02-11 2006-07-13 (주) 고미드 이동 통신 단말기용 응용 프로그램 운영 시스템

Also Published As

Publication number Publication date
KR100561679B1 (ko) 2006-03-15

Similar Documents

Publication Publication Date Title
RU2486579C2 (ru) Устройство терминала, имеющее основанную на виртуальной машине (vm) структуру уровней для выполнения разнородных приложений
US7434215B2 (en) Mechanism for loading plugin classes at an appropriate location in the class loader hierarchy
WO2022199111A1 (zh) 应用程序中功能的实现方法、装置、电子设备和存储介质
CN111625293B (zh) 一种基于linux内核的终端双系统及其硬件访问管理方法
CN111223036B (zh) 一种gpu虚拟化共享方法、装置及电子设备和存储介质
CN108073423A (zh) 一种加速器加载方法、系统和加速器加载装置
US7426720B1 (en) System and method for dynamic preloading of classes through memory space cloning of a master runtime system process
CN111209122A (zh) 接口调用方法、装置、电子设备及存储介质
CN112000439A (zh) 一种实现云原生应用管理虚拟机的方法
CN112667228A (zh) 应用程序的构建方法、装置及计算机设备
CN113986402A (zh) 函数调用方法、装置、电子设备及存储介质
US20070220249A1 (en) Data structure and method for managing modules associated with a kernel
JP2005528849A (ja) ポータブルデバイスにおけるマルチメディアレンダリングのためのシステム
CN115421787A (zh) 指令执行方法、装置、设备、系统、程序产品及介质
CN114327087A (zh) 输入事件处理方法、装置、电子设备和存储介质
CN112316437B (zh) 一种资源切换方法、装置、电子设备及存储介质
KR100561679B1 (ko) 임베디드 플랫폼이 탑재된 이동통신단말과 그 제어방법
US7114153B2 (en) Method and apparatus for continuation-passing in a virtual machine
CN110751592A (zh) 图形资源转换方法、装置、电子设备及存储介质
CN114610446B (zh) 一种自动注入探针的方法、装置及系统
US9225818B2 (en) Mobile terminal
CN106775608B (zh) 独立系统进程的实现方法和装置
EP3783484A1 (en) Data processing method and computer device
CN107220101B (zh) 一种容器创建方法和装置
CN112131000B (zh) 一种插件应用程序的内存释放方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
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: 20130221

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140224

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150216

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160226

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190226

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20191216

Year of fee payment: 15