KR100506316B1 - Interrupt handling of micro firmware loader on IC bus - Google Patents

Interrupt handling of micro firmware loader on IC bus Download PDF

Info

Publication number
KR100506316B1
KR100506316B1 KR10-1998-0025476A KR19980025476A KR100506316B1 KR 100506316 B1 KR100506316 B1 KR 100506316B1 KR 19980025476 A KR19980025476 A KR 19980025476A KR 100506316 B1 KR100506316 B1 KR 100506316B1
Authority
KR
South Korea
Prior art keywords
interrupt
module
bus
firmware
loader
Prior art date
Application number
KR10-1998-0025476A
Other languages
Korean (ko)
Other versions
KR20000004088A (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 KR10-1998-0025476A priority Critical patent/KR100506316B1/en
Publication of KR20000004088A publication Critical patent/KR20000004088A/en
Application granted granted Critical
Publication of KR100506316B1 publication Critical patent/KR100506316B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/327Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

I2C 버스상의 마이크로 펌웨어 로더의 인터럽트 처리 방법에 대하여 개시한다. 본 방법은, 제한된 롬, 램의 환경에서 펌웨어 다운로드를 수행하기 위해, 타이머 인터럽트 처리를 수행하는 단계,I2C 버스 인터럽트 처리를 수행하는 단계 및 직렬 인터페이스 관련 인터럽트 처리를 수행하는 단계를 구비하여 이루어진다.An interrupt processing method of a micro firmware loader on an I 2 C bus is described. The method includes performing timer interrupt processing, performing I 2 C bus interrupt processing, and performing serial interface related interrupt processing to perform firmware download in a limited ROM, RAM environment. .

Description

아이아이씨 버스상의 마이크로 펌웨어 로더의 인터럽트 처리 방법Interrupt handling of micro firmware loader on IC bus

본 발명은,I2C 버스상의 마이크로 펌웨어 로더의 인터럽트 처리 방법에 관한 것으로서, 특히 펌웨어 다운로드 전용회로 없이 상용 부품을 제어하는 펌웨어만으로 다운로드 과정에서 발생될 수 있는 인터럽트 관련 문제를 제거하는, 고속 직렬 버스상의 마이크로 제어기 펌웨어 로더의 인터럽트 문제 해결을 위한 메모리 저장 방법에 관한 것이다.The present invention relates to an interrupt processing method of a micro firmware loader on an I 2 C bus, in particular, a high-speed serial bus that eliminates interrupt-related problems that may occur during the download process with only firmware controlling commercial components without a firmware download dedicated circuit. A memory storage method for solving an interrupt problem of a microcontroller firmware loader on a computer.

종래의 펌웨어 다운로드중의 인터럽트 처리 방법은 미국 특허 제 4,910,666호에 개시되어 있는 "Apparatus for loading and verifying a control memory of a central subsystem"에 개시되어 있다. 상기 방법은 데이터 처리 시스템의 주 보조시스템이 주 보조 시스템을 제어할 펌웨어를 로드 할 수 있는 쓰기 가능한 제어 메모리를 포함하여 이루어진다. 상기 주 보조 시스템 로직은 제어 메모리에 로드하고 제어 메모리 펌웨어가 정확히 로드 되었는가를 검증하는 시스템 관리기의 명령에 대하여 응답하는 동작을 한다.Conventional interrupt handling during firmware download is described in "Apparatus for loading and verifying a control memory of a central subsystem", disclosed in US Pat. No. 4,910,666. The method comprises a writable control memory in which the main auxiliary system of the data processing system can load firmware to control the main auxiliary system. The main auxiliary system logic loads into the control memory and responds to commands from the system manager to verify that the control memory firmware has been loaded correctly.

다른 종래 기술은 미국 특허 제 5,293,492에 개시되어 있는 "Data processing system capable of storing firmware data in control memories of an input-output processor with reduced hardware"이다. 상기 방법은 메모리 장치와 입출력 장치간에 데이터 통로와 첫 번째에서 N번째까지의 펌웨어 데이터를 유지하기 위한 유지 장치를 갖는 데이터 처리 시스템으로, 펌웨어 로드 명령에 대하여 유지 장치로부터 첫 번째부터 N번째까지의 펌웨어 데이터를 읽는 동작을 한다.Another prior art is "Data processing system capable of storing firmware data in control memories of an input-output processor with reduced hardware", disclosed in US Pat. No. 5,293,492. The method is a data processing system having a data path between a memory device and an input / output device and a holding device for holding the first to Nth firmware data, wherein the first to Nth firmware from the holding device for the firmware load command is provided. Read data.

또 다른 종래 기술은 미국 특허 제 5,467,286에 개시되어 있는 "Metering unit with downloadable firmware"이다. 상기 방법은 펌웨어가 계측 유니트에 다운로드 되는 구조로 되어 있다. 상기 계측 유니트는 주 기능 펌웨어를 저장하기 위한 처음 구획과 부트(Boot) 코드를 저장하기 위한 두 번째 구획을 갖는 EEPROM(Electrically Erasable and Programmable Read Only Memory)을 갖춘다. 부트 코드 구획은 계측 유니트를 재설정하기 위한 재설정 부분과 외부의 펌웨어를 첫 번째 구획으로 다운로드하기 위한 펌웨어 업데이트 구획을 갖는다.Another prior art is the "Metering unit with downloadable firmware" disclosed in US Pat. No. 5,467,286. The method has a structure in which firmware is downloaded to the measurement unit. The measurement unit is equipped with an EEPROM (Electrically Erasable and Programmable Read Only Memory) having a first compartment for storing the main function firmware and a second compartment for storing the boot code. The boot code section has a reset section for resetting the measurement unit and a firmware update section for downloading external firmware to the first section.

그러나 예시된 종래 방법들은 펌웨어를 로드하기 위한 전용 회로를 구성해야 사용하려는 회로의 펌웨어를 다운로드 할 수 있다. 전용 회로 없이 펌웨어를 다운도르할 경우 다운로드 받는 프로그램의 크기가 변경되어 인터럽트 관리자의 주소번지가 변경되면 다운로드 도중 인터럽트가 발생할 때 해당 인터럽트 관리자를 찾아가지 못하므로 오류가 발생하는 문제가 있다.However, the illustrated conventional methods must configure a dedicated circuit for loading the firmware so that the firmware of the circuit to be used can be downloaded. If the firmware is downloaded without a dedicated circuit, if the size of the download program is changed and the address of the interrupt manager is changed, an error occurs because the interrupt manager cannot be found when an interrupt occurs during the download.

따라서 본 발명은 상기한 바와 같은 문제점을 해결하기 위하여 창안된 것으로서,I2C 버스상의 마이크로 펌웨어 로더의 인터럽트 처리 방법을 제공하는 것을 목적으로 한다.Accordingly, an object of the present invention is to provide a method for handling interrupts of a micro firmware loader on an I2C bus.

본 발명의 또다른 목적과 장점은 아래의 발명의 상세한 설명을 읽고 아래의 도면을 참조하면 보다 명백해질 것이다.Further objects and advantages of the present invention will become more apparent from the following detailed description of the invention and the accompanying drawings.

상기와 같은 목적을 달성하기 위하여 본 발명에 따른,I2C 버스상의 마이크로 펌웨어 로더의 인터럽트 처리 방법의 바람직한 실시예는, 제한된 롬, 램의 환경에서 펌웨어 다운로드를 수행하기 위해,In order to achieve the above object, according to the present invention, a preferred embodiment of the interrupt processing method of the micro firmware loader on the I2C bus, in order to perform the firmware download in a limited ROM, RAM environment,

타이머 인터럽트 처리를 수행하는 단계;Performing timer interrupt processing;

I2C 버스 인터럽트 처리를 수행하는 단계; 및Performing I 2 C bus interrupt processing; And

직렬 인터페이스 관련 인터럽트 처리를 수행하는 단계를 구비하여 이루어진다.And performing interrupt processing related to the serial interface.

본 발명에 있어서, 상기 램 주소의 최하위 영역에는 인터럽트 서비스 관련 모듈용 램 영역을 상주하게 하고, 그 다음에 초기화용 램 영역과 회로 제어용 램영역, 그리고 버스 제어 관련 모듈용 램 영역을 상주하게 구성하는 것이 바람직하며,In the present invention, the RAM region for the interrupt service-related module resides in the lowest region of the RAM address, and then the RAM region for initialization, the circuit control RAM region, and the RAM region for the bus control-related module resides. Is preferred,

로더용 램 영역은 초기화용 램과 회로제어용 램영역을 중첩되게 구성하는 것이 바람직하며,The loader RAM area preferably includes an initialization RAM and a circuit control RAM area overlapping each other.

초기화 동작이 끝나면 선행된 다운로드에서 지정한 주소의 프로그램 모듈이 동작하는 것이 바람직하며,After the initialization operation, it is preferable that the program module at the address specified in the previous download operates.

회로 제어 관련 모듈의 동작중에 펌웨어 다운로드 명령을 받으면, 펌웨어 로더가 동작하는 것이 바람직하며,When the firmware download command is received during the operation of the circuit control module, the firmware loader is preferably operated.

인터럽트 서비스 관련 모듈을 메모리의 최하위 영역에 저장시키는 단계; 및Storing an interrupt service related module in a lowermost area of the memory; And

정확한 인터럽트 처리를 위해 이후에 위치하는 모듈의 변경에 관계없이 동일한 주소를 유지시키는 단계를 더 포함하는 것이 바람직하다.It is preferable to further include maintaining the same address regardless of a change of a module located later for correct interrupt handling.

하기 설명에서 본 발명의 바람직한 실시예에 따른 고속 직렬 버스상의 마이크로 제어기 펌웨어 로더의 인터럽트 문제 해결을 위한 메모리 저장 방법이 첨부된 도면을 참조로, 많은 특정 상세들이 본 발명의 보다 전반적인 이해를 제공하기 위해 나타나 있다. 그러나, 당해 기술분야에 숙련된 자들에게 있어서는 본 발명이 이러한 상세한 항목들이 없이도 상기한 본 발명의 기술적 사상에 의해 충분히 실시될 수 있다는 것이 명백할 것이다.In the following description, with reference to the accompanying drawings, a memory storage method for solving an interrupt problem of a microcontroller firmware loader on a high speed serial bus according to a preferred embodiment of the present invention, many specific details are provided to provide a more comprehensive understanding of the present invention. Is shown. However, it will be apparent to those skilled in the art that the present invention can be sufficiently implemented by the above-described technical spirit of the present invention without these detailed items.

도 1 은 본 발명에 의한 메모리 구성도이다. 상기 도면을 참고로 본 발명을 설명하면, 펌웨어 다운로드 프로그램은 초기화 관련 모듈(110), 고속 직렬 버스 제어 관련 모듈(130), 로더(Loader : 140) 관련 모듈, 회로 제어 관련 모듈(120)로 구성된다. 상기 모듈들은 서로 다른 영역에 상주시켜 다른 모듈의 변경에 무관하게 구성된다. 로더가 동작할 때 초기화와 회로 제어 관련 모듈은 동작되지 않으므로 로더용 RAM(Random Access Memory) 영역은 초기화용 RAM과 회로 제어용 RAM 영역을 중첩되게 구성한다. 상기 초기화 RAM을 리셋하는 초기화 동작이 끝나면 선행된 다운로드에서 지정한 주소의 프로그램 모듈이 동작되게 구성한다. 회로 제어 관련 모듈 동작 중에 펌웨어 다운로드 명령을 받으면 펌웨어 로더가 동작되며, 로더 동작이 완료되면 초기화 관련 모듈이 동작되도록 한다.1 is a memory configuration diagram according to the present invention. Referring to the present invention with reference to the drawings, the firmware download program is composed of an initialization related module 110, a high speed serial bus control related module 130, a loader (Loader: 140) related module, a circuit control related module 120 do. The modules reside in different regions and are configured regardless of changes in other modules. Since the initialization and circuit control related modules do not operate when the loader operates, the loader random access memory (RAM) region overlaps the initialization RAM and the circuit control RAM region. After the initialization operation of resetting the initialization RAM is completed, the program module at the address specified in the preceding download is operated. When the firmware download command is received during the operation of the circuit control related module, the firmware loader is operated. When the loader operation is completed, the initialization related module is operated.

위와 같은 프로그램 구성으로 프로그램을 작성 할 경우 인터럽트에 관련된 처리를 하는 부분이 각 모듈별로 나누어지는데 고속 직렬 버스 인터럽트 관련 루틴은 버스 제어 관련 모듈 안에, 타이머 인터럽트 관련 루틴은 초기화 관련 모듈 안에, 직렬 인터페이스 관련 인터럽트 루틴은 회로 제어 관련 모듈 등에 있게 된다. 다운로드 프로그램 초기 설계시에 버스 제어 관련 모듈을 포함한 로더 관련 모듈과 인터럽트 벡터 테이블 영역은 마이크로 프로세서 EEPROM(Electrically Erasable and Programmable Read Only Memory)에 한번 프로그래밍 하면 그 이후부터는 변경되지 않도록 했기 때문에 상기한 바와 같이 모듈을 배치하면 초기화 관련 모듈과 회로 제어 관련모듈이 변경되었을 경우 타이머 인터럽트 관련 루틴과 직렬 인터페이스 관련 인터럽트 루틴이 위치하게 되는 영역의 주소도 함께 변경될 수 있게 된다.When writing a program with the above program configuration, the parts related to interrupts are divided into modules. High-speed serial bus interrupt-related routines are in the bus control module, timer interrupt-related routines are in the initialization module, and serial interface-related interrupts. The routine may be in a circuit control related module. In the initial design of the download program, the loader-related module and the interrupt vector table area including the bus control-related module were programmed once in the microprocessor EEPROM (Electrically Erasable and Programmable Read Only Memory). If the initialization module and the circuit control related module are changed, the address of the area where the timer interrupt related routine and the serial interface related interrupt routine are located can be changed together.

인터럽트 벡터 테이블 영역은 인터럽트가 발생되었을 경우 발생된 인터럽트에 대한 처리 및 해당 인터럽트와 관련된 작업을 수행하게 되는 인터럽트 관리자 루틴의 주소가 저장되는 영역으로 그 영역의 주소가 보통 해당 마이크로프로세서 설계시부터 고정되어 있기 때문에 다른 주소의 영역으로 배치시킬 수 없는 부분이다. 이 영역이 일반적으로 많이 쓰이는 x8086 계열의 PC(Personal Computer)처럼 OS(Operating System) 영역과 함께 ROM(Read Only Memory)이 아닌 RAM(Random Access Memory)에 위치한다면 인터럽트 벡터 테이블(Interrupt Vector Table) 내에 저장되어 있는 인터럽트 관리자(Interrupt Handler) 루틴(Routine)의 주소를 변경시켜 기존 인터럽트 관리자 루틴이 아닌 다른 루틴으로 하여금 해당 인터럽트의 처리를 실시하도록 할 수 있다.The interrupt vector table area stores the address of the interrupt manager routine that handles interrupts and performs tasks related to interrupts when an interrupt occurs. The address of the interrupt vector table is usually fixed from the microprocessor design. This is the part that cannot be placed in the area of another address. If this area is located in Random Access Memory (RAM) rather than Read Only Memory (ROM) with an Operating System (OS) area, such as the popular x8086 series of Personal Computers (PCs), it is placed in an Interrupt Vector Table. By changing the address of a stored interrupt handler routine, a routine other than the existing interrupt manager routine may execute the interrupt.

그러나 마이크로 프로세서에서는 ROM 영역에 인터럽트 벡터 테이블이 위치하기 때문에 입력된 주소 값을 변경시킬 수가 없다. 우리가 사용하는 마이크로 프로세서가 정기적으로 다시 쓰고, 지울 수 있는 EEPROM내에 인터럽트 벡터 테이블을 가지고 있다 하더라도 이 부분에 저장되어 있는 어떤 특정 주소만을 전술한 OS와 인터럽트 벡터 테이블 영역을 RAM 에 상주시키는 x8086 계열의 프로세서처럼 다시 지우고 고쳐 쓸 수 없는 일이므로 인터럽트 벡터 테이블 내에 기억되는 주소 값이 변경되어서는 안된다는 제한 사항이 발생한다.However, the microprocessor cannot change the input address because the interrupt vector table is located in the ROM area. Even though the microprocessor we use has an interrupt vector table in the EEPROM that can be rewritten and erased regularly, the x8086 family of RAMs resides in the RAM and the interrupt vector table area described above, only certain specific addresses stored in this section. Since it cannot be erased and rewritten like a processor, there is a limitation that the address value stored in the interrupt vector table should not be changed.

따라서 인터럽트 관련 루틴이 위치하게 되는 영역의 주소가 변경된 후 이 부분이 포함된 모듈들을 다운로드하게 되면 EEPROM내의 인터럽트 벡터 테이블에 저장되어 있는 인터럽트 관리자 루틴의 주소와 각 모듈 안에 들어 있는 인터럽트 관리자 루틴의 주소가 서로 일치하지 않기 때문에 실제로 인터럽트가 발생하면 전혀 관련 없는 부분으로 프로그램의 흐름이 변경되어 프로그램 장애 현상이 발생된다.Therefore, when the address of the area where the interrupt related routine is located is changed and the modules including this part are downloaded, the address of the interrupt manager routine stored in the interrupt vector table in the EEPROM and the address of the interrupt manager routine included in each module are displayed. Since they do not coincide with each other, when an interrupt actually occurs, the program flow is changed to an unrelated part, causing a program failure.

위와 같은 문제 해결을 위해 각 모듈 안에 들어있는 인터럽트 관리자 루틴들의 주소가 변하지 않아야 한다. 이렇게 하면 EEPROM에 저장될 인터럽트 벡터 테이블내의 주소 값과 항상 일치시킬 수 있는데 각 모듈을 수정할 때마다 위와 같은 주소 값의 변경 유무를 확인하는 것은 어렵다.In order to solve the above problems, the addresses of interrupt manager routines in each module should not be changed. This will always match the address value in the interrupt vector table to be stored in the EEPROM. It is difficult to check whether the address value has changed as each module is modified.

각 모듈 안에 들어있는 인터럽트 관련 루틴들의 주소를 변경시키지 않기 위해 각 모듈들 안에 흩어져 있는 인터럽트 처리 루틴들을 한 모듈에 모두 모은다. 이와 함께 이 모듈을 다른 모듈들과 중첩되지 않도록 메모리의 최하위 영역에 배치하여 다른 모듈들의 프로그램 크기가 아무리 변경되어도 인터럽트 관련 루틴들을 함께 묶은 모듈이 가장 하위 주소 영역에 위치하기 때문에 이보다 상위 영역에 배치되는 모듈들의 변경은 인터럽트 벡터 테이블에 들어가게 되는 인터럽트 관리자 루틴들의 주소 값을 변경시킬 수 없게 되어 다수의 다운로드 이후에도 정상적인 펌웨어를 수행 할 수 있다.In order not to change the address of the interrupt-related routines in each module, the interrupt handling routines scattered in each module are collected in one module. In addition, this module is placed in the lowest area of memory so that it does not overlap with other modules so that no matter how the program size of other modules is changed, the module which binds interrupt related routines together is located in the lowest address area. Modifications to the modules will not change the address values of the interrupt manager routines that enter the interrupt vector table, allowing normal firmware to run after multiple downloads.

상기 내용을 실제로 구현하면, 우선 초기화 관련 모듈, 버스 제어 관련 모듈, 로더 관련 모듈, 회로 제어 관련 모듈중 초기화 회로 제어 관련 모듈에서 인터럽트 관련 루틴들을 찾는다. 찾아낸 인터럽트 관련 루틴들을 한 모듈에 배치하기 위해 인터럽트 서비스 관련 모듈(100)을 새로 생성한다. 초기화 관련 모듈, 회로 제어 관련 모듈에 위치한 인터럽트 관련 루틴들에서 사용하던 변수 정의, 초기화 등 기타 필요한 부분들을 새로 생성된 인터럽트 관리자 모듈로 이동시킨다.In practice, the interrupt-related routines are first found in the initialization circuit control module among the initialization module, the bus control module, the loader module, and the circuit control module. A new interrupt service related module 100 is created to place the found interrupt related routines in a module. Move the variable definition, initialization and other necessary parts used in the interrupt related routines located in the initialization module and the circuit control module to the newly created interrupt manager module.

상기 과정에 거친 모듈들 각각에 대한 컴파일을 실시한 후 인터럽트 서비스 관련 모듈을 메모리의 최하위 영역에 배치한다. After compiling each of the modules, the interrupt service module is placed in the lowest region of the memory.

이와 같이 배치된 인터럽트 서비스 관련 모듈은 뒤에 오는 모듈들의 변경에 관계없이 계속해서 동일한 주소 값을 유지할 수 있어 결과적으로 다수의 다운로드이후에도 정확한 인터럽트 처리가 이루어져서 정확한 펌웨어 작동이 이루어지게 된다. The interrupt service related modules arranged in this way can maintain the same address value regardless of the following module changes. As a result, correct interrupt processing is performed even after multiple downloads, and correct firmware operation is performed.

상기의 설명에서 본 발명을 도면을 중심으로 예를 들어 설명하고 한정하였지만, 본 분야의 통상의 지식을 가진 자에게는 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 변화와 변경이 가능함이 명백할 것이다.In the above description, the present invention has been described and limited by way of example with reference to the drawings. However, it will be apparent to those skilled in the art that various changes and modifications can be made without departing from the spirit of the present invention. will be.

따라서, 본 발명은 명세서에서 언급된 특별한 형태로 한정되는 것이 아닌 것으로 이해되어야 하며, 오히려 본 발명은 첨부된 청구범위에 의해 정의된, 본 발명의 기술적 사상과 범위 내에 있는 모든 변형물, 균등물 및 대체물을 포함하는 것으로 이해되어야 한다.Therefore, it is to be understood that the invention is not limited to the specific forms referred to in the specification, but rather that the invention is defined by all the modifications, equivalents and equivalents within the spirit and scope of the invention as defined by the appended claims. It should be understood to include substitutes.

상기한 바와 같이 동작하는 본 발명은, 다수의 다운로드를 통한 펌웨어 수정에도 신뢰성 있는 마이크로 프로세서의 동작을 보장할 수 있고, 다운로드 실패로 인한 원가 상승 요인과 애프터서비스(After Service) 비용 증가를 줄일 수 있고 전체 시스템에 대한 신뢰도를 높일 수 있다.According to the present invention operating as described above, it is possible to guarantee the operation of a reliable microprocessor even in the case of firmware modification through a plurality of downloads, and to reduce the cost increase factor and the increase in after-service cost due to the download failure. It can increase the reliability of the whole system.

도 1 은 본 발명에 의한 메모리의 구성도이다.1 is a block diagram of a memory according to the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100 : 인터럽트 서비스 관련 모듈100: Interrupt service related module

110 : 초기화 관련 모듈110: initialization related module

120 : 회로 제어 관련 모듈120: circuit control module

130 : 버스 제어 관련 모듈130: bus control module

140 : 로더 관련 모듈140: loader related modules

Claims (6)

제한된 롬, 램을 사용하여 펌웨어 다운로드를 수행하기 위한 방법에 있어서,In the method for performing a firmware download using a limited ROM, RAM, 타이머 인터럽트 처리를 수행하는 단계;Performing timer interrupt processing; I2C 버스 인터럽트 처리를 수행하는 단계; 및Performing I 2 C bus interrupt processing; And 직렬 인터페이스 관련 인터럽트 처리를 수행하는 단계를 구비하여 이루어지는, I2C 버스상의 마이크로 펌웨어 로더의 인터럽트 처리 방법., Interrupt processing method of the I 2 C bus on the micro firmware loader formed by a step of performing the serial interface related to interrupt handling. 제 1 항에 있어서,The method of claim 1, 상기 램 주소의 최하위에 인터럽트 서비스 관련 모듈의 램 영역을 상주하게 하고, 그 다음에 초기화관련 모듈의 램 영역과 회로 제어 관련 모듈의 램영역을 상주하게 구성하는,I2C 버스상의 마이크로 펌웨어 로더의 인터럽트 처리 방법.The micro firmware loader on the I 2 C bus, which makes the RAM area of the interrupt service related module resident at the lowest of the RAM address, and then resident the RAM area of the initialization related module and the RAM area of the circuit control related module. How to handle interrupts. 제 2 항에 있어서, 로더용 램 영역은 초기화 관련 모듈의 램 영역과 회로제어 관련 모듈용 램영역을 중첩되게 구성하는,I2C 버스상의 마이크로 펌웨어 로더의 인터럽트 처리 방법.In the loader ram area for the interrupt processing method in which the ram configured to be overlapped region with the circuit control modules associated RAM area for the initialization of the relevant module, I 2 C bus on the micro firmware loader according to claim 2. 제 3 항에 있어서, 상기 초기화용 램을 리셋하는 초기화 동작이 끝나면 선행된 다운로드에서 지정한 주소의 프로그램 모듈이 동작하는,I2C 버스상의 마이크로 펌웨어 로더의 인터럽트 처리 방법.The method of claim 3, wherein the interrupt processing method of the end of the initialization operation of resetting the ram for the initialization of the address of a program module designated in the prior downloading operation, I 2 C bus on the micro firmware loader. 제 4 항에 있어서, 회로 제어 관련 모듈의 동작중에 펌웨어 다운로드 명령을 받으면, 펌웨어 로더가 동작하는,I2C 버스상의 마이크로 펌웨어 로더의 인터럽트 처리 방법.The method of claim 4, wherein the circuit receives a firmware download instruction during the operation of the associated control module, an interrupt processing method of the micro firmware on the loader to the firmware loader operation, I 2 C bus. 제 1 항에 있어서, The method of claim 1, 인터럽트 서비스 관련 모듈을 메모리의 최하위 영역에 저장시키는 단계; 및Storing an interrupt service related module in a lowermost area of the memory; And 정확한 인터럽트 처리를 위해 이후에 위치하는 모듈의 변경에 관계없이 동일한 주소를 유지시키는 단계를 더 포함하는,I2C 버스상의 마이크로 펌웨어 로더의 인터럽트 처리 방법.Interrupt processing method of the correct interrupt, regardless of the change of the module which is located after to the treatment further comprising the step of maintaining the same address, micro-on the I 2 C bus firmware loader.
KR10-1998-0025476A 1998-06-30 1998-06-30 Interrupt handling of micro firmware loader on IC bus KR100506316B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-1998-0025476A KR100506316B1 (en) 1998-06-30 1998-06-30 Interrupt handling of micro firmware loader on IC bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-1998-0025476A KR100506316B1 (en) 1998-06-30 1998-06-30 Interrupt handling of micro firmware loader on IC bus

Publications (2)

Publication Number Publication Date
KR20000004088A KR20000004088A (en) 2000-01-25
KR100506316B1 true KR100506316B1 (en) 2005-11-21

Family

ID=19541898

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0025476A KR100506316B1 (en) 1998-06-30 1998-06-30 Interrupt handling of micro firmware loader on IC bus

Country Status (1)

Country Link
KR (1) KR100506316B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100693924B1 (en) * 2005-01-31 2007-03-12 삼성전자주식회사 Booting system using high speed serial interface and booting method of the same

Also Published As

Publication number Publication date
KR20000004088A (en) 2000-01-25

Similar Documents

Publication Publication Date Title
US6834384B2 (en) Methods and apparatus for upgrading firmware in an embedded system
US5664194A (en) Method for autonomously transferring code to a computer without accessing local memory by the central processing unit
US9348730B2 (en) Firmware ROM patch method
US5805882A (en) Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port
US6317827B1 (en) Method and apparatus for fault tolerant flash upgrading
JP3787167B2 (en) Flash memory
KR101782313B1 (en) Apparatus and method for handling exception events
US5864698A (en) Disk based bios
EP2972809B1 (en) Boot sequencing for multi boot devices
EP0092646A1 (en) Method and apparatus of program patching in a data processing system
KR101211503B1 (en) Booting system, image forming apparatus having the system and method thereof
US6629192B1 (en) Method and apparatus for use of a non-volatile storage management system for PC/AT compatible system firmware
CN111240720A (en) Boot program upgrading method and device and storage medium
US5825649A (en) Kernel substitution method in multi-processor system and multi-processor system having kernel substitution function
US5581776A (en) Branch control system for rom-programmed processor
US20090013124A1 (en) Rom code patch method
US20120266148A1 (en) Supporting multiple hardware components in uefi
US20030051114A1 (en) Executing large device firmware programs
KR19980079596A (en) Method and apparatus for implementing processor quiescent state in multiprocessor system
KR100506316B1 (en) Interrupt handling of micro firmware loader on IC bus
US20110271086A1 (en) Systems and methods to control multiple peripherals with a single-peripheral application code
CN111984329B (en) Boot software standardized generation and execution method and system
US20010052114A1 (en) Data processing apparatus
KR100303307B1 (en) Downloading device and method for debugging operation in real time operating system
CN107273105B (en) Firmware starting method and device

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: 20080604

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee