본문 바로가기
Embedded SW/[Infineon] TC275 Lite Project

임베디드 SW 개발 환경 세팅 방법 정리 (소스코드 편집기, 컴파일러, 디버거 환경 설정 방법)

by 방구석 임베디드 2021. 11. 1.
반응형

안녕하세요.

오늘은 임베디드SW 개발 환경을 세팅하는 방법을 정리하도록 하겠습니다.

이 글은 개발의 전체적인 내용을 연재하고 있는 글이 중에 하나입니다.

 

그래서, 앞에쓴 글을 보시면 더욱 도움이 되실것 같습니다.

아래 글을 링크 걸어둘께요. 필요하신 분은 한번 읽어 보세요.

(물론 이 글만 보셔도 크게 문제는 없습니다.)

 

1) 임베디드 SW, MCU에 대한 정리 (feat. 임베디드 SW 비전)

https://embeddedchallenge.tistory.com/210

2) MCU 개발 장비 구매 방법 정리 (인피니언 MCU TC275 Lite)

https://embeddedchallenge.tistory.com/211

 

이제 임베디드 SW 개발환경을 세팅할 것입니다.

먼저 개발환경을 세팅한다는 것은 어떤 뜻일까요?

1. 임베디드 SW 개발환경을 세팅한다는 것은 무엇을 의미하는 것일까?

제가 1편글에서 Embedded SW가 무엇인지에 대해서 설명을 드렸습니다.

임베디드 SW는 내장된 SW로서, 특정 기계속에 들어가서 특정 목적을 수행하는 SW라고 이야기 했습니다.

가령 아래 사진을 보면 세탁기가 보입니다.

이 세탁기를 뜯으면 아래와 같은 ECU(Electric Control Board)가 보입니다.

이 ECU가 세탁기의 특정 동작을 제어하는 역할을 합니다.

그런 제어하는 동작에 SW를 만들어서

아래 검은 칩속에 넣어야 합니다.

그렇다면 여기서 궁금한 부분이 생깁니다.

어떻게 저 검은 박스에 SW를 넣을 수 있을까?

 

개발환경이 세팅이 되어야지 저 SW를 검은 박스안에 넣을 수 있습니다.

 

임베디드 SW개발 환경을 세팅한다는 것은 2가지를 

1) SW를 개발(만들어서)해서 저 검은색 Chip안에 소프트웨어를 넣을 수 있게 하기 위해서 필요

2) SW를 디버깅 (소프트웨어가 문제가 있는지 분석하고 수정하는 것)을 하기 위해 개발환경이 필요

 

크게 이 2가지를 하기 위해서 우리는 SW개발환경을 세팅해야 합니다.

 

SW개발환경을 세팅하기 위해서는 무엇무엇이 필요할까요?

1) SW개발하기 위한 소스코드 편집기가 필요합니다.

어렵게 생각할 필요가 없습니다. 그냥 메모장, notepad와 같은 글을 쓸수 있는 프로그램이면 가능합니다.

하지만, SW를 조금더 쉽게 작성하기 위한 edit 프로그램들이 존재하고 있습니다.

이것들은 소스코드 편집기라고 부릅니다.

대표적인 소스코드 편집기로는 SourceInsight와 Sublime이 있습니다.

개일적으로 저는 SourceInsight를 돈을주고 구매하여 사용하고 있습니다.

각각 장단점이 있는데, 자신의 손에 잘 맞는 Tool을 사용하는 것이 좋습니다.

 

2) 개발한 SW를 기계가 알아 들을 수 있는 기계어를 변겅을 하수 있도록 해주어야 합니다.

즉 컴파일러라는 프로그램을 통해서 내가 만들 SW를 기계어로 변경을 합니다.

위의 main함수를 컴파일러를 통하여 기계어로 만들면 아래와 같은 바이너리 형태의 코드를 만들어주게 됩니다.

아래 값은 16진수로 표현이 되어 있지만

2진수로 표현하면 01010111010101.........로 표현이 될수 있으면

기계는 01010110101을 인식하여 연산을 수행합니다.

이렇게 기계어러 변환을 시켜주는 장치가 컴파일러입니다.

회사에서는 컴파일러를 직접 구매를 하여 사용을 합니다.

WindRiver, Tasking, Greenhills 등이 대표적이 예입니다.

이러한 컴파일러를 크로스 컴파일(cross compiler)러라고 부릅니다.

크로스 컴파일러는 컴파일러가 실행되는 플랫폼이 아닌

다른 플랫폼에서 실행 가능한 코드를 생성할 수 있는 컴파일러입니다.

즉, WindRiver는 PC에 설치할것입니다.

