KR100748498B1 - 임베디드 시스템의 파일 읽기 방법 - Google Patents

임베디드 시스템의 파일 읽기 방법 Download PDF

Info

Publication number
KR100748498B1
KR100748498B1 KR1020010028447A KR20010028447A KR100748498B1 KR 100748498 B1 KR100748498 B1 KR 100748498B1 KR 1020010028447 A KR1020010028447 A KR 1020010028447A KR 20010028447 A KR20010028447 A KR 20010028447A KR 100748498 B1 KR100748498 B1 KR 100748498B1
Authority
KR
South Korea
Prior art keywords
file
pointer
size
len
ptr
Prior art date
Application number
KR1020010028447A
Other languages
English (en)
Other versions
KR20020089642A (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 KR1020010028447A priority Critical patent/KR100748498B1/ko
Publication of KR20020089642A publication Critical patent/KR20020089642A/ko
Application granted granted Critical
Publication of KR100748498B1 publication Critical patent/KR100748498B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes

Abstract

본 발명은 파일 시스템이 없는 임베디드 시스템상에서 구동되는 프로그램의 파일 읽기방법에 관한 것으로, 일반적으로 파일을 메모리에 로드(load)하고, 파일 입력 기능들을 메모리에서 읽도록 프로그램 소스 코드를 전반적으로 수정해 줘야 한다. 하지만, 파일 포인터(File pointer, fp)를 파라메터로 받아오거나 리턴(return)해야 하는 API(Application program interface)의 경우, 파일 포인터(fp)의 고려없이 수정하게 되면 프로그램의 정상적인 동작이 수행되지 않는 문제점이 있었다. 따라서, 본 발명은 파일의 시작 포인터를 가리키는 필드(_base)와, 그 파일의 전체 사이즈(size)를 나타내는 필드(_cnt)와, 그 파일의 다음 시작 포인터를 가리키는 필드(_ptr)를 메모리상의 주소로 설정하여 파일을 오픈(open)하고, 포인터(_ptr)가 가리키는 곳(data)에 소정 크기(len=size1*size2)의 블록을 읽어와서 저장하고, 그 크기(len) 만큼씩 포인터(_ptr)를 증가시키며 파일을 리드(fread)하도록 소스코드를 수정하고, 파일을 클로즈(Close) 시키도록 이루어짐으로써, 파일 읽기 코드가 많은 소프트웨어를 파일 시스템이 없는 임베디드 시스템에 포팅할 경우, 전반적인 소프트웨어의 동작에 지장을 주지 않으면서 파일을 읽는것과 같은 효과가 있다.

Description

임베디드 시스템의 파일 읽기 방법{FILE READING METHOD FOR EMBEDDED SYSTEM}
도 1은 파일 시스템이 구비되어 있는 임베디드 시스템의 개념적 구성을 보인 예시도.
도 2는 파일 입/출력 기능에 공통적으로 쓰이는 파일 구조를 보인 예시도.
도 3은 본 발명을 적용하기 위해 변환된 파일의 포맷을 보인 예시도.
도 4는 파일 시스템이 구비되어 있지 않은 임베디드 시스템의 개념적 구성을 보인 예시도.
본 발명은 임베디드 시스템의 파일 읽기 방법에 관한 것으로, 특히 파일 시스템이 없는 임베디드 시스템(Embedded system)에서 파일 포인터를 조작하여 메모리에 로드된 파일을 읽을 수 있도록 하는 임베디드 시스템의 파일 읽기 방법에 관한 것이다.
파일 시스템(File system)이란, 전체적인 기억장치 관리 시스템의 한 부분으로서, 주로 보조 기억 장치 상의 파일을 관리하는 시스템을 의미하며, 여기에는 MS-Dos 파일 시스템, 유닉스 파일 시스템, 네트워크 파일 시스템 등 컴퓨터 시스템에 따라 여러 가지가 있다.
보다 구체적으로 파일시스템(file system)이란, 운영체제가 파티션이나 디스크에 파일들이 연속되게 하기 위해 사용하는 방법 또는 자료 구조를 의미하는 것으로, 파일을 저장하는 데 사용되는 파티션이나 디스크를 가리킬 때나, 파일시스템의 형식을 가리킬 때 사용되기도 한다.
디스크나 파티션이 포함하고 있는 파일시스템의 차이는 중요한데, 약간의 프로그램들(합리적으로 충분히 파일시스템을 만드는 프로그램을 포함해서)은 디스크나 파티션의 원시 섹터를 직접 조정한다.
대부분의 프로그램들은 파일시스템 위에서 작동하며, 파일시스템이 없는(혹은 다른 형식의 파일시스템이 있는) 파티션에서는 작동하지 않는다.
파티션이나 디스크가 파일시스템으로서 사용될 수 있게 하기 위해서는 초기화되어야 하며, 파일정보 기록을 위한 자료구조를 디스크에 만들어야 한다.
한편, 어떤 소프트웨어를 임베디드 시스템에 포팅(porting) 하려는 경우, 소프트웨어 내용에는 파일을 리드(read)하는 부분이 포함될 경우가 있다.
그런데, 임베디드 시스템에는 파일 시스템(일종의 하드디스크와 같은 보조 기억장치)이 있는 경우도 있고 그렇지 않은 경우도 있다.
따라서, 만약 도1에 도시된 바와 같이, 파일 시스템이 있는 경우에는 소프트웨어 내용에 파일을 리드하는 부분이 있더라도 별다른 처리를 필요로 하지 않지만, 파일 시스템이 없는 경우에는 파일을 메모리에 로드(load)하고, 파일 입력 기능들을 메모리에서 읽도록 프로그램 소스코드를 전반적으로 수정해 줘야 한다.
그러나, 프로그램 내에 파일 포인터(File pointer, fp)를 파라메터로 받아오거나 리턴(return)해야 하는 API가 있는 경우, 파일 포인터(fp)의 고려없이 수정하게 되면 프로그램의 정상적인 동작을 기대할 수 없게 된다.
왜냐하면, 해당 API가 프로그램 내에서 언제, 어떻게 호출될지 모르기 때문이다. 이런 연유로 파일을 리드하는 소스코드를 어떻게 바꾸는가 하는 문제는 매우 중요하다.
따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 창출한 것으로, 파일 시스템이 없는 임베디드 시스템(Embedded system)에서 파일 포인터를 사용해 메모리에 로드된 파일을 읽을 수 있도록 하는 임베디드 시스템의 파일 읽기 방법을 제공함에 그 목적이 있다.
이와 같은 목적을 달성하기 위한 본 발명은, 파일읽는 내용이 포함된 API를 호출하는 함수호출자(caller)에서는, 이 API를 호출함으로서 실제로 파일시스템상의 파일을 읽는것과 똑같은 효과를 얻을 수 있는 것을 특징으로 한다.
또한, 본 발명은 이 API에 파라메터 형식으로 넘어가는 파일 포인터 때문에 같은 파일 포인터를 쓰는 다른 API에게 오동작을 일으키지 않도록 하는 것을 특징으로 한다
이하, 본 발명에 따른 일실시예를 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
본 발명에서는 파일 시스템이 구비되지 않은 임베디드 시스템에서 파일이 16진수 형태로 메모리상에 로드되는 경우, 파일 포인터를 조작하여 마치 파일 시스템에서 파일을 읽는 것과 같은 효과를 나타낸다.
도2는 파일 입/출력 기능에 공통적으로 쓰이는 파일 구조를 보인 예시도로서, 로드(load)하려는 파일이 'Status_bar.gif'라고 할 경우를 예로 들어 살펴보기로 한다.
도3과 같이 메모리에는 부호없는 8비트 문자형(unsigned char type)으로 16진수(hexadecimal) 형태로 저장하며, 전체 길이는 32비트 정수형(long type)으로 저장한다.
상기와 같이 메모리에 로드할 파일의 혈태는 동종 업계에 종사하는 엔지니어 의 경우, 간단한 변환 프로그램을 작성하여 쉽게 변환이 가능하므로 포맷 변환에 관한 구체적인 설명은 생략하기로 한다.
상기와 같이 파일(Status_bar.gif)이 파일 시스템이 아닌 메모리 상에 로드되면, 각 파일 입/출력 기능들은 다음 표1과 같이 파일에 관련된 소스 코드를 약간 수정하는 것에 의해, 메모리를 파일 시스템으로 인식하게 하여 프로그램 소스의 전반적인 수정없이도 동작이 가능하게 한다.
용도 원래 함수 발명 코드
File 열기 fp=fopen(status_bar.gif,"r"); fp->_ptr=status_bar; fp->_cnt=status_bar_size; fp->_base=status_bar;
File 닫기 fclose(fp); 처리 안함
File 읽기 fread(data,size1,size2,fp); if(status_bar_size!=0){ len=size1*size2; memcpy(data,fp->_ptr,len); fp->_ptr+=len; if(len<fp->_cnt) count=len; else count=fp->_cnt; fp->_cnt-=count; }
File 크기 status_bar_size;
여기서, '_ptr'은 파일에서 다음 시작 포인터를 나타내고, '_cnt'는 전체 파일 크기를 나타내고, '_base'는 그 파일의 시작 포인터를 나타내는 것으로 '_ptr'과는 달리 시작 포인터가 변하지 않는다는 것이다.
가령, 다음과 같은 함수가 있다고 가정한다.
File_read(FILE*fp)
{
fread(data,size1,size2,fp);
}
상기 함수에서 파일을 읽는 'fread' 대신에 메모리에 로드된 파일을 읽는 일반적인 코드를 적용한다면, 파라메터 'fp'에 아무런 변화가 없으므로 소프트웨어 기능 전반에 영향을 미치게 된다.
그러나, 본 발명에 의한 방식을 이용하여 파일 입/출력 함수의 소스 코드를 수정하면, 파일 포인터 'fp'에 조작이 가해지기 때문에 소프트웨어는 정상으로 동작하여 원하는 결과를 출력하게 되는 것이다.
즉, 전체적인 임베디드 시스템은 파일 입/출력 API(Application Program Interface)를 이용하여 파일 시스템에서 파일을 읽어오지만, 도4에 도시된 바와 같이 API를 본 발명에 의한 코드로 수정해 줌으로써, 전반적인 시스템의 동작을 저해하지 않으면서 파일 시스템이 있는 것과 같은 동작을 수행하게 되는 것이다.
이상에서 설명한 바와 같이 본 발명 임베디드 시스템의 파일 읽기 방법은 상기와 같은 파일 읽기 코드가 많은 소프트웨어를 파일 시스템이 없는 임베디드 시스템에 포팅할 경우, 전반적인 소프트웨어의 동작에 지장을 주지 않으면서 파일을 읽는것과 같은 효과가 있다.

Claims (2)

  1. 파일 시스템이 없는 임베디드 시스템에서 메모리에 저장된 임의의 파일을 읽음에 있어서, 그 파일의 시작 포인터를 가리키는 필드(_base)와, 그 파일의 전체 사이즈(size)를 나타내는 필드(_cnt)와, 그 파일의 다음 시작 포인터를 가리키는 필드(_ptr)를 메모리상의 주소로 설정하여 파일을 오픈(open)하고, 포인터(_ptr)가 가리키는 곳(data)에 소정 크기(len=size1*size2)의 블록을 읽어와서 저장하고, 그 크기(len) 만큼씩 포인터(_ptr)를 증가시키며 파일을 리드(fread)하도록 소스코드를 수정하고, 파일을 클로즈(Close) 시키도록 이루어진 것을 특징으로 하는 임베디드 시스템의 파일 읽기 방법.
  2. 제1항에 있어서, 상기 파일 리드(fread)시의 파일 크기(_cnt)는, 블록 크기(len)가 파일 사이즈(_cnt)보다 작을 경우, 그 블록 크기(len)를 임의의 값(count)으로 설정하여 그 설정값(count) 만큼씩 파일 사이즈(_cnt)를 감소시키고, 파일 사이즈(_cnt)가 블록 크기(len)보다 작을 경우에는, 그 파일 사이즈(_cnt)를 임의의 값(count)으로 설정하여 그 설정값(count) 만큼씩 파일 사이즈(_cnt)를 감소시키는 것을 특징으로 하는 임베디드 시스템의 파일 읽기 방법.
KR1020010028447A 2001-05-23 2001-05-23 임베디드 시스템의 파일 읽기 방법 KR100748498B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010028447A KR100748498B1 (ko) 2001-05-23 2001-05-23 임베디드 시스템의 파일 읽기 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010028447A KR100748498B1 (ko) 2001-05-23 2001-05-23 임베디드 시스템의 파일 읽기 방법

Publications (2)

Publication Number Publication Date
KR20020089642A KR20020089642A (ko) 2002-11-30
KR100748498B1 true KR100748498B1 (ko) 2007-08-13

Family

ID=27706160

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010028447A KR100748498B1 (ko) 2001-05-23 2001-05-23 임베디드 시스템의 파일 읽기 방법

Country Status (1)

Country Link
KR (1) KR100748498B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940006034A (ko) * 1992-07-06 1994-03-23 윌리암 에이취. 뉴콤 파일의 내부구조를 구성하기 위한 방법 및 체제
KR960025212A (ko) * 1994-12-26 1996-07-20 가시오 가즈오 데이터화일의 갱신처리 장치
JPH101994A (ja) * 1996-06-17 1998-01-06 Naoya Suzuki 腰掛便器での男子用排尿介助器
JPH101996A (ja) * 1996-06-18 1998-01-06 Hitachi Home Tec Ltd 衛生洗浄器の火傷防止装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940006034A (ko) * 1992-07-06 1994-03-23 윌리암 에이취. 뉴콤 파일의 내부구조를 구성하기 위한 방법 및 체제
KR960025212A (ko) * 1994-12-26 1996-07-20 가시오 가즈오 데이터화일의 갱신처리 장치
JPH101994A (ja) * 1996-06-17 1998-01-06 Naoya Suzuki 腰掛便器での男子用排尿介助器
JPH101996A (ja) * 1996-06-18 1998-01-06 Hitachi Home Tec Ltd 衛生洗浄器の火傷防止装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
10-1994-0006034
10-1996-0025212

Also Published As

Publication number Publication date
KR20020089642A (ko) 2002-11-30

Similar Documents

Publication Publication Date Title
US7461288B2 (en) Computer apparatus and process controlling method
JP2010511926A (ja) 漸進・透過的ファイル更新
JP2009501369A (ja) カーネル・モード・リダイレクションを使用したコード実行パスの変更
KR100748498B1 (ko) 임베디드 시스템의 파일 읽기 방법
CN101441551B (zh) 计算机、外存储器以及处理外存储器中数据信息的方法
US6694393B1 (en) Method and apparatus for compressing information for use in embedded systems
Feder The UNIX system: The evolution of UNIX system performance
JP2555920B2 (ja) オンラインリアルタイム処理装置
JP2685532B2 (ja) メモリダンプ方式
JP2004078604A (ja) 情報処理方法とその方法を実現するプログラム及び記録媒体
KR100319755B1 (ko) 내장형 자바가상머신을 위한 바이트코드 압축 방법
JP2003256215A (ja) プログラム変換方法、これを用いたデータ処理装置及びプログラム
Wichmann A modular operating system.
CN109460640A (zh) 一种Java程序保护方法、装置、设备及可读存储介质
KR100388612B1 (ko) 교환 시스템에서의 패키징 압축 방법
JP2990609B2 (ja) 計算機システム
US7584480B1 (en) Method of monitoring multiple computer system calls using one routine and non-executable configuration file
KR920014051A (ko) 전전자 교환기의 dbms에서의 데이타 베이스 백업 및 회복 하는 방법
Corsini et al. The implementation of abstract objects in a capability based addressing architecture
JPS6417128A (en) Dynamic arrangement system for domain area of virtual computer
KR100697635B1 (ko) 자바가상머신에서 배열 접근을 위한 통합 바이트 코드를 기록한 기록매체, 통합 바이트 코드 수행방법 및 매핑 방법
US20040064462A1 (en) File system for storing multiple files as a single compressed file
GB2317972A (en) Supplementing or replacing data in a ROM
KR100260086B1 (ko) 전전자 교환기의 파일 정보 출력 방법
KR20010003246A (ko) 홈 위치 등록기에서의 공유 메모리를 이용한 특징 코드 관리 방법

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110620

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20120727

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee