본문 바로가기

IT/임베디드 시스템36

임베디드 소프트웨어 (1) - 라운드로빈 구조, 인터럽트 라운드로빈 구조 임베디드 소프트웨어 기본 구성을 위해서 다양한 구조에 대해서 알아봅시다. 주어진 시스템에 어떤 소프트웨어 구조가 적합한지를 결정하는 가장 중요한 요소는 얼마나 많은 시스템의 응답을 제어해야 하는지와 밀접한 관계가 있습니다. 절대적인 응답 시간뿐만 아니라 마이크로프로세서의 속도와 다른 수행 조건들에 의해서도 얼마나 좋은 응답을 얻을 수 있는지가 결정됩니다. 응답 시간에 대한 조건의 거의 없고, 그리 절박하지 않은 시스템은 매우 간단한 구조로 작성될 수도 있죠. 많은 종류의 이벤트에 대해서 빠르게 반응해야만 하고 다양한 수행 조건들과 각기 다른 제한 시간, 다양한 우선순위를 가진 시스템은 더 복잡한 구조를 가져야만 하고요. 네 종류의 구조에 대해서 다룰 예정입니다. 먼저 실제적으로 시스템의 응답이나 우선 순.. 2020. 6. 2.
인터럽트 지연과 전체 내용 요약 (핵심) [인터럽트 지연] 인터럽트는 시스템으로부터 좀 더 나은 응답을 얻어내려는 수단이고, 임베디드 시스템에서 응답 속도는 언제나 중요한 문제이기 때문에, 내 시스템은 각각의 인터럽트에 대해 얼마나 빠르게 응답할지 고민하는 것은 굉징히 중요합니다. 이 고민에 대한 답은 몇 가지 요인에 의해서 결정되죠. 하나. 해당하는 인터럽트가 금지되는 가장 긴 시간 둘. 해당하는 인터럽트보다 높은 우선 순위를 가진 인터럽트를 위한 인터럽트 루틴 수행 시간 셋. 마이크로프로세서가 수행하던 일을 멈추고, 인터럽트 루틴으로 점프하기 위해 필요한 준비 작업을 하고, 인터럽트 루틴의 명령어를 실행시키기 시작할 때까지의 시간 넷. 인터럽트 루틴이 컨택스트를 저장하고 나서 응답이라고 여겨지는 일들을 수행하는데 걸리는 시간 인터럽트 지연이.. 2020. 6. 2.
인터럽트의 정의와 반응 이번에는 인터럽트가 무엇인지, 그리고 인터럽트가 발생했을 시 마이크로프로세서는 일반적으로 어떤 식으로 행동을 하고, 인터럽트 루틴은 어떤 일을 수행하고, 주로 어떻게 작성되는지에 대해서 다루겠습니다. 역시나 알고 있는 내용이라면 다음 글부터 읽어도 상관없습니다. 우선, 인터럽트는 하드웨어로부터 발생되는 신호를 말합니다. 시리얼 포트나, 네트워크 포트를 제어하는 등의 역할을 하는 대부분의 I/O 칩들은 특정한 이벤트가 발생했을 때, 알리고 싶어합니다. 시리얼 포트 칩이 포트로부터 문자 한 바이트를 받았을 시, 마이크로프로세서가 칩 내부에 저장된 그 문자를 읽고 메모리의 다른 곳에 저장하도록 해야 합니다. 마찬가지로, 시리얼 포트 칩이 한 문자를 전송하는 것을 끝냈을 때는 마이크로프로세서는 전송될 다음 문자.. 2020. 6. 2.
임베디드 시스템 소프트웨어 - 인터럽트 / 마이크로프로세서 이 카테고리 초입에서는 임베디드 시스템에서 사용하는 하드웨어는 건너뛰고, 본론이라고 할 수 있는 임베디드 시스템 소프트웨어로 들어갈 것입니다. 시스템이 뭔가 다른 일을 하고 있는 동안 외부 이벤트에 대해서 빠르게 반응하도록 하는 일은 매우 어려운 일입니다. 가령 우유 저장 창고를 감시하는 시스템이 n번 창고의 양을 계산하고 있는 동안에 n-1 창고의 양을 묻는 동작을 요구하면 시스템은 바로 응답을 해야 하기 때문이죠. 시스템의 응답 문제에 접근하는 1번째 방법은 우리가 함께 논의할 인터럽트를 사용하는 것입니다. 인터럽트는 임베디드 시스템 안의 마이크로프로세서가 어떤 일을 하던지 우선 정지시킨 후 인터럽트를 발생시킨 이벤트에 대한 응답으로 다른 코드를 실행시킵니다. 인터럽트는 시스템의 응답 문제를 해결할 .. 2020. 6. 2.