본문 바로가기
IT

PC와 임베디드는 개발환경이 다르다!

by 제가이버 2020. 10. 24.
반응형

프로그래밍은 잘하는데 하드웨어를 잘 몰라도 임베디드 시스템 개발자가 될 수 있을까? 

 

전자공학을 전공했는데 임베디드 시스템 소프트웨어 프로그램을 잘할 수 있을까?

 


임베디드 시스템이란 무엇인가? (1편)


 

임베디드 시스템이란 무엇인가?

임베디드 시스템은 우리 생활에서 쓰이는 각종 전자기기, 가전제품, 제어장치 등을 말한다.

 

이러한 장비의 특징은 단순히 전기, 전자회로로만 구성된 것이 아니라 마이크로프로세서가 내장되어 있다는 것이다.

 

이렇게 내장된 마이크로프로세서는 시스템을 구동하여 그 장비가 해야 하는 특정한 기능을 수행하도록 프로그램이 내장되어 있는 시스템을 가리킨 것이다.

 

이러한 임베디드 시스템은 산업, 가전, 사무, 군사 등의 다양한 응용 분야를 가지고 있으며 적용 사례도 휴대폰, PDA, 사이버 아파트의 홈 관리 시스템, 홈 네트워크 게이트웨이 장치, 교통관리 시스템, 주차 관리시스템, 홈 관리시스템, 엘리베이터 시스템, 현금지급기(ATM), 항공 관제 시스템, 우주선 제어 장치, 군사용 제어 장치 등 다양한 곳에 응용이 된다.

 

PC와 임베디드 시스템 환경의 개발 차이

PC와 임베디드, 두 시스템에서 개발 환경의 차이는 소프트웨어 개발 환경의 차이와 소프트웨어 개발 범위의 차이 등이 있다.
현재까지 대부분의 소프트웨어 개발자들은 PC에서 작업을 수행하여 왔다. 

 

자료 : 임베디드 개발자 입문

위 사진과 같이 기존의 소프트웨어 개발과정은 소스 코딩을 하고 컴파일하고 실행하는 형태가 모두 PC 환경에서 이루어졌다는 것이다. 

 

하지만 임베디드 시스템 소프트웨어 개발 과정은 소스 코딩을 하고 컴파일을 수행한 후 이를 타겟 시스템으로 전송한다. 그리고 전송된 실행 코드를 타겟에서 실행한다.

 

기존의 소프트웨어 개발자가 가장 먼저 어려움을 겪고 있는 것은 개발 환경이 다르다는 것이다.

임베디드 시스템에서 프로그램의 대상이 PC가 아닌 타겟 보드라는 것이다. 

 

PC 소프트웨어 개발은 별도의 보드가 필요 없이 PC상에서 모든 것이 이루어지기 때문에 보드가 없어도 개발이 진행된다. 그러나 임베디드 시스템의 소프트웨어 개발은 타겟 보드가 필요하다. 그러므로 개발 보드가 없이는 임베디드 환경에서 소프트웨어 개발이 불가능하다.


그리고 소프트웨어 개발자라 할지라도 타겟 보드에 대한 지식이 필요하다. 

 

타겟 보드의 CPU 구조에 대한 이해와 어셈블러, 개발 보드의 주변장치의 이해 등이 필요하다. 이러한 것이 순수 소프트웨어만을 하던 개발자들이 겪는 어려움이라고 할 수 있다.

 

현재의 소프트웨어 개발 환경은 임베디드 환경으로 급속히 변해가고 있기 때문에 이러한 개발 환경의 이해 없이는 개발에 매우 큰 어려움을 겪을 수 있다.

이렇게 임베디드 시스템 소프트웨어 개발자가 되기 위해서는 개발 환경을 이해하고 이러한 시스템을 PC를 사용하듯이 능숙히 조작하는 것이 첫 번째 과제라고 할 수 있다.

 

 


SW 개발 범위의 차이

PC에서 소프트웨어 작업은 커널이나 디바이스 드라이버가 이미 준비된 상태에서 애플리케이션 작업만을 수행하는 것이었다. 물론 하드웨어도 거의 비슷한 형태로 제공된다. 임베디드 시스템에서는 사용되는 CPU가 다르고 이를 위한 개발 환경을 구축해야 하며, 직접 커널을 포팅해야 한다. 그리고 디바이스 드라이버도 해당 시스템에 맞게 제작하여야 한다. 그 이후에야 애플리케이션 프로그램을 작성한다.

 

 

 

 


 

 

임베디드 시스템의 변화, 하드웨어의 필요성

임베디드 시스템이란 무엇인가? 우리가 흔히 쓰는 대부분의 기기들은 임베디드로 구성되어 있다. 전기회로에서 단순한 마이컴을 거쳐 부가기능이 있는 임베디드가 사용되기 까지 우리는 개발

jehyeon-lab.tistory.com

 

반응형

댓글