KR101244684B1 - Microcomputing apparatus and method capable of detecting error - Google Patents

Microcomputing apparatus and method capable of detecting error Download PDF

Info

Publication number
KR101244684B1
KR101244684B1 KR1020060069734A KR20060069734A KR101244684B1 KR 101244684 B1 KR101244684 B1 KR 101244684B1 KR 1020060069734 A KR1020060069734 A KR 1020060069734A KR 20060069734 A KR20060069734 A KR 20060069734A KR 101244684 B1 KR101244684 B1 KR 101244684B1
Authority
KR
South Korea
Prior art keywords
microcontroller
storage unit
variable
address
error
Prior art date
Application number
KR1020060069734A
Other languages
Korean (ko)
Other versions
KR20080009923A (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 KR1020060069734A priority Critical patent/KR101244684B1/en
Publication of KR20080009923A publication Critical patent/KR20080009923A/en
Application granted granted Critical
Publication of KR101244684B1 publication Critical patent/KR101244684B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

에러검출이 가능한 마이크로 컴퓨팅 장치 및 그의 에러검출 방법이 개시된다. 제1저장부는 다수의 서브루틴 중 엑세스(access)하기 위한 대상 서브루틴의 시작 어드레스를 저장하며, 제2저장부는 변수로 설정된 어드레스에 대응되는 영역을 가지고, 다수의 서브루틴을 저장하며, 마이크로 컨트롤러는 제2저장부 중 제1저장부에 저장된 시작 어드레스에 대응되는 서브루틴을 엑세스하며, 에러 검출부는 마이크로 컨트롤러가 제1저장부를 참조하여 변수로 설정된 어드레스를 엑세스하는 것이 검출되면, 마이크로 컨트롤러에게 에러가 발생하였음을 통지하는 인터럽트신호를 출력한다. 따라서, 변수로 설정된 어드레스로의 엑세스를 별도의 하드웨어적 장비를 이용하지 않고 검출하는 것이 가능하다.A microcomputing device capable of error detection and an error detection method thereof are disclosed. The first storage unit stores a start address of a target subroutine for access among a plurality of subroutines, the second storage unit has an area corresponding to an address set as a variable, and stores a plurality of subroutines, and the microcontroller. Accesses the subroutine corresponding to the start address stored in the first storage unit of the second storage unit, and if the error detection unit detects that the microcontroller accesses the address set as a variable with reference to the first storage unit, the microcontroller receives an error. Outputs an interrupt signal notifying that a has occurred. Therefore, it is possible to detect access to an address set as a variable without using separate hardware equipment.

임베디드 시스템, 버스 아비터, 에러 검출 Embedded Systems, Bus Arbitrs, Error Detection

Description

에러검출이 가능한 마이크로 컴퓨팅 장치 및 그의 에러검출 방법{Microcomputing apparatus and method capable of detecting error}Microcomputing apparatus and method capable of detecting errors

도 1은 본 발명의 바람직한 실시예에 따른 에러검출이 가능한 마이크로 컴퓨팅 장치를 개략적으로 도시한 블록도, 그리고,1 is a block diagram schematically showing a microcomputing device capable of error detection according to a preferred embodiment of the present invention, and

도 2는 도 1에 도시된 마이크로 컴퓨팅 장치의 에러 검출방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating an error detection method of the microcomputing device of FIG. 1.

* 도면의 주요부분에 대한 부호의 설명 *Description of the Related Art [0002]

100 : 마이크로 컴퓨팅 장치 110 : 제1저장부100: microcomputing device 110: first storage

120 : 제2저장부 130 : 마이크로 컨트롤러120: second storage unit 130: microcontroller

132 : 레지스터 140 : 스택132: register 140: stack

150 : 버스 아비터 152 : 에러 검출부150: bus arbiter 152: error detection unit

본 발명은 에러검출이 가능한 마이크로 컴퓨팅 장치 및 그의 에러검출 방법에 관한 것으로, 더욱 상세하게는 변수로 설정된 어드레스로의 엑세스를 별도의 하드웨어적 장비를 이용하지 않고 검출하는 것이 가능한 에러검출이 가능한 마이크로 컴퓨팅 장치 및 그의 에러검출 방법에 관한 것이다.The present invention relates to a microcomputing device capable of error detection and an error detection method thereof. More particularly, the present invention relates to an error detection microcomputing capable of detecting an access to an address set as a variable without using a separate hardware device. An apparatus and an error detection method thereof are provided.

임베디드 마이크로컴퓨팅 시스템(Embedded System)은 미리 정해진 특정 기능을 수행하기 위하여 컴퓨터의 하드웨어와 소프트웨어가 조합된 전자제어시스템을 말한다. 즉, 임베디드 시스템은 내장된 마이크로 컨트롤러를 구동하여 특정 기능을 수행하도록 프로그램을 실행시킨다.Embedded microcomputing system (Embedded System) refers to an electronic control system that is a combination of computer hardware and software to perform a predetermined predetermined function. In other words, the embedded system executes a program to drive a built-in microcontroller to perform a specific function.

이러한 임베디드 마이크로컴퓨팅 시스템 구현을 위한 소프트웨어를 개발하는 데 있어서, 소프트웨어 개발자들은 프로그래밍시 대부분의 변수를 메모리의 '0번지'로 초기화하며, 소프트웨어를 모듈에 실제 적용시 초기화된 변수를 필요한 값으로 세팅하여 참조한다. In developing software for implementing such embedded microcomputing system, software developers initialize most variables to '0' of memory when programming, and set the initialized variables to required values when the software is actually applied to the module. See.

그러나, 개발자들의 실수로 인하여 초기화된 변수가 실제 필요한 값으로 세팅되지 않거나, 또는 로직상의 오류로 인하여 변수가 실제 필요한 값으로 세팅되지 않고 프로그램이 수행되면, 마이크로 컨트롤러는 메모리의 '0번지'를 엑세스(access)하여 잘못된 동작을 수행하는 등의 버그를 발생시킨다. However, if the initialized variable is not set to the required value due to a developer's mistake, or if the program is executed without setting the variable to the required value due to a logic error, the microcontroller accesses the 'Address 0' of the memory. (access) causes bugs, such as misbehaving.

상술한 문제점을 해결하기 위하여 종래의 임베디드 마이크로컴퓨팅 시스템은 JTAG(Joint Test Action Group) 또는 ICE(In Circuit Emulator)와 같은 장비를 이용하여 디버깅을 수행한다. 그러나, 종래의 임베디드 시스템은 발생한 버그를 해결하기 위하여, JTAG 또는 ICE와 같은 별도의 장비를 구입하여야 하므로 비용상의 문제를 수반하게 되며, 또한 버그가 발생할 때마다 장비를 연결하여 디버깅하므로 장소 및 위치적으로 제약을 받고, 수동의 작업을 거쳐야함으로써 불편함을 겪게 된다.In order to solve the above problems, the conventional embedded microcomputing system performs debugging using equipment such as Joint Test Action Group (JTAG) or In Circuit Emulator (ICE). However, in order to solve a bug that occurs in the conventional embedded system, a separate device such as JTAG or ICE has to be purchased, which entails a cost problem, and also debugs by connecting the device whenever a bug occurs. As a result of the constraints and manual work, you will experience inconvenience.

따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 변수로 설정된 어드레스로의 엑세스를 별도의 ICE나 JTAG와 같은 하드웨어적 장비를 이용하지 않고 검출할 수 있는 에러검출이 가능한 마이크로 컴퓨팅 장치 및 그의 에러검출 방법을 제공하는 데 있다.Accordingly, the present invention has been made to solve the above problems, and an object of the present invention is to detect an access to an address set as a variable without using a hardware device such as a separate ICE or JTAG. A microcomputing device capable of detection and an error detection method thereof are provided.

상기 목적을 달성하기 위한 본 발명에 따른 에러검출이 가능한 마이크로 컴퓨팅 장치는, 다수의 서브루틴 중 엑세스(access)하기 위한 대상 서브루틴의 시작 어드레스를 저장하는 제1저장부; 변수로 설정된 어드레스에 대응되는 영역을 가지며, 상기 다수의 서브루틴을 저장하는 제2저장부; 상기 제2저장부 중 상기 제1저장부에 저장된 상기 시작 어드레스에 대응되는 서브루틴을 엑세스하는 마이크로 컨트롤러; 및 상기 마이크로 컨트롤러가 상기 제1저장부를 참조하여 상기 변수로 설정된 어드레스를 엑세스하는 것이 검출되면, 상기 마이크로 컨트롤러에게 에러가 발생하였음을 통지하는 인터럽트신호를 출력하는 에러 검출부;를 포함한다.According to another aspect of the present invention, there is provided an error detection micro computing device including: a first storage unit configured to store a start address of a target subroutine for accessing among a plurality of subroutines; A second storage unit having an area corresponding to an address set as a variable and storing the plurality of subroutines; A microcontroller accessing a subroutine corresponding to the start address stored in the first storage unit of the second storage unit; And an error detector for outputting an interrupt signal notifying the microcontroller that an error has occurred when the microcontroller detects that the microcontroller accesses the address set to the variable.

바람직하게는, 상기 마이크로 컨트롤러는, 상기 인터럽트신호를 수신하면, 상기 에러가 발생하였음을 외부로 알리는 메시지를 생성하여 출력한다.Preferably, when the microcontroller receives the interrupt signal, the microcontroller generates and outputs a message informing the outside that the error has occurred.

여기서, 상기 변수로 설정된 어드레스는 개발자에 의해 변경가능하다. Here, the address set as the variable can be changed by the developer.

한편, 본 발명에 따른 변수로 설정된 어드레스에 대응되는 영역을 가지며, 다수의 서브루틴을 메모리에 저장하는 마이크로 컴퓨팅 장치의 에러검출방법에 있어서, 상기 다수의 서브루틴 중 엑세스(access)하기 위한 대상 서브루틴의 시작 어 드레스가 저장되는 단계; 상기 저장된 시작 어드레스에 대응되는 서브루틴을 상기 메모리상에서 마이크로 컨트롤러가 엑세스하는 단계; 및 상기 엑세스하는 단계에서 상기 변수로 설정된 어드레스를 엑세스하는 것이 검출되면, 상기 마이크로 컨트롤러에게 에러가 발생하였음을 통지하는 인터럽트신호를 출력하는 단계;를 포함한다.On the other hand, in an error detection method of a microcomputing device having an area corresponding to an address set to a variable according to the present invention and storing a plurality of subroutines in a memory, a target sub for accessing among the plurality of subroutines Storing the starting word dress of the routine; Accessing, by the microcontroller, in the memory a subroutine corresponding to the stored start address; And outputting an interrupt signal notifying the microcontroller that an error has occurred, when accessing the address set to the variable is detected in the accessing step.

바람직하게는, 상기 마이크로 컨트롤러가 상기 인터럽트신호를 수신하면, 상기 에러가 발생하였음을 알리는 메시지를 생성하여 출력하는 단계;를 더 포함한다.Preferably, when the microcontroller receives the interrupt signal, generating and outputting a message indicating that the error has occurred.

이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다. Hereinafter, with reference to the drawings will be described the present invention in more detail.

도 1은 본 발명의 바람직한 실시예에 따른 에러검출이 가능한 마이크로 컴퓨팅 장치를 개략적으로 도시한 블록도이다.1 is a block diagram schematically illustrating a microcomputing device capable of error detection according to a preferred embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시예에 따른 마이크로 컴퓨팅 장치(100)는 제1저장부(110), 제2저장부(120), 마이크로 컨트롤러(130), 스택(Stack)(140) 및 버스 아비터(Bus Arbiter)(150)를 포함하며, 본 발명과 관련되지 않거나 본 발명의 요지를 흐리는 것으로 판단되는 구성요소의 도시 및 설명은 생략한다. Referring to FIG. 1, the microcomputing device 100 according to an embodiment of the present invention may include a first storage unit 110, a second storage unit 120, a microcontroller 130, a stack 140, and The illustration and description of components including a bus arbiter 150 and not related to the present invention or deemed to obscure the subject matter of the present invention are omitted.

먼저, 본 발명에 따른 마이크로 컴퓨팅 장치(100)는 하드웨어와 소프트웨어를 내장하여 특정 기능을 수행하기 위한 임베디드 시스템으로서, TV, 모니터, 전자렌지, 화상형성장치, 컴퓨터 등 전자기기에 장착된다. 이하에서는, 마이크로 컴퓨팅 장치(100)의 테스트 단계에서, 마이크로 컴퓨팅 장치(100)가 null pointer로 인한 프로그래밍 오류를 run time으로 감지하여 개발자에게 통지하여 디버깅에 유용하도록 하는 마이크로 컴퓨팅 장치(100)에 대하여 설명한다. First, the microcomputing device 100 according to the present invention is an embedded system for performing a specific function by embedding hardware and software, and is mounted on an electronic device such as a TV, a monitor, a microwave oven, an image forming apparatus, a computer, and the like. Hereinafter, in the testing stage of the micro-computing device 100, the micro-computing device 100 detects a programming error due to a null pointer as a run time and notifies the developer to be useful for debugging. Explain.

제1저장부(110)는 RAM(Random Access Memory)과 같은 휘발성 메모리로서, 펑 션 콜(function call)이 마이크로 컨트롤러(130)에 의해 개시되면, 메인루틴 및 다수의 서브루틴 중 엑세스(access)하기 위한 대상 서브루틴의 시작 어드레스(즉, 시작 번지)를 레지스터(132)로부터 로딩하여 저장한다. 제1저장부(110)에 저장되는 시작 어드레스는 펑션 콜에 의해 하나의 펑션 콜이 종료될 때까지 변한다. 즉, 엑세스할 대상 서브루틴이 변한다.The first storage unit 110 is a volatile memory such as random access memory (RAM). When a function call is initiated by the microcontroller 130, the first storage unit 110 accesses one of a main routine and a plurality of subroutines. The start address (ie, start address) of the target subroutine to be loaded is stored from the register 132. The start address stored in the first storage unit 110 changes until one function call is terminated by the function call. That is, the target subroutine to access changes.

제2저장부(120)는 ROM(Read Only Memory)과 같은 비휘발성 메모리로서, 마이크로 컴퓨팅 장치(100)에서 실행하기 위한 특정 프로그램들에 대한 메인루틴 및 다수의 서브루틴(제1서브루틴~제n서브루틴, 여기서 n은 상수)을 저장한다. 컴퓨터 프로그래밍에서, 메인루틴 및 서브루틴은 어떤 프로그램이 실행될 때 불려지거나 반복해서 사용되도록 만들어진 일련의 코드들을 지칭하는 용어이다. The second storage unit 120 is a nonvolatile memory such as a read only memory (ROM). The second storage unit 120 includes a main routine and a plurality of subroutines (eg, first subroutines) for specific programs to be executed in the microcomputing device 100. n subroutine, where n is a constant. In computer programming, mainroutines and subroutines are terms that refer to a series of codes intended to be called or used repeatedly when a program is executed.

제2저장부(120)는 다수의 서브루틴을 각각 저장하는 저장영역 및 변수로 설정된 어드레스에 대응되는 변수영역을 갖는다. 따라서, 다수의 서브루틴은 각각 할당된 저장영역에 저장되며 각 저장영역은 시작 어드레스 및/또는 종료 어드레스를 갖는다.The second storage unit 120 has a storage area for storing a plurality of subroutines and a variable area corresponding to an address set as a variable. Thus, a plurality of subroutines are each stored in an allocated storage area and each storage area has a start address and / or an end address.

여기서, 다수의 서브루틴은 제2저장부(120)의 변수 어드레스에 대응되는 변수영역, 예를 들어 0번지가 시작 어드레스로 지정된 영역에는 저장되지 않는다. 이는, 소프트웨어를 프로그래밍하는 과정에서 모든 초기값은 대부분 0번지로 설정된 후, 실제값으로 재설정되므로 0번지는 실제값으로 판단되지 않기 때문이며, 마이크로 컴퓨팅 장치(100)가 온되어 부팅될 때 마이크로 컨트롤러(130)는 제2저장부(120)의 0번지를 사용하므로 0번지는 비어있어야 하기 때문이다.Here, the plurality of subroutines are not stored in the variable area corresponding to the variable address of the second storage unit 120, for example, the area where 0 is designated as the start address. This is because, in the process of programming the software, since all initial values are mostly set to 0 and then reset to actual values, the 0 address is not determined to be the actual value. When the microcomputing device 100 is booted and turned on, the microcontroller ( 130 is used because the 0 address of the second storage unit 120 is because the 0 address should be empty.

마이크로 컨트롤러(130)는 전원이 온되면 마이크로 컴퓨팅 장치(100)의 부팅을 개시하며, CPU(Central Processing Unit)를 예로 들 수 있다. 부팅이 완료되면, 마이크로 컨트롤러(130)의 레지스터(132)에 저장된 엑세스할 시작 어드레스는 제1저장부(110)에 순차적으로 임시저장된다. 레지스터(132)는 프로그램 카운터(Program Counter)로서, 제2저장부(120) 중 다음에 엑세스할 서브루틴의 시작 어드레스가 서브루틴의 식별정보와 매핑/저장되어 있으며, 하나의 시작 어드레스에 대한 콜 또는 엑세스가 완료되면 다음에 엑세스할 시작 어드레스가 제1저장부(110)에 임시저장된다. When the power is turned on, the microcontroller 130 starts booting the microcomputing device 100, and may include a central processing unit (CPU). When the booting is completed, the start address to be accessed stored in the register 132 of the microcontroller 130 is temporarily stored in the first storage unit 110 sequentially. The register 132 is a program counter, and a start address of a subroutine to be accessed next in the second storage unit 120 is mapped / stored with identification information of a subroutine, and a call for one start address is performed. Alternatively, when the access is completed, the start address to be accessed next is temporarily stored in the first storage unit 110.

따라서, 마이크로 컨트롤러(130)는 제1저장부(110)에 임시저장된 시작 어드레스를 확인하여 확인된 시작 어드레스에 대응되는 영역을 제2저장부(120) 상에서 엑세스한다. 여기서, 마이크로 컨트롤러(130)는 엑세스한 영역에 대하여 read, write 및 execution 명령 중 하나를 실행한다. Therefore, the microcontroller 130 checks the start address temporarily stored in the first storage unit 110 and accesses the region corresponding to the identified start address on the second storage unit 120. Here, the microcontroller 130 executes one of read, write, and execution commands for the accessed area.

또한, 마이크로 컨트롤러(130)는 현재 엑세스할 어드레스에 대하여 어떠한 명령을 실행할지에 대한 정보를 나타내는 신호를 버스 아비터(150)에게 출력한다. In addition, the microcontroller 130 outputs a signal to the bus arbiter 150 indicating information on which command to execute with respect to an address to be accessed currently.

스택(140)은 마이크로 컨트롤러(130)가 제2저장부(120)의 서브루틴을 콜하여 콜된 서브루틴이 대응되는 명령을 실행한 후 종료할 때, 서브루틴과 관련된 프로그램이 복귀할 주소(return address)를 저장하는 메모리이다. 따라서, 마이크로 컨트롤러(130)는 콜하기 위한 시작 어드레스를 제1저장부(110)에서 확인한 후, 확인된 시작 어드레스로 점프하여 소정 명령을 수행하도록 하며, 서브루틴이 종료되면, 서브루틴의 호출을 요청한 프로그램은 스택(140)에 저장된 복귀 주소를 참조하여 기존의 저장위치로 리턴한다.The stack 140 returns an address to which a program related to the subroutine returns when the microcontroller 130 calls the subroutine of the second storage unit 120 and terminates after executing the command corresponding to the called subroutine. memory to store address). Therefore, the microcontroller 130 checks the start address for the call in the first storage unit 110, jumps to the checked start address, and executes a predetermined command. When the subroutine ends, the microcontroller 130 calls the subroutine. The requested program returns to an existing storage location by referring to the return address stored in the stack 140.

따라서, 인터럽트신호가 수신될 때 마이크로 컨트롤러(130)는 스택(140)을 검사하여 어느 경로를 통하여 변수로 지정된 어드레스까지 엑세스하게 되었는지를 확인하고, 현재 어느 서브루틴에서 에러가 발생하였는지를 추정한다. 예를 들어, 마이크로 컨트롤러(130)가 'A calls B, B calls C, C calls D'라는 경로로 A, B, C 및 D 서브루틴을 콜하였을 때, 스택(140)의 D 서브루틴에 스택 포인터가 위치하면 콜된 경로를 역으로 추정하여 변수 어드레스까지 콜된 경로를 획득한다.Therefore, when an interrupt signal is received, the microcontroller 130 examines the stack 140 to determine which path has been accessed to the address designated as a variable, and estimates which subroutine currently generates an error. For example, when the microcontroller 130 calls the A, B, C, and D subroutines through the paths 'A calls B, B calls C, and C calls D', the stack is in the D subroutine of the stack 140. When the pointer is located, the called path is inversely estimated to obtain the called path to the variable address.

그리고, 마이크로 컨트롤러(130)는 인터럽트신호를 수신하면, 에러가 발생하였음을 알리는 메시지를 생성하여 외부로 출력한다. 또한, 마이크로 컨트롤러(130)는 인터럽트신호를 수신하면, 현재 레지스터(132)에 설정된 프로그램 카운터 정보 및 스택(140)에서 확인된 펑션 콜의 경로 또는 마지막으로 엑세스한 서브루틴의 정보를 외부로 통지한다. 이로써, 개발자는 어떤 펑션 콜의 어느 서브루틴에서 에러가 발생하였는지를 쉽게 인지하여 디버깅을 보다 빠르고 정확하게 실행할 수 있다. When the microcontroller 130 receives the interrupt signal, the microcontroller 130 generates a message indicating that an error has occurred and outputs the message to the outside. In addition, upon receiving the interrupt signal, the microcontroller 130 notifies the program counter information currently set in the register 132 and the function call path checked in the stack 140 or the information of the last accessed subroutine. . This allows the developer to easily recognize which subroutine of which function call has an error and execute debugging faster and more accurately.

버스 아비터(150)는 버스(BUS)에 접속된 다수의 마스터들 사이에서 버스 중재를 수행한다. 버스 중재는, 각 마스터가 버스의 사용을 요구하는 정보를 가지는 요청신호를 버스 아비터(150)로 보내면, 일정 순서에 따라 각 마스터로 버스의 사용을 허가하는 정보인 허가 신호를 출력하는 것으로서, 각 마스터는 순서에 따라 버스를 점유하여 데이터 통신을 수행한다. The bus arbiter 150 performs bus arbitration among a plurality of masters connected to the bus BUS. When the bus arbitration sends a request signal having information for requesting the use of the bus to the bus arbiter 150, the bus arbitration outputs a permission signal which is information for permitting use of the bus to each master in a predetermined order. The master occupies the bus in order to perform data communication.

또한, 버스 아비터(150)는 마이크로 컨트롤러(130)에 의해 엑세스되는 어드 레스를 디코딩하여 현재 엑세스하는 메모리가 제1저장부(110)인지 또는 제2저장부(120)인지를 판단하며, 마이크로 컨트롤러(130)로부터 출력된 신호를 디코딩하여 현재 마이크로 컨트롤러가 어떤 명령을 수행하려 하는지를 판단한다. In addition, the bus arbiter 150 decodes the address accessed by the microcontroller 130 to determine whether the currently accessed memory is the first storage unit 110 or the second storage unit 120, and the microcontroller. A signal output from 130 is decoded to determine which command the current microcontroller is trying to perform.

또한, 버스 아비터(150)는 에러 검출부(152)를 포함한다. 에러 검출부(152)는 마이크로 컨트롤러(130)가 제1저장부(110)에 저장된 시작 어드레스를 참조하여 제2저장부(120)를 엑세스할 때, 제2저장부(120)의 변수로 설정된 어드레스, 즉, 변수영역을 엑세스하는 경우를 검출한다. 변수 영역을 엑세스하는 것이 검출되면, 에러 검출부(152)는 마이크로 컨트롤러(130)에게 에러가 발생하였음을 통지하는 인터럽트신호를 발생한다. In addition, the bus arbiter 150 includes an error detector 152. When the microcontroller 130 accesses the second storage unit 120 with reference to the start address stored in the first storage unit 110, the error detector 152 sets an address set as a variable of the second storage unit 120. That is, the case of accessing the variable area is detected. When it is detected that the variable region is accessed, the error detector 152 generates an interrupt signal notifying the microcontroller 130 that an error has occurred.

상술한 에러 검출부(152)의 에러 검출 기능은 enable 또는 disable될 수 있다. 예를 들어, 마이크로 컴퓨팅 장치(100)가 초기에 온되어 부팅하는 경우 에러 검출부(152)의 기능은 disable되어 변수로 지정된 어드레스로의 엑세스를 검출하지 않으며, 부팅 직후, 변수로 지정된 어드레스의 검출 기능을 enable하여 개시한다.The error detection function of the error detection unit 152 described above may be enabled or disabled. For example, when the microcomputing device 100 is initially turned on and booted, the function of the error detector 152 is disabled to detect access to an address specified by a variable, and immediately after booting, to detect an address designated by a variable. Start by enabling.

도 2는 도 1에 도시된 마이크로 컴퓨팅 장치의 에러 검출방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating an error detection method of the microcomputing device of FIG. 1.

도 1 및 도 2를 참조하면, 전원이 온되어(S200), 마이크로 컴퓨팅 장치(100)가 부팅되는 동안 에러 검출부(152)의 에러 검출 기능은 disable된다(S210). 부팅이 완료되면(S220), 에러 검출부(152)의 에러 검출 기능은 enable된다(S230).1 and 2, when the power is turned on (S200), the error detection function of the error detector 152 is disabled while the microcomputing device 100 is booted (S210). When booting is completed (S220), the error detection function of the error detector 152 is enabled (S230).

이와 함께, 레지스터(132)에 저장된 엑세스할 대상 서브루틴의 시작 어드레스는 제1저장부(110)에 순차적으로 임시저장된다(S240).In addition, the start address of the target subroutine to be accessed stored in the register 132 is temporarily stored in the first storage unit 110 (S240).

마이크로 컨트롤러(130)는 제1저장부(110)에 임시저장된 시작 어드레스를 확인하여 시작 어드레스에 대응되는 제2저장부(120)의 영역, 즉, 시작 어드레스에 대응되는 서브루틴을 엑세스한다(S250).The microcontroller 130 checks the start address temporarily stored in the first storage unit 110 and accesses an area of the second storage unit 120 corresponding to the start address, that is, a subroutine corresponding to the start address (S250). ).

이 때, 에러 검출부(152)는 마이크로 컨트롤러(130)가 제2저장부(120) 중 변수로 설정된 어드레스를 엑세스한 것이 검출되면(S260), 에러 검출 신호, 즉, 인터럽트 신호를 생성하여 마이크로 컨트롤러(130)에게 출력한다(S270).At this time, if it is detected that the microcontroller 130 accesses the address set as a variable in the second storage unit 120 (S260), the error detector 152 generates an error detection signal, that is, an interrupt signal to generate the microcontroller. Output to 130 (S270).

인터럽트신호를 수신한 마이크로 컨트롤러(130)는 에러 발생을 알리는 메시지를 생성하여 개발자가 인지할 수 있도록 외부로 출력한다(S280). 이 때, 마이크로 컨트롤러(130)는 에러 검출부(152)가 인터럽트 신호를 발생했을 때의 프로그램 카운터 정보 및 스택(140)에 저장된 펑션 콜의 경로 또는 마지막으로 엑세스한 서브루틴의 정보를 확인하여 메시지와 함께 출력한다. 이로써, 개발자는 프로그램 중 어느 부분에 논리적 오류가 있는지 보다 쉽고 정확히 판단할 수 있다.Upon receiving the interrupt signal, the microcontroller 130 generates a message indicating the occurrence of an error and outputs the message to the outside for the developer to recognize (S280). At this time, the microcontroller 130 checks the program counter information when the error detection unit 152 generates the interrupt signal and the path of the function call stored in the stack 140 or the information of the last accessed subroutine. And print it out together. This allows the developer to more easily and accurately determine which part of the program contains a logical error.