그리고 PC에서 소스코드를 편집하고 이것을 컴파일러를 통해 다운로드 가능한 elf 파일로 만듭니다.

그런데 이것을 노트북에서 실행시키는 것이아니라, MCU의 Flash에 다운로드를 하여

다른 플랫폼에서 실행을 하도록 만듭니다.

이렇게 다른 플랫폼에서 실행이 가능한 기계어 코드를 생성할 수 있는 컴파일러를 크로스 컴파일러라고 부릅니다.

3) 이제 소프트웨어를 다운로드하고 디벙깅하는 설정을 해주어야 합니다.

회사에서는 T32라는 디버깅 Tool을 많이 이용합니다.

천만원의 고가의 장비입니다.

아래는 Trace32의 모습입니다. 이 Trace32를 

보드와 연결을 시킵니다. 이때 JTAG이라고 불리는 라인에

T32를 연결시킵니다.

T32는 SW를 MCU의 메모리(Flash)에 다운로드를 할 수 있으며

그리고 다양한 디버깅을 수행할수 있는 파워풀한 디버깅 장비입니다.

저도 집에서 개발을 할때 이런장비가 있었으면 좋겠습니다.

하지만, 아쉽게도 고가의 장비이기 때문에 집에서 구매하는 것은 힘이 듬니다.

하지만, 우리가 이전 블로그에서 구매한 보드안에는 내장형 디버거가 들어가 있습니다.

따라서, USB를 통신라인을 통해서 SW 다운로드도 가능하고, 디버깅도 가능합니다.

이것은 추후 포스팅을 통해서 자세히 설정 및 사용을 해보도록 하겠습니다.

 

이상으로 우리는 Embedded SW 개발환경을 설정하기 위해서는

1) 소스코드 편집기

2) 컴파일러

3) 디버깅 및 다운로드 장비

위의 3가지가 필요하다는 것을 알게 되었습니다.

 

회사에서는 보통

1) 소스코드 편집기 -> 소스인사이트

2) 컴파일러 -> WindRiver 컴파일러

3) 디버깅 및 다운로드 장비 -> T32

를 사용합니다.

 

하지만 우리는 가정에서 개발을 할것이고

이러한 1)~3)의 개발환경을 하나의 프로그램에서 다운받아 사용할수 있습니다.

지금부터 그 장비를 어떻게 다운받는지를 설명하려고 합니다.

 

우선 결로부터 말씀드리면 1)~3)의 기능을 모두 가지고 있는 개발환경을

IDE(Integrated Development Environment)라고 부릅니다.

2. 인피니언 IDE 환경 다운받기

1) 인피니언 홈페이지에 들어가시고 회원가입을 합니다.

아래는 인피니언 홈페이지입니다.

https://www.infineon.com/cms/korea/kr/

 

인피니언 테크놀로지스 코리아 - Infineon Technologies

반도체 솔루션, 마이크로컨트롤러, LED 드라이버, 센서, 오토모티브 및 전력관리 IC, 인피니온

www.infineon.com

 

2) 회원가입을 다 하셨으면, 아래 링크로 들어가세요.

https://softwaretools.infineon.com/tools?q=aurix&_ga=2.39716452.654492493.1635770356-1853202861.1620568232 

 

Infineon Toolbox

 

softwaretools.infineon.com

 

여기서 Aurix Development Studio를 다운로드 합니다.

사실 HITECH컴파일러도 존재합니다.

하지만, Aurix Development Studio를 다운받으셔서 사용하시는 것이 

Aurix MCU를 처음개발하실때 편합니다.

왜냐하면 이것은 ILLD를 포함하여 프로젝트를 생성할수 있는 Tool이기 때문입니다.

이것은 추후 제가 다시 정리를 하도록 하겠습니다.

 

3) 이제 다운받은 실행파일을 실행시켜 보도록 하겠습니다.

 

4) Next를 누릅니다.

5) 쭉 인스톨을 합니다.

쭉 설치를 하면 자동으로 아래와 같이 DAS도 깔리는 것을 확인하실 수 있습니다.

DAS는 디버깅 Tool의 사용을 가능하게 해주는 소프트웨어 입니다.

6) 드디어 설치를 완료하였습니다.

아래 AURIX Development Studio라는 것이 나오는 것을 확인 할 수 있습니다.

바로 이 Tool이 

앞서 이야기한 소스코드 편집도 가능하고

컴파일도 가능하고

다운로드 및 디버깅도 가능한

IDE(Integrated Development Tool)입니다.

 

이제 다음 포스팅에서 이 TOOL을 어떻게 사용하는지에 대해서 포스팅을 하도록 하겠습니다.

오늘 포스팅은 이것으로 마무리 합니다.

감사합니다.

반응형

댓글