본문 바로 가기

IAR 도구를 활용한 임베디드 개발에서 AI 에이전트를 사용하는 방법

Read Time

8분

요약

AI 에이전트는 접근할 수 있는 범위만큼만 유용합니다. IAR은 에이전트가 실제 임베디드 작업을 수행할 수 있도록 문서, 디버거 및 Python 자동화 레이어를 개방했습니다. 이를 통해 엔지니어는 최종 제품 출시를 계속 관리할 수 있습니다. 

  • 문제는 모델 자체가 아니라 접근성입니다: 범용 어시스턴트는 실행 중인 대상의 레지스터, 메모리 또는 호출 스택을 볼 수 없으며, 릴리스 간에 변경되는 툴체인 문서를 확인할 수도 없습니다. 이러한 제약 조건 때문에 에이전트는 추측에 의존하게 되는데, 임베디드 환경에서는 약간의 오탐으로도 상당한 시간 손실을 볼 수 있습니다.
  • 에이전트에게 실질적인 도구를 제공하는 세 가지 개방 요소가 있습니다: IAR 문서 MCP 서버는 docs.iar.com의 답변을 기반으로 하며 소스 코드 링크를 제공합니다. C-SPY MCP 서버를 통해 에이전트는 세션을 시작하고, 중단점을 설정하고, 스택을 검사하고, 레지스터와 메모리를 읽을 수 있습니다. cspy-py Python 패키지를 사용하면 모델 외부에서 디버그 루프를 실행하고 답변만 반환하는 스크립트를 작성할 수 있습니다. 이를 통해 왕복 횟수와 토큰 수를 줄일 수 있습니다(측정 결과는 아직 공개되지 않았습니다).
  • 스크립트가 반복 가능한 테스트로 변환됩니다: 동일한 cspy-py 로직이 pytest 기반 펌웨어 테스트로 변환되어 하드웨어 루프 설정까지 지원하며, Linux 및 Windows 운영 체제에서 노트북과 CI 환경 모두에서 실행됩니다. 보드 없이도 VS Code의 최신 워크플로우 프로젝트를 사용하여 C-SPY 시뮬레이터에서 실행해 볼 수 있습니다.
  • 엔지니어는 제어권을 유지합니다: 이러한 도구는 IAR의 GitHub에서 오픈 소스로 제공되므로 피드백을 환영합니다. 에이전트가 디버거를 제어하지만, 에이전트가 발견한 내용과 작성한 테스트는 파이프라인에 추가하기 전에 검토할 수 있습니다.

임베디드 프로젝트에서 신뢰하는 도구와 동일한 도구를 AI 에이전트에도 제공하세요

임베디드 개발용 AI 에이전트의 성능은 접근 가능한 범위만큼만 발휘됩니다. 코딩 보조 도구는 펌웨어를 빠르게 작성하지만, 단순히 코드를 생성하는 것 이상의 작업에 이르러서는 멈춰 버립니다. 이들은 개발 대상을 파악하지 못하고, 툴체인 옵션을 추측하며, 채팅창에 붙여넣는 모든 디버깅 단계마다 문제 해결에 집중해야 할 시간을 빼앗아 갑니다.

이는 모델의 문제가 아니라 접근성의 문제입니다. 에이전트가 실제 임베디드 작업을 수행할 수 있도록 IAR 툴체인의 세 가지 요소, 즉 문서, 디버거, 그리고 자동화 및 테스트를 위한 Python 레이어를 개방했습니다.

왜 AI 어시스턴트는임베디드 개발에 어려움을겪을까요?

임베디드 작업은 범용 어시스턴트가 파악할 수 없는 요소들에 의존합니다. “왜 이 하드 오류가 발생하는가?”에 대한 답은 실행 중인 타깃의 레지스터, 메모리, 호출 스택 속에 있습니다. “어떤 옵션이 필요한가?”에 대한 답은 릴리스마다 변경되는 툴체인 문서에 담겨 있습니다. 이 두 가지에 접근할 수 없는 어시스턴트는 자신 있는 추측으로 그 공백을 메우게 되는데, 임베디드 개발에서는 사소한 오판 하나만으로도 반나절을 허비할 수 있습니다.

AI 어시스턴트가 IAR 문서를 읽을 수 있을까요?

네. IAR 문서 MCP 서버 는 어시스턴트를 docs.iar.com의 공식 문서와 연결해 줍니다. MCP(Model Context Protocol)는 어시스턴트가 외부 도구와 데이터 소스를 호출할 수 있게 해주는 개방형 표준입니다. 답변은 사용자가 직접 검색할 때 보는 것과 동일한 페이지에 기반을 두고 있으며, 종종 원본으로 돌아가는 링크가 포함되어 있어 클릭 한 번으로 확인할 수 있습니다.

별도의 인증이 필요하지 않으며, Claude Code, Visual Studio Code의 GitHub Copilot, Cursor, Claude Desktop과 같은 MCP 호환 도구와 연동됩니다. 설정은 단일 명령어나 간단한 구성 항목 입력만으로 완료됩니다.

실용적인 팁: 제품명과 대상 아키텍처를 명시하고, 오류 메시지를 그대로 붙여넣으세요. 질문이 구체적일수록 더 정확한 답변을 얻을 수 있습니다.

AI 에이전트가 C-SPY를 사용하여 펌웨어를 어떻게 디버깅할 수 있을까요?

문서에서는 어떤 결과가 나와야 하는지 알려줍니다. 디버거는 실제로 어떤 일이 일어났는지 보여줍니다.