여기서, 프로그램 카운터 정보는 0번지 엑세스가 검출되었을 때 레지스터에 저장된 어드레스, 즉, 0번지 다음으로 엑세스할 어드레스 정보이다.Here, the program counter information is an address stored in a register when address access is detected, that is, address information to be accessed next to address 0.

반면, S260단계에서 에러 검출부(152)가 변수로 설정된 어드레스가 실제 시작 어드레스를 이용하여 서브루틴을 엑세스한 것으로 검출되면, 마이크로 컨트롤러(130)는 엑세스된 영역의 서브루틴에서 소정 명령을 수행한다. On the other hand, if it is detected in step S260 that the address set as a variable accesses the subroutine using the actual start address, the microcontroller 130 performs a predetermined command in the subroutine of the accessed area.

한편, 상술한 본 발명에 있어서, 마이크로 컨트롤러(130) 및 에러 검출부(152)는 단일칩으로 구현가능하다. On the other hand, in the present invention described above, the microcontroller 130 and the error detector 152 may be implemented as a single chip.

또한, 변수로 지정된 어드레스는 0번지에 한정되지 않으며 개발자에 의해 프 로그래머블하게 변경가능하다. 즉, 에러 검출부(152)가 0번지 뿐만 아니라 그 외의 번지도 엑세스하는 것을 검출하여 에러로 판정하도록 함으로써 보다 확장된 에러 검출을 수행할 수 있다.In addition, the address specified by the variable is not limited to address 0 and can be changed programmatically by the developer. That is, the error detection unit 152 detects the access to not only the 0 address but also other addresses, and determines that the error is more extended.

