본문 바로가기

IT42

디버깅을 위한 호스트 시스템에서의 테스팅2 - 인터럽트 루틴 호출 / 스크립트, 출력 파일 이어서 계속 테스팅 얘기를 해볼게요. [인터럽트 루틴의 호출] 언젠가 언급했듯이 대부분의 임베디드 시스템은 인터럽트가 발생해서 인터럽트 루틴이 실행되는 것으로 뭔가를 합니다. 따라서 테스트 환경에서 시스템이 뭔가를 하도록 하려면 테스트용 시뮬레이터 코드는 인터럽트 루틴을 실행시켜야 합니다. 이렇게 하는 건 그리 어려운 일은 아닙니다. 인터럽트 루틴은 두 부분으로 나눠져 있는 경향이 있는데 하나는 하드웨어를 담당하고 다른 하나는 시스템의 다른 부분을 처리합니다. 테스트를 위해서 프로그래머는 인터럽트 루틴을 하드웨어 의존적인 부분이 하드웨어 독립적인 부분을 호출하도록 구성해야 합니다. 그렇게 하면 하드웨어 독립적인 부분을 C로 작성할 수 있고 테스트용 시뮬레이터 코드는 단순히 호출할 수 있습니다. 시리얼 포.. 2020. 6. 23.
디버깅을 위한 호스트 시스템에서의 테스팅1 - 테스팅의 목적과 기본 드디어 새로운 파트로 넘어왔습니다. 이번에는 고객에게 선적할 때 제대로 동작하도록 하기 위한 임베디드 시스템 소프트웨어를 테스트하고 디버깅하는 방법을 위주로 이어나갈 예정입니다. 대부분의 경력이 많은 엔지니어들은 작성할 때 많은 버그를 가진 코드는 궁극적으로 선적될 때도 많은 버그를 가진 코드가 될 것이라고 어느 정도 생각합니다. 테스트와 품질 확인 절차는 어느 정도 버그를 줄여 줄 것이긴 하겠지만, 버그를 적게 가진 제품을 선적하는 유일한 방법은 처음부터 애초에 버그를 적게 갖도록 프로그램을 잘하는 것이라고 할 수 있겠습니다. 임베디드 시스템 소프트웨어에서 버그가 없도록 만드는 기술들은 응용 프로그램 소프트웨어에서 버그를 없애는 것과 거의 동일하다고 여겨집니다. 그러나 두 가지 이유에서 임베디드 시스템.. 2020. 6. 22.
타깃 시스템에 임베디드 시스템 올리는 방법 소프트웨어 개발 툴에 대한 내용은 여기까지이므로 타깃 시스템에 대한 내용을 다룬 후 전체적인 요약정리를 하도록 하겠습니다. 한눈에 내용을 파악하고 싶다면 가장 아래부터 확인하고 각 세부사항은 참고된 링크를 살펴봐주세요. 로케이터는 타깃 소프트웨어의 이미지를 담고 있는 파일을 생성합니다. 이제 그런 파일을 타깃 시스템에 올리는 문제로 주제를 바꿔봅시다. 이렇게 하는 데는 몇 가지의 방법이 있으니 다뤄볼게요. [PROM 프로그래머 통하기] 로케이터의 출력 파일을 타깃 시스템에 올리는 정통적인 방법은 파일을 이용해서 ROM이나 PROM을 만드는 것입니다. ROM에 맞도록 제작하는 비용이 상당히 높은 편이라서 소프트웨어 개발이 완전히 끝났을 때가 롬을 제작하기 가장 적절한 시점이라고 할 수 있습니다. 프로그램을.. 2020. 6. 20.
임베디드 소프트웨어 - 링커/로케이터2 (문자열 상수, 로케이터 맵, RAM 밖에서) 링커/로케이터 두 번째 얘기를 하기를 앞서서 앞선 글에서 조금 부족했던 로케이터들이 제공하는 내용에 대해서 간략하게 적어볼 테니 복습하는 마음으로 한번 읽어보면 좋을 것 같습니다. 나열 후 별도의 설명 없이 바로 다음 내용으로 이어가도록 하겠습니다. 로케이터가 제공하는 것 - 프로그래머는 ROM과 RAM의 주소 영역을 결정할 수 있고, 프로그램이 이런 주소 영역을 만족하지 못하는 경우 로케이터는 경고를 할 것임. - 프로그래머는 세그먼트가 끝나야 하는 주소를 정할 수 있고, 로케이터는 세그먼트를 그 주소 이전으로 배치시킬 것임. 이것은 스택 같은 것에 유용함. - 프로그래머는 각 세그먼트를 그룹으로 할당해서, 로케이터에게 각각의 세그먼트를 다루는 대신 그룹이 어디에 올라갈지를 결정할 수 있음. 만약에 사.. 2020. 6. 19.