KR101666398B1 - Arinc 653 기반 운영체제에서의 모니터링 방법 및 장치 - Google Patents
Arinc 653 기반 운영체제에서의 모니터링 방법 및 장치 Download PDFInfo
- Publication number
- KR101666398B1 KR101666398B1 KR1020120121344A KR20120121344A KR101666398B1 KR 101666398 B1 KR101666398 B1 KR 101666398B1 KR 1020120121344 A KR1020120121344 A KR 1020120121344A KR 20120121344 A KR20120121344 A KR 20120121344A KR 101666398 B1 KR101666398 B1 KR 101666398B1
- Authority
- KR
- South Korea
- Prior art keywords
- monitoring
- information
- breakpoint
- iabr
- stop point
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/14—Relay systems
- H04B7/15—Active relay systems
- H04B7/185—Space-based or airborne stations; Stations for satellite systems
- H04B7/18502—Airborne stations
- H04B7/18506—Communications with or from aircraft, i.e. aeronautical mobile service
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Astronomy & Astrophysics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
Abstract
ARINC 653 기반 운영체제에서의 모니터링 방법이 개시된다. 본 발명에 따른 ARINC 653 기반 운영체제에서의 모니터링 방법은, 클라이언트 시스템이 상기 타겟 시스템에 정지점 정보를 전달하는 단계, 상기 타겟 시스템에 상기 정지점 정보가 설정되는 단계, MCU(Micro Controller Unit)가 PC(Program Counter)를 읽어오는 단계, 상기 정지점 정보와 상기 PC가 일치하면 인터럽트가 발생되는 단계 및 상기 PC와 일치하는 정지점 정보에 포함된 기능이 수행되는 단계를 포함한다.
Description
본 발명은 ARINC 653 기반 운영체제에서의 모니터링 방법 및 장치에 관한 것으로, 보다 상세하게는 항공기 시스템에 사용되는 시스템 소프트웨어 중 ARINC 653 표준을 준수하는 항공기용 소프트웨어(SW)의 디버깅 및 모니터링을 위한 기술에 관한 것이다.
항공 시스템에 사용되는 소프트웨어는 높은 신뢰성과 생산성이 요구된다. 이와 같은 요구로 인하여, 높은 신뢰성과 안전성을 최우선으로 여기는 특수한 상황에 적합한 운영체제가 연구되고 있다.
특히, 통합 모듈 항공전자(IMA, Integrated Modular Avionics)라는 개념이 등장하여 많은 연구가 진행되었고, ARINC 653과 같은 항공 소프트웨어 표준에 적용 되었다.
ARINC는 Aeronautical Radio, Incorporated의 약자로 미국 소유의 비영리 단체이며 5개 분야(항공, 공항, 국방, 정부, 수송)를 주 업무 영역으로 두고 있으며 최초로 경찰차와 철도차에 컴퓨터 네트워크를 적용하였고, 지상 기지국과 항공기 간의 통신 서비스 및 항공전자 표준의 표준 규격을 정의하고 있다.
IMA란 Integrated Modular Avionics의 약자로, 항공기의 경우, 각기 다른 안전 레벨을 갖는 수많은 애플리케이션들로 이루어지게 된다. 이들의 안전성 및 효율성을 위해서 도입한 기술로, IMA를 도입함으로써 애플리케이션과 하드웨어가 개발 또는 실행될 때에 서로의 영향을 받지 않게 하여 하드웨어 혹은 애플리케이션의 개발비용이 적게 든다.
ARINC 653이란 IMA을 목적으로 시스템 코어와 애플리케이션 간의 인터페이스로써 ARINC에서 정의한 디지털 항공전자 시스템의 실시간 운영체제와 그 위에서 동작하는 응용 프로그램 간의 인터페이스를 규정 하고 있는 기술표준이다.
비행기와 같은 큰 대규모 시스템은 많은 응용프로그램과 프로세스들로 이루어지게 된다. ARINC 653에서는 이러한 각각의 응용프로그램의 공간분할(Spatial Partitioning)과 시간분할(Temporal Partitioning)을 위해서 파티션이란 개념을 두었다. 공간분할은 다른 각 파티션이 서로의 물리적 메모리 자원에 영향을 끼치지 못하는 것을 말한다. 시간분할은 파티션에 할당된 시간자원 역시 다른 파티션에서 간섭할 수 없다는 것을 의미한다. 이와 같은 파티션 개념은 항공 전자 시스템과 같이 중요한 임무를 수행하는 환경에서 하나의 응용프로그램 오류가 전체 시스템에 악영향을 미치는 것을 방지하여 높은 신뢰성을 제공할 수 있다.
항공기 시스템은 기존의 독립적으로 구성된 다양한 컴퓨팅 환경(Federated System)에서 하나의 시스템으로 통합하기 위한 IMA(Integrated Modular Avionics) 구조로 진화하고 있다. 이에 IMA를 위한 시스템 SW로써 국제 항공 업계에서는 ARINC 653 표준을 제정하였으나, ARINC 653 표준을 준수하는 항공기용 시스템 SW를 위한 모니터링 모델은 존재하지 않는다는 한계점이 존재한다.
미국등록특허 제 05019980호는 항공 전자 기기의 디스플레이 모니터에 대해서 개시하고 있으나, 이 미국등록특허에 개시된 기술은 항공 시스템의 데이터 버스 관점에서 PC와 항공 시스템의 버스들과의 인터페이스 및 인터페이스 카드에 관한 기술을 개시할 뿐, ARINC 653 표준 기반의 SW를 모니터링하고 디버깅하는 기술을 제공하지 못하는 한계가 있다.
본 발명의 목적은 항공 시스템에 사용되는 ARINC 653 표준 기반 소프트웨어의 높은 신뢰성과 안정성 지원을 위한 모니터링 방법을 제시하여 독립적으로 구성된 다양한 컴퓨팅 환경(Federated System)에서 하나의 시스템으로 통합하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 ARINC 653 기반 운영체제에서의 모니터링 방법은 클라이언트 시스템이 상기 타겟 시스템에 정지점 정보를 전달하는 단계, 상기 타겟 시스템에 상기 정지점 정보가 설정되는 단계, MCU(Micro Controller Unit)가 PC(Program Counter)를 읽어오는 단계, 상기 정지점 정보와 상기 PC가 일치하면 인터럽트가 발생되는 단계 및 상기 PC와 일치하는 정지점 정보에 포함된 기능이 수행되는 단계를 포함할 수 있다.
이 때, 상기 정지점 정보는 정지점 주소 값 및 IABR 설정 정보를 포함할 수 있다.
이 때, 상기 정지점 정보가 설정되는 단계는, 모니터링 에이전트가 시스템 콜을 호출하여 모니터링 관리부에 상기 정지점 정보를 전달하는 단계 및 상기 모니터링 관리부가 상기 IABR 설정 정보에 따라 결정된 IABR의 위치에 상기 정지점 주소 값을 설정하는 단계를 포함할 수 있다.
이 때, 상기 PC와 일치하는 정지점 정보에 포함된 기능이 수행되는 단계는, 인터럽트가 발생함에 따라 ISR(Interrupt Service Routine)부가 IBCR(Instruction address Breakpoint Control Register)을 확인하여 정지점 주소 값이 설정된 IABR의 위치를 확인하고, 상기 확인된 IABR의 위치에 포함된 기능이 수행될 수 있다.
이 때, 상기 정지점 정보를 전달하는 단계 이전에 타겟 시스템에서 정지점 정보가 초기화 되는 단계를 더 포함할 수 있다.
이 때, 상기 초기화 되는 단계는, 운영체제의 커널의 초기화 루틴에 포함되는 경우 또는 타겟 시스템의 전체 초기화 루틴에 포함되어 초기화가 이루어질 수 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 ARINC 653 기반 운영체제에서의 모니터링 장치는 클라이언트 시스템으로부터 수신된 정지점 정보를 모니터링 관리부에 전달하는 모니터링 에이전트부, 상기 정지점 정보를 레지스터에 설정하고, PC(Program Counter)와 상기 정지점 정보가 일치하는 경우 인터럽트를 발생시켜 상기 PC와 일치하는 정지점 정보에 포함된 기능을 수행하는 모니터링 관리부 및 상기 정지점 정보가 일치하는 경우 처리 루틴을 정의하는 ISR(Interrupt Service Routine)부를 포함할 수 있다.
이 때, 상기 모니터링 에이전트부는 상기 정지점 정보를 시스템 콜 형태로 상기 모니터링 관리부에 전달할 수 있다.
이 때, 상기 정지점 정보는 정지점 주소 값 및 IABR 설정 정보를 포함할 수 있다.
이 때, 상기 모니터링 관리부는, 상기 IABR 설정 정보에 따라 결정된 IABR의 위치에 상기 정지점 주소 값을 설정할 수 있다.
이 때, 상기 모니터링 관리부는, 인터럽트가 발생함에 따라 상기 ISR(Interrupt Service Routine)부가 IBCR(Instruction address Breakpoint Control Register)을 확인하여 정지점 주소 값이 설정된 IABR의 위치를 확인하고, 상기 확인된 IABR의 위치에 포함된 기능을 수행할 수 있다.
본 발명의 실시예에 따르면, ARINC 653 표준을 기반으로 하는 항공기용 응용 소프트웨어에 높은 신뢰성과 안정성을 지원함으로써 항공기용 응용 소프트웨어 기술 개발 및 기술 교류를 촉진하고, 항공기용 응용 소프트웨어 분야의 사업 활성화 시킬 수 있다.
도 1은 본 발명의 실시예에 따른 ARINC 653 기반 운영체제에서의 모니터링 장치의 구성을 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 ARINC 653 기반 운영체제에서의 모니터링 방법을 나타낸 도면이다.
도 3은 본 발명의 실시예에 따른 정지점 처리 과정을 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 스냅샷 처리 과정을 나타낸 도면이다.
도 5는 본 발명의 실시예에 따른 사이클 처리 과정을 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 ARINC 653 기반 운영체제에서의 모니터링 방법을 나타낸 도면이다.
도 3은 본 발명의 실시예에 따른 정지점 처리 과정을 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 스냅샷 처리 과정을 나타낸 도면이다.
도 5는 본 발명의 실시예에 따른 사이클 처리 과정을 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 ARINC 653 기반 운영체제에서의 모니터링 장치의 구성을 나타낸 도면이다.
도 1을 참고하면, 본 발명의 실시예에 따른 ARINC 653 기반 운영체제에서의 모니터링 장치는 모니터링부(30), 오퍼레이팅 시스템(40) 및 하드웨어(50)를 포함하여 구성된다.
이 때, 모니터링부(30)는 모니터링 에이전트부(310), 네트워크 에이전트부(320) 및 네트워크 드라이버부(330)를 포함하여 구성된다.
이 때, ISR부(420) 및 모니터링 관리부(430)는 오퍼레이팅 시스템(40)의 커널(410)에 위치할 수 있다.
이 때, 하드웨어(50)는 MCU(510)를 포함하여 구성된다.
모니터링 기능을 구성하는 시스템은 서버/클라이언트 구조로 구성할 수 있다.
여기서 서버는 도 1에서의 ARINC 653 기반의 운영체제와 모니터링 기능을 수행하는 모니터링 에이전트부(310), 네트워크 에이전트부(320) 및 네트워크 드라이버부(330), ISR부(420) 및 모니터링 관리부(430)를 포함하여 구성되는 타겟 시스템이고, 클라이언트 시스템은 모니터링 명령을 지시하고, 그 결과를 볼 수 있는 소프트웨어가 있는 시스템이다.
모니터링 에이전트부(Monitoring Agent, 310)는 허가된 외부 시스템의 통신 정보 처리를 수행하고, 시스템 콜을 통해 모니터링 관리부(330)와 통신한다.
모니터링 관리부(Monitoring Management, 430)는 모니터링 기능 처리한다.
ISR부(Interrupt Service Routine, 420)는 각각의 모니터링 세부 기능의 이벤트가 발생하였을 경우의 처리 루틴을 정의한다.
네트워크 드라이버부(Network Driver, 330)는 시스템 네트워크의 이더넷 또는 시리얼 등을 지원하는 드라이버이다.
네트워크 에이전트부(Network Agent, 320)는 네트워크 드라이버부(330)를 통해 패킷 정보를 송수신하고, 패킷 정보를 해석하여 모니터링 명령 정보를 모니터링 관리부(430)에 전달한다.
ARINC 653 표준 기반의 시스템은 비행기와 같은 큰 대규모 시스템에서 상당수의 어플리케이션과 프로세스들로 이루어지며, 이들은 파티션(10, 20, 30) 형태로 이루어진다.
이러한 각각의 애플리케이션 등의 실행시간 보장, 메모리 공유와 같은 기능을 위해서 파티션이란 개념을 두었고 사용자 레이어(10, 20, 30)에서 프로세스의 형태로 존재하고, 커널 레이어(410)에서는 파티션의 정보를 가지고 있는 데이터를 이용해 파티션을 통한 스케줄링을 하게 된다.
모니터링 기능은 ARINC 653 표준 기반의 실시간 운영체제 부분에 포함되며, 운영체제 위에서 특정 응용 소프트웨어가 수행되고 있을 때, 외부의 테스트 시스템 장비로부터 정의된 모니터링 요청 명령을 받으면, 타겟 시스템을 일시 중지하고 그 상태에서 요청 명령에 따라 메모리의 내용을 읽거나 메모리의 위치에 특정한 값을 쓰는 기능 등을 수행하고, 그 이후에 계속해서 시스템을 동작시킨다. 외부의 요청은 이더넷 또는 시리얼을 통하여 패킷 형태로 전달되며, 패킷 내용을 확인하여 명령을 확인하고 디버깅 기능을 수행한다.
이러한 모니터링 기능을 수행하는 ARINC 653 기반 운영체제에서의 모니터링 장치의 동작 흐름은 다음과 같다.
먼저 외부의 클라이언트 시스템이 타겟 시스템에 이더넷 또는 시리얼을 통하여 패킷 형태로 모니터링 기능을 요청하는 명령을 전달한다.
타겟 시스템의 네트워크 드라이버부(330)는 외부의 클라이언트 시스템으로부터 모니터링 명령 정보를 포함하는 패킷 정보를 받는다.
네트워크 에이전트부(320)는 패킷 정보에 안에 포함된 모니터링 명령 정보를 해석하여 모니터링 에이전트부(310)에 패킷 정보 안에 담고 있는 모니터링 명령 정보를 전달한다.
모니터링 에이전트부(310)는 모니터링 명령 정보를 해석하여, 모니터링의 세부 기능들 중에서 어떤 기능을 외부의 클라이언트 시스템이 요청했는지를 알아내고, 그 기능을 모니터링 관리부(430)가 수행하도록 시스템 콜을 이용하여 전달한다.
이 때, 모니터링 기능의 세부 기능들은 정지점(Break Point) 기능, 트리거 기능, 실행 흐름 제어 기능, 메모리 읽기 및 쓰기 기능, 레지스터 읽기 및 쓰기 기능, 스냅샷 기능, 사이클 기능을 포함할 수 있다.
정지점 기능은 ARINC 653 표준 기반의 실시간 운영체제가 수행되는 타겟 보드의 메모리 상태를 읽어나 메모리에 값을 쓰기 위하여 외부에서 요청하는 위치에 정지점을 설정하고, 불필요 시 해제하는 기능으로 IABR(Instruction Address Breakpoint Register)과 DABR(Data Address Breakpoint Register) 등을 이용한다.
트리거 기능은 정지점이 설정 및 실행된 후에, 미리 정의된 조건식에 따라서 미리 정의된 행위를 하는 기능이다,
실행 흐름 제어 기능은 특정 응용 파티션의 프로세스 실행 흐름을 제어 할 수 있는 기능((Breakpoint, Run, Continue, Single Step)을 의미한다.
메모리 읽기 및 쓰기 기능과 레지스터 읽기 및 쓰기 기능은 타겟 시스템의 메모리와 레지스터를 접근하여 값을 읽어오거나 쓰는 기능이다.
스냅샷 기능은 ARINC 653 표준 기반의 실시간 운영체제가 수행되는 타겟 시스템의 메모리 내용 중 특정한 변수들(variables)의 값을 스냅샷(snapshot) 형식으로 덤프(dump)하여 읽어오는 기능이다.
사이클 기능은 외부 테스트 시스템의 타이머 이벤트 같은 특정 이벤트에 따른 기능으로, 반복적으로 이벤트가 발생하는 것에 따라 특정 메모리 주소에 정해진 값을 반복으로 쓰는 기능으로, 예를 들어 응용 소프트웨어의 한 변수에 대해 이벤트가 발생할 때마다 주기적으로 값을 1씩 증가하여 쓰기 기능을 수행하는 것이다.
모니터링 관리부(430)는 모니터링 에이전트부(310)로부터 받은 모니터링 세부 기능 명령을 수행하고, 그 결과값을 모니터링 에이전트부(310)에 전달한다.
이 때, 모니터링 관리부(430)는 모니터링 에이전트부(310)의 시스템 콜에 따라 타겟 시스템의 메모리, 레지스터에 접근하여 모니터링 에이전트부(310)에 요청한 결과값을 보내어준다.
결과값을 전달받은 모니터링 에이전트부(310)는 네트워크 에이전트부(320)에 그 결과값을 보낸다.
네트워크 에이전트부(320)는 그 결과값을 포함하는 패킷 정보를 구성하여 네트워크 드라이버부(330)를 통해 외부의 클라이언트 시스템에 전송한다.
도 2는 본 발명의 실시예에 따른 ARINC 653 기반 운영체제에서의 모니터링 방법을 나타낸 도면이다.
도 2를 참고하면, 본 발명의 실시예에 따른 ARINC 653 기반 운영체제에서의 모니터링 방법은 우선 외부의 클라이언트 시스템(1000)이 네트워크 드라이버부(330)에 이더넷 또는 시리얼을 통하여 패킷 형태로 모니터링 기능을 요청하는 명령을 전달한다(S110).
네트워크 에이전트부(320)는 네트워크 드라이버부(330)를 통해 외부의 클라이언트 시스템(1000)으로부터 전달된 모니터링 명령 정보를 포함하는 패킷 정보를 받고, 패킷 정보에 안에 포함된 모니터링 명령 정보를 해석한다(S120).
이후, 네트워크 에이전트부(320)는 모니터링 에이전트부(310)에 패킷 정보 안에 담고 있는 모니터링 명령 정보를 전달한다(S130).
모니터링 에이전트부(310)는 모니터링 명령 정보를 해석하여, 모니터링의 세부 기능들 중에서 어떤 기능을 외부의 클라이언트 시스템이 요청했는지를 알아낸다(S140)
이후, 모니터링 에이전트부(310)는 모니터링의 세부 기능에 대한 정보를 모니터링 관리부(430)에 시스템 콜을 이용하여 전달한다(S150).
모니터링 관리부(430)는 모니터링 에이전트부(310)로부터 받은 모니터링 세부 기능 명령을 수행하고, 그 결과값을 모니터링 에이전트부(320)에 전달한다(S160).
이 때, 모니터링 관리부(430)는 모니터링 에이전트부(310)의 시스템 콜에 따라 타겟 시스템의 메모리, 레지스터에 접근하여 모니터링 에이전트부(310)에 요청한 결과값을 보내어준다(S170).
결과값을 전달받은 모니터링 에이전트부(310)는 네트워크 에이전트부(320)에 그 결과값을 보낸다(S180).
네트워크 에이전트부(320)는 그 결과값을 포함하는 패킷 정보를 구성하여(S190) 네트워크 드라이버부(330)를 통해 외부의 클라이언트 시스템(1000)에 전송한다(S200).
도 3은 본 발명의 실시예에 따른 정지점 처리 과정을 나타낸 도면이다.
타겟 시스템의 MCU(Micro Controller Unit, 510)가 MPC8349E라면 e300코어를 탑재하고 있는데, e300코어는 두 개의 IABR(Instruction Address Breakpoint Register)와 두 개의 DABR(Data Address Breakpoint Register)을 제공하여 하드웨어적인 정지점 설정을 지원한다. 따라서 모니터링 기능은 IABR과 DABR을 이용하여 정지점 기능과 트리거 기능을 지원한다.
IABR은 비교될 주소 값을 나타내는 IABR[CEA]와 현재 정지점의 활성화 여부를 나타내는 IABR[BE]를 포함하여 구성된다. IABR[CEA]는 가상어드레스의 하위 2bit를 제외한 나머지를 갖고, IABR[BE]는 해당 IABR이 작동하는지 여부를 나타낸다. IABR1과 IABR2는 각각 SPR(Special Purpose Register) 1010과 SPR 1018에 대응하므로 mtspr, mfspr instruction에 의해 접근 가능하다.
정지점 기능은, 클라이언트 시스템에서 정지점을 지정하면, 모니터링 대상이 되는 타겟 시스템에 탑재된 모니터링 서버에서 이를 받아서 정지점을 지정하고, 해당 정지점 주소에 PC(program counter)가 도달하면, 전체 실행을 중단하고, 정지점 주소에서 수행해야 할 행위를 실행하는 것이다.
이를 상세히 설명하기 위하여 도 3을 참고하면, 본 발명의 실시예에 따른 정지점 처리 과정은 우선 정지점 정보가 초기화 된다(S210).
이 때, 초기화 되는 단계는 오퍼레이팅 시스템(40)의 커널(410)의 초기화 루틴에 포함되는 경우 또는 타겟 시스템의 전체 초기화 루틴에 포함되는 경우에 초기화가 이루어질 수 있다.
이후, 클라이언트 시스템(1000)은 정지점 정보를 설정하여 타겟 시스템에 전달한다(S220).
이 때, 정지점 정보는 정지점 주소 값 및 IABR 설정 정보를 포함할 수 있다.
이후, 모니터링 에이전트부(310)가 시스템 콜을 호출하여 모니터링 관리부(430)에 정지점 정보를 전달한다(S230).
이후, 타겟 시스템에 정지점 정보가 설정된다(S240).
이 때, 모니터링 관리부(430)는 IABR 설정 정보에 따라 결정된 IABR의 위치에 정지점 주소 값을 설정한다.
이 때, 모니터링 관리부(430)는 정지점 정보에 따라 IABR1[CEA] 혹은 IABR2[CEA]에 주어진 정지점 주소 값을 설정한다.
이때, IABR1[CEA]와 IABR2[CEA]는 하위 2bit가 없으므로 0xfffffffc로 masking 하여 설정하고, IABR1[BE] 혹은 IABR2[BE]를 1로 설정하여 활성화한다.
이후, MCU(Micro Controller Unit)가 다음 명령(instruction)을 가져오기(fetch) 위해 PC(Program Counter)를 읽는다(S250).
이때, MCU가 읽는 PC와 IABR1혹은 IABR2의 위치가 일치하면 0x1300 인터럽트를 발생된다(S250).
이후, ISR부(420)는 0x1300 인터럽트를 발생함에 따라 0x1300 인터럽트 핸들러를 통해 IBCR[IABRSTAT]과 IBCR[IABR2STAT]을 확인하여 IABR1과 IABR2중에 어떤 정지점의 위치와 일치하여 인터럽트가 발생하였는지 확인한다(S260).
IBCR은 IABR1의 상태를 나타내는 IBCR[IABRSTAT], IABR2의 상태를 나타내는 IBCR[IABR2STAT], IABR1의 비교 타입을 나타내는 IBCR[CMP], IABR2의 비교 타입을 나타내는 IBCR[CMP2], IABR1과 IABR2의 만족여부에 따라 인터럽트를 발생하는 조건을 나타내는IBCR[SIG-TYPE] 및 외부 시그널의 발생 여부 조건을 나타내는 IBCR[DNS]을 포함하여 구성된다. IBCR[IABRSTAT]은 IABR1의 조건에 만족한 경우 1이 되고, IBCR[IABR2STAT]은 IABR2의 조건에 만족하는 경우 1이 된다. CMP의 경우는 IABR1에 지정된 주소가 현재 fetch한 주소와 1)일치하거나, fetch한 주소보다 2)크거나, 3)작으면 IABR1을 만족한 것으로 하는, 조건을 지시한다. IBCR[CMP2]의 경우는 IABR2에 대한 것이고, IBCR[CMP]와 동일하다. IBCR[SIG-TYPE]은 IABR1과 IABR2의 조건이 어떤 형태로 조합될 것인지를 나타내며, IBCR[DNS]는 발생한 인터럽트가 외부 시그널을 발생시키게 할 것인지 여부를 결정한다. IBCR은 슈퍼바이저(supervisor) 모드에서만 동작하고, SPR 309번에 대응하므로 mtspr과 mfspr을 통해서 접근 가능하다.
이후, IABR1과 IABR2의 만족 여부에 따라 각각에 지정된 기능을 수행한다(S270).
한편, 트리거 기능은 정지점 기능과 비교하면, IABR과 IBCR[IABRSTAT] 대신에 DABR과 DBCR[DABRSTAT]을 사용하는 점을 제외하고는 그 과정이 유사하다.
도 4는 본 발명의 실시예에 따른 스냅샷 처리 과정을 나타낸 도면이다.
도 4를 참고하면, 본 발명의 실시예에 따른 스냅샷 처리 과정은 먼저 클라이언트 시스템(1000)이 타겟 시스템에 사용자 이벤트, 정지점 및 스냅샷을 차례로 정의한다(S310, S320, S330)
이후, 클라이언트 시스템(1000)은 처음에 정의된 사용자 이벤트를 타겟 시스템에 보내어 스냅샷이 실행되도록 한다(S340)
이 때, 스냅샷이 실행된 후에는 미리 정의된 정지점 이벤트가 발생할 때마다 클라이언트 시스템(1000)이 요청한 변수들의 값을 덤프하여 읽어서 타겟 시스템에 저장한다.
이후 클라이언트 시스템이 저장된 값들을 요청하면, 타겟 시스템은 그 값들을 클라이언트 시스템에 제공한다.
도 5는 본 발명의 실시예에 따른 사이클 처리 과정을 나타낸 도면이다.
도 5를 참고하면, 본 발명의 실시예에 따른 사이클 처리 과정은 먼저 클라이언트 시스템(1000)이 타겟 시스템에 사용자 이벤트, 타이머 및 사이클을 차례로 정의한다(S410, S420, S430)
이후, 클라이언트 시스템(1000)은 처음에 정의된 사용자 이벤트를 타겟 시스템에 보내어 사이클이 실행되도록 한다(S440)
이 때, 사이클이 실행된 후에는 미리 정의된 타이머 이벤트가 발생할 때마다 클라이언트 시스템(1000)이 요청한 메모리 주소에 미리 정의된 값을 쓴다.
30 : 모니터링부 310 : 모니터링 에이전트부
320 : 네트워크 에이전트부 330 : 네트워크 드라이버부
40 : 오퍼레이팅 시스템 410 : 커널
420 : ISR부 430 : 모니터링 관리부
50 : 하드웨어 510 : MCU
320 : 네트워크 에이전트부 330 : 네트워크 드라이버부
40 : 오퍼레이팅 시스템 410 : 커널
420 : ISR부 430 : 모니터링 관리부
50 : 하드웨어 510 : MCU
Claims (11)
- 클라이언트 시스템이 타겟 시스템에 정지점 주소 값 및 IABR 설정 정보를 포함하는 정지점 정보를 전달하는 단계;
상기 타겟 시스템에 상기 정지점 정보가 설정되는 단계;
마이크로 컨트롤 유닛(MCU)이 프로그램 카운터(Program Counter)를 읽어오는 단계;
상기 정지점 주소 값과 상기 프로그램 카운터가 일치하는 경우, 인터럽트를 발생시키는 단계; 및
상기 인터럽트 발생시, 상기 타겟 시스템을 일시 중지하고, 상기 프로그램 카운터에 상응하는 상기 정지점 정보에 포함된 모니터링 기능을 수행하는 단계;
를 포함하는 것을 특징으로 하는 ARINC 653 기반 운영체제에서의 모니터링 방법. - 삭제
- 청구항 1에 있어서,
상기 정지점 정보가 설정되는 단계는,
모니터링 에이전트가 시스템 콜을 호출하여 모니터링 관리부에 상기 정지점 정보를 전달하는 단계; 및
상기 모니터링 관리부가 상기 IABR 설정 정보에 따라 결정된 IABR의 위치에 상기 정지점 주소 값을 설정하는 단계;
를 포함하는 것을 특징으로 하는 ARINC 653 기반 운영체제에서의 모니터링 방법. - 청구항 1에 있어서,
상기 프로그램 카운터와 일치하는 정지점 정보에 포함된 모니터링 기능이 수행되는 단계는,
인터럽트가 발생함에 따라 ISR(Interrupt Service Routine)부가 IBCR(Instruction address Breakpoint Control Register)을 확인하여 상기 정지점 주소 값이 설정된 IABR의 위치를 확인하고, 상기 확인된 IABR의 위치에 포함된 상기 모니터링 기능이 수행되는 것을 특징으로 하는 ARINC 653 기반 운영체제에서의 모니터링 방법. - 청구항 1에 있어서,
상기 정지점 정보를 전달하는 단계 이전에 상기 타겟 시스템에서 상기 정지점 정보가 초기화 되는 단계를 더 포함하는 것을 특징으로 하는 ARINC 653 기반 운영체제에서의 모니터링 방법. - 청구항 5에 있어서,
상기 초기화 되는 단계는,
운영체제의 커널의 초기화 루틴에 포함되는 경우 또는 상기 타겟 시스템의 전체 초기화 루틴에 포함되는 경우에 초기화가 이루어지는 것을 특징으로 하는 ARINC 653 기반 운영체제에서의 모니터링 방법. - 클라이언트 시스템으로부터 정지점 주소 값 및 IABR 설정 정보를 포함하는 정지점 정보를 수신하는 모니터링 에이전트부;
상기 정지점 정보를 레지스터에 설정하고, 프로그램 카운터(Program Counter)와 상기 정지점 주소 값이 일치하는 경우 인터럽트를 발생시켜, 타겟 시스템을 일시 중지하고, 상기 프로그램 카운터와 일치하는 상기 정지점 정보에 포함된 모니터링 기능을 수행하는 모니터링 관리부; 및
상기 정지점 정보가 일치하는 경우의 처리 루틴을 정의하는 인터럽트 서비스 루틴부(Interrupt Service Routine)를 포함하는 것을 특징으로 하는 ARINC 653 기반 운영체제에서의 모니터링 장치. - 청구항 7에 있어서,
상기 모니터링 에이전트부는 상기 정지점 정보를 시스템 콜 형태로 상기 모니터링 관리부에 전달하는 것을 특징으로 하는 ARINC 653 기반 운영체제에서의 모니터링 장치. - 삭제
- 청구항 7에 있어서,
상기 모니터링 관리부는,
상기 IABR 설정 정보에 따라 결정된 IABR의 위치에 상기 정지점 주소 값을 설정하는 것을 특징으로 하는 ARINC 653 기반 운영체제에서의 모니터링 장치. - 청구항 7에 있어서,
상기 모니터링 관리부는,
인터럽트가 발생함에 따라 상기 인터럽트 서비스 루틴부가 IBCR(Instruction address Breakpoint Control Register)을 확인하여, 상기 정지점 주소 값이 설정된 IABR의 위치를 확인하고, 상기 확인된 IABR의 위치에 포함된 상기 모니터링 기능을 수행하는 것을 특징으로 하는 ARINC 653 기반 운영체제에서의 모니터링 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120121344A KR101666398B1 (ko) | 2012-10-30 | 2012-10-30 | Arinc 653 기반 운영체제에서의 모니터링 방법 및 장치 |
US13/943,399 US9164873B2 (en) | 2012-10-30 | 2013-07-16 | Monitoring method and apparatus for ARINC 653-based operating system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120121344A KR101666398B1 (ko) | 2012-10-30 | 2012-10-30 | Arinc 653 기반 운영체제에서의 모니터링 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140056652A KR20140056652A (ko) | 2014-05-12 |
KR101666398B1 true KR101666398B1 (ko) | 2016-10-17 |
Family
ID=50548625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120121344A KR101666398B1 (ko) | 2012-10-30 | 2012-10-30 | Arinc 653 기반 운영체제에서의 모니터링 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9164873B2 (ko) |
KR (1) | KR101666398B1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9983902B2 (en) | 2015-05-14 | 2018-05-29 | General Electric Company | System and method for multi-level real-time scheduling analyses |
DE102015211458A1 (de) * | 2015-06-22 | 2016-12-22 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Absichern einer Programmzählerstruktur eines Prozessorsystems und zum Überwachen der Behandlung einer Unterbrechungsanfrage |
CN107342805A (zh) * | 2017-05-18 | 2017-11-10 | 上海卫星工程研究所 | 基于断点续传拓展点波束链路数据传输时间的方法 |
CN109062764A (zh) * | 2018-08-01 | 2018-12-21 | 郑州云海信息技术有限公司 | 监控数据的输出方法和装置 |
CN110457120B (zh) * | 2019-07-22 | 2021-10-29 | 浙江大学 | 基于osek嵌入式实时操作***的非周期定时器驻留机制 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070226702A1 (en) * | 2006-03-22 | 2007-09-27 | Rolf Segger | Method for operating a microcontroller in a test environment |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4672611A (en) * | 1984-04-20 | 1987-06-09 | Fuji Electric Company Ltd. | Serial transmission line monitoring device |
US4943919A (en) * | 1988-10-17 | 1990-07-24 | The Boeing Company | Central maintenance computer system and fault data handling method |
US5019980A (en) * | 1989-07-14 | 1991-05-28 | The Boeing Company | General purpose avionics display monitor |
US7149612B2 (en) * | 2004-01-05 | 2006-12-12 | Arinc Incorporated | System and method for monitoring and reporting aircraft quick access recorder data |
-
2012
- 2012-10-30 KR KR1020120121344A patent/KR101666398B1/ko active IP Right Grant
-
2013
- 2013-07-16 US US13/943,399 patent/US9164873B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070226702A1 (en) * | 2006-03-22 | 2007-09-27 | Rolf Segger | Method for operating a microcontroller in a test environment |
Also Published As
Publication number | Publication date |
---|---|
US9164873B2 (en) | 2015-10-20 |
KR20140056652A (ko) | 2014-05-12 |
US20140122937A1 (en) | 2014-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Feng et al. | {P2IM}: Scalable and hardware-independent firmware testing via automatic peripheral interface modeling | |
US20140068134A1 (en) | Data transmission apparatus, system, and method | |
KR101666398B1 (ko) | Arinc 653 기반 운영체제에서의 모니터링 방법 및 장치 | |
US10409632B2 (en) | Emulation of hardware components based on interrupt design | |
US8966490B2 (en) | System, method and computer program product for scheduling a processing entity task by a scheduler in response to a peripheral task completion indicator | |
CN105939286B (zh) | 令牌桶管理方法及装置 | |
CN106371847B (zh) | Windows xp***下CPCI总线RS422通信驱动方法及*** | |
US8560750B2 (en) | Systems and methods for advanced interrupt scheduling and priority processing in a storage system environment | |
CN112840341B (zh) | 用于探测与安全相关的数据流的方法 | |
WO2009153621A1 (en) | A system, method and computer program product for scheduling processor entity tasks in a multiple-processing entity system | |
CN108141471B (zh) | 压缩数据的方法、装置和设备 | |
US10505757B2 (en) | Network interface module and a method of changing network configuration parameters within a network device | |
Han et al. | Resource partitioning for Integrated Modular Avionics: comparative study of implementation alternatives | |
CN109597653A (zh) | Bios与bmc命令交互的方法、bios及bmc | |
US20020104043A1 (en) | Partitioned avionics computer and a method and system for debugging | |
KR102053849B1 (ko) | 항공기 시스템 및 그것의 제어 방법 | |
US9804992B2 (en) | Computer system and method for accessing virtual machine | |
CN100481093C (zh) | 验证目标***的验证***及其验证方法 | |
US9563494B2 (en) | Systems and methods for managing task watchdog status register entries | |
CN106681812B (zh) | 一种分区调度方法 | |
US9678852B2 (en) | Tracing the operations of a data processing apparatus using trace data source identifiers to respond to flush requests | |
CN104717052A (zh) | 一种基于afdx网络交换机芯片的虚拟验证***及方法 | |
Shin et al. | A software-based monitoring framework for time-space partitioned avionics systems | |
CN117272412B (zh) | 中断控制寄存器保护方法、装置、计算机设备及存储介质 | |
KR20170104303A (ko) | 항공전자 통신 모듈 및 이의 동작 방법 |
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: 20190925 Year of fee payment: 4 |