이상 설명한 바와 같이, 본 발명에 따른 에러검출이 가능한 마이크로 컴퓨팅 장치 및 그의 에러검출 방법에 의하면, 변수로 설정된 어드레스로의 엑세스를 별도의 ICE나 JTAG와 같은 하드웨어적 장비를 이용하지 않고, 버스 아비터에 에러 검출기능을 구비하는 로직을 추가하여 검출하는 것이 가능하다. 이로써 개발자는 ICE나 JTAG 장비를 사용하지 않고도 디버깅 기능을 수행할 수 있다.As described above, according to the present invention, an error-detecting microcomputing device and an error detection method thereof provide access to a bus arbiter without access to an address set as a variable without using a separate hardware device such as ICE or JTAG. It is possible to detect by adding logic having an error detection function. This allows developers to perform debugging functions without using ICE or JTAG devices.

또한, 변수 어드레스를 0번지에 국한시키지 않고 원하는 번지로 설정가능하도록 설계함으로써 변수 어드레스의 사용 범위를 확장시킬 수 있다.In addition, the use range of the variable address can be extended by designing that the variable address can be set to a desired address without being limited to zero.

이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형 실시예들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.While the above has been shown and described with respect to preferred embodiments of the present invention, the present invention is not limited to the specific embodiments described above, it is usually in the technical field to which the invention belongs without departing from the spirit of the invention claimed in the claims. Various modifications may be made by those skilled in the art, and these modifications should not be individually understood from the technical spirit or the prospect of the present invention.