이 C-SPY MCP 서버 는 C-SPY 디버거를 에이전트에게 도구로 제공합니다. 이를 통해 세션을 시작하고, 대상 시스템을 실행 및 중지하며, 중단점과 감시점을 설정하고, 스택과 지역 변수를 검사하고, 레지스터와 메모리를 읽으며, 디스어셈블리 코드를 확인하고, 터미널 출력을 캡처할 수 있습니다. 응답은 구조화되어 있으며 기계가 읽을 수 있는 오류 코드를 포함하므로, 오류가 발생하더라도 에이전트는 루프에 빠지지 않고 복구할 수 있습니다. 리포지토리에는 세션 부트스트랩이나 대상 시스템이 중지될 때까지 대기하는 방법 등, 에이전트를 위해 작성된 간단한 플레이북도 포함되어 있습니다.

실행 중인 시스템을 방해하고 싶지 않은 경우, ‘실행 중인 대상에 연결(attach to running target)’ 모드를 사용하면 대상을 재설정하거나 재프로그래밍하지 않고도 상태를 읽을 수 있습니다.

파이썬 스크립트로 토큰을 저장하고 펌웨어 테스트를 자동화할 수 있을까요?

가능합니다. 바로 이 부분에서 워크플로우의 효율성이 발휘됩니다. 에이전트가 서로 다른 도구를 사용하여 다양한 작업을 수행하는 디버그 세션의 경우, 각 단계마다 왕복 처리가 필요합니다. 에이전트가 도구를 호출하면 결과가 대화 기록에 남고, 모델은 점점 늘어나는 기록을 다시 읽은 후 다음 호출을 결정합니다. 10단계의 조사 과정은 모델을 10번 통과하는 것을 의미하며, 모든 페이로드는 컨텍스트 내에서 유지됩니다.

이 cspy-py 파이썬 패키지 는 작업 방식을 변화시킵니다. 에이전트는 백엔드를 실행하고, 중단점을 설정하며, 해당 지점까지 실행한 뒤 값을 읽어와 결과만 출력하는 단일 스크립트를 작성합니다. 이 루프는 모델 외부에서 실행되며, 결과만 컨텍스트로 되돌아옵니다.

python

import iar_cspy as cspy

with cspy.launch("/path/to/iar/install") as client:

with client.debugger.session("launch.json") as dbg:

client.breakpoints.add("your_function")

dbg.go_and_wait(timeout=10)

print(dbg.eval_int("your_variable"))

왕복 횟수가 적을수록 통신량이 줄어들며, 이는 토큰 수가 줄어들고 처리 속도가 빨라진다는 것을 의미합니다. 아직 측정 결과를 공개하지 않았으니, 직접 프로젝트에서 시도해 보고 비교해 보시기 바랍니다.

이 스크립트는 세션이 종료된 후에도 계속 실행됩니다. cspy-py에는 pytest 플러그인이 포함되어 있어, 동일한 로직을 하드웨어-인-더-루프(hardware-in-the-loop) 설정을 포함한 반복 가능한 펌웨어 테스트로 활용할 수 있으며, 노트북과 CI 환경 모두에서 Linux 및 Windows에서 실행됩니다. 테스트 더블(test doubles)을 사용하면 백엔드 없이도 테스트 주변 코드를 단위 테스트할 수 있습니다.

'Modern Workflow' 튜토리얼을 활용하여 보드 없이 테스트해 보세요

이 기능이 작동하는 모습을 가장 빠르게 확인하는 방법은 IAR의 GitHub에 공개된 ‘모던 워크플로우’ 프로젝트를 활용하는 것입니다. 이는 Dev Container 내의 Visual Studio Code에서 바로 실행할 수 있는 기성 예제이므로, IAR 빌드 도구, CMake 및 디버깅 확장 프로그램이 자동으로 설정되어 팀원 모두가 동일한 환경을 사용할 수 있습니다.

이 프로젝트는 CMake 사전 설정을 사용하여 빌드하고, C-SPY 시뮬레이터에서 단위 테스트를 실행하며, 시뮬레이터에서 F5 키를 눌러 디버깅할 수 있습니다. 하드웨어가 있는 경우 I-jet 및 J-Link도 지원됩니다. 시작하는 데 보드가 필요하지 않으므로, 에이전트에게 맡기기에도 안전한 프로젝트입니다. 에이전트에게 문서에서 특정 내용을 찾아보게 하거나, C-SPY 세션을 시작하게 하거나, 중단점에서 멈추게 하거나, 찾은 내용을 테스트로 전환하도록 지시해 보세요.

그림 1. Visual Studio Code에서 C-SPY MCP 서버를 사용하는 AI 지원 임베디드 디버깅 워크플로.

빌드하려면 IAR 클라우드 라이선스나 평가용 토큰이 필요하며, 저장소에는 두 가지 로그인 방법에 대한 설명이 나와 있습니다. IAR에 문의하여 에 문의하여 평가용 클라우드 라이선스를 받으세요.

유의 사항

이 기능들은 아직 초기 단계이므로 변경될 수 있습니다. 이 기능들은 IAR의 GitHub 에 공개되어 있으며, 여러분의 피드백을 기다립니다. 에이전트가 디버거를 구동하지만, 엔지니어는 여전히 여러분입니다. 에이전트가 발견한 내용을 검토하고, 테스트가 파이프라인에 반영되기 전에 작성된 테스트를 검토해 주세요.

동일한 디버거. 동일한 툴체인. 이제 여러분의 에이전트도 활용할 수 있습니다.

아직 IAR 고객이 아니신가요?

저희 팀에 저희 팀에 문의하여 IAR이 AI 지원 워크플로우를 통해 팀이 임베디드 소프트웨어를 더 빠르게 개발할 수 있도록 돕는 방법을 알아보시거나, 무료 체험판을 다운로드하여 직접 체험해 보세요.

    IAR 임베디드 개발 도구

    알아보기