Claims (5)

다수의 서브루틴 중 엑세스(access)하기 위한 대상 서브루틴의 시작 어드레스를 저장하는 제1저장부;A first storage unit which stores a start address of a target subroutine for access among a plurality of subroutines; 변수로 설정된 어드레스에 대응되는 영역 및 상기 다수의 서브루틴을 저장하는 제2저장부;A second storage unit which stores an area corresponding to an address set as a variable and the plurality of subroutines; 상기 제2저장부 중 상기 제1저장부에 저장된 상기 시작 어드레스에 대응되는 서브루틴을 엑세스하는 마이크로 컨트롤러; 및A microcontroller accessing a subroutine corresponding to the start address stored in the first storage unit of the second storage unit; And 상기 마이크로 컨트롤러가 상기 변수로 설정된 어드레스를 엑세스하는 것이 검출되면, 상기 마이크로 컨트롤러에게 에러가 발생하였음을 통지하는 인터럽트신호를 출력하는 에러 검출부;를 포함하는 것을 특징으로 하는 에러검출이 가능한 마이크로 컴퓨팅 장치.And an error detector for outputting an interrupt signal notifying the microcontroller that an error has occurred, when the microcontroller detects access to an address set to the variable. 제 1항에 있어서,The method of claim 1, 상기 마이크로 컨트롤러는, 상기 인터럽트신호를 수신하면, 상기 에러가 발생하였음을 외부로 알리는 메시지를 생성하여 출력하는 것을 특징으로 하는 에러검출이 가능한 마이크로 컴퓨팅 장치.When the microcontroller receives the interrupt signal, the microcontroller generates and outputs a message informing that the error has occurred to the outside. 제 1항에 있어서,The method of claim 1, 상기 변수로 설정된 어드레스는 개발자에 의해 변경가능한 것을 특징으로 하 는 에러검출이 가능한 마이크로 컴퓨팅 장치.And the address set to the variable is changeable by a developer. 변수로 설정된 어드레스에 대응되는 영역을 가지며, 다수의 서브루틴을 메모리에 저장하는 마이크로 컴퓨팅 장치의 에러검출방법에 있어서,In the error detection method of a microcomputing device having an area corresponding to an address set as a variable and storing a plurality of subroutines in a memory, 상기 다수의 서브루틴 중 엑세스(access)하기 위한 대상 서브루틴의 시작 어드레스가 저장되는 단계;Storing a start address of a target subroutine for access among the plurality of subroutines; 상기 저장된 시작 어드레스에 대응되는 서브루틴을 상기 메모리상에서 마이크로 컨트롤러가 엑세스하는 단계; 및Accessing, by the microcontroller, in the memory a subroutine corresponding to the stored start address; And 상기 엑세스하는 단계에서 상기 변수로 설정된 어드레스를 엑세스하는 것이 검출되면, 상기 마이크로 컨트롤러에게 에러가 발생하였음을 통지하는 인터럽트신호를 출력하는 단계;를 포함하는 것을 특징으로 하는 마이크로 컴퓨팅 장치의 에러검출방법.And outputting an interrupt signal notifying the microcontroller that an error has occurred, when accessing the address set to the variable is detected in the accessing step. 제 4항에 있어서,5. The method of claim 4, 상기 마이크로 컨트롤러가 상기 인터럽트신호를 수신하면, When the microcontroller receives the interrupt signal, 상기 에러가 발생하였음을 알리는 메시지를 생성하여 출력하는 단계;를 더 포함하는 것을 특징으로 하는 마이크로 컴퓨팅 장치의 에러검출방법.And generating and outputting a message informing that the error has occurred.
KR1020060069734A 2006-07-25 2006-07-25 Microcomputing apparatus and method capable of detecting error KR101244684B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060069734A KR101244684B1 (en) 2006-07-25 2006-07-25 Microcomputing apparatus and method capable of detecting error

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060069734A KR101244684B1 (en) 2006-07-25 2006-07-25 Microcomputing apparatus and method capable of detecting error

Publications (2)

Publication Number Publication Date
KR20080009923A KR20080009923A (en) 2008-01-30
KR101244684B1 true KR101244684B1 (en) 2013-03-18

Family

ID=39222143

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060069734A KR101244684B1 (en) 2006-07-25 2006-07-25 Microcomputing apparatus and method capable of detecting error

Country Status (1)

Country Link
KR (1) KR101244684B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102028663B1 (en) 2012-07-24 2019-10-04 삼성전자주식회사 Apparatus and method for error detection

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060030393A (en) * 2004-10-05 2006-04-10 주식회사 팬택앤큐리텔 Detcting method for memory error

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060030393A (en) * 2004-10-05 2006-04-10 주식회사 팬택앤큐리텔 Detcting method for memory error

Also Published As

Publication number Publication date
KR20080009923A (en) 2008-01-30

Similar Documents

Publication Publication Date Title
US6915416B2 (en) Apparatus and method for microcontroller debugging
US8261140B2 (en) Uninitialized memory detection using error correction codes and built-in self test
TW201015323A (en) Secure information processing
US8495344B2 (en) Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information
US9575816B2 (en) Deadlock/livelock resolution using service processor
CN111033630B (en) Multiprocessor kernel device with MBIST
US5813043A (en) Method and system including memory patching utilizing a transmission control signal and circuit
JP5999216B2 (en) Data processing device
US6751569B2 (en) System and method for receiving information from a test apparatus
JP2000132430A (en) Signal processor
KR101244684B1 (en) Microcomputing apparatus and method capable of detecting error
US9069900B2 (en) Method for determining whether a machine code instruction of a machine code program is executed in the machine code program
Yiu Design of SOC for high reliability systems with embedded processors
KR100543152B1 (en) Microprocessor and processing method of microprocessor
JP7394849B2 (en) Testing read-only memory using the memory built-in self-test controller
JP2003122594A (en) Semiconductor device and evaluation tool
US20010052114A1 (en) Data processing apparatus
KR100505700B1 (en) Retargetable emulation apparatus providing for target system verifying using micro-control unit, micro-computer development system having it, and method thereof
US20010049794A1 (en) Write protection software for programmable chip
CN116841697B (en) Method for processing MMIO request, electronic device and storage medium
US10120737B2 (en) Apparatus for detecting bugs in logic-based processing devices
CN117290211A (en) Method and device for detecting system memory of computer, operating system and storage medium
CN115732025A (en) Method and device for verifying access conflict of RAM (random Access memory)
CN115408287A (en) Method, device and equipment for detecting basic software in board card and storage medium
CN111651381A (en) Semiconductor device and data protection method

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170223

Year of fee payment: 5