임베디드분야 공부하는 방법 부탁드립니다.
글쓴이: musalhk / 작성시간: 토, 2009/07/11 - 7:28오후
안녕하세요
저는 대학교 3학년입니다.
3학년이 되니까 2학년때 뭐라도 좀 만들고 해서 포트폴리오에 적을것들을 준비해놓을껄.
하는 생각이 듭니다.
공부는 끝이 없다고 들었지만 정말 컴퓨터 쪽은 할게 너무 많은거 같습니다..
벌써 3학년의 방학이 왓고.. 참 시간이 빠르게 가네요.
저는 보안분야에 관심이 있었지만 사실 프로그래밍을 좋아합니다.
이번에 임베디드 분야가 관심을 갖게 되었고, 그래서 찾아본 결과,
임베디드 책들이 많더라구요.. 여기서 문제는 컴퓨터 시스템부터 먼저 공부를 하고
임베디드 쪽으로 가야하는지 아니면 바로 임베디드 시스템을 공부해야 하는지 의문입니다.
저는 c, c++, java, perl 이렇게 배웠습니다. 어셈블리는 아직 잘 모르구요.
좋은 답변 부탁드립니다..
Forums:
일단...
먼저 컴퓨터에 구조에 대한 지식이 있으면 좋구요
그다음에 임베디드 시스템에 대한 지식을 넓혀 가시는게 좋습니다^^
기본 컴퓨터 구조에 대한 지식을 많이 가지고 계시다면 임베디드 구조 보는것도
오래는 안걸립니다 ㅎ
----------------------------------------------------------
내가 아이에게 말했던 것은 무엇인가..
그것은 성공이라는 결과가 아닌..
치열함이 묻어나는 과정이었지..
그리고 앞으로의 전진..
무엇을 배워나가며 앞으로 걸어갈 것인가..
일어서자..
일어나야돼.... [록키발보아 중에서]
----------------------------------------------------------
----------------------------------------------------------
내가 아이에게 말했던 것은 무엇인가..
그것은 성공이라는 결과가 아닌..
치열함이 묻어나는 과정이었지..
그리고 앞으로의 전진..
무엇을 배워나가며 앞으로 걸어갈 것인가..
일어서자..
일어나야돼.... [록키발보아 중에서]
----------------------------------------------------------
embedded is linux
linux 를 공부하시면 됩니다.
그리고, ARM datasheet 보고 어느 정도 이해하고 코딩하실 수 있으면 충분하실 것 같습니다.
임베디드 개발은...
현업에서는 CPU 나 보드 특성에 따라 다릅니다.
일반적인 embedded 개발을 하고 싶으시면 윗분들 말씀 따라가셔도 되지만, 왠지 OS 기초 공부하라는 이야기에 가까워서... OS 랑 CPU 내부 구조 공부하시면 사실 거의 다되는 거긴 합니다만.
보통 embedded software 현업 개발 차원이라면, 디버거도 openice 써야하고, compiler 도 해당 CPU를 제공하는 회사 (Intel 이 아닐 수도 있습니다) 것을 써야하고, 소프트웨어의 work overload 에 의해서 하드웨어가 망가지는 현상도 심심찮게 구경하실 수 있습니다.
(개인적으로 모든 것의 기본이 되는 C 를 먼저 마스터할 것을 추천합니다)
뭐 사실 MS 제품군만 다루게 될 경우는 windows CE 플랫폼 (은근히 임베디드에서 많이 쓰입니다.) 에서 VS C++ 코드가 돌아가기 때문에 아무 문제될 것도 없지만...
임베디드 프로그래밍이란 좀 더 하드웨어 친숙한 프로그래밍이라는게 요점일 듯 합니다.
-----
안녕하세요 소프트웨어 공학센터 장원석 책임입니다.
http://www.software.kr
답변 감사합니다!ㅎㅎ
훔,, 리눅스 os 커널을 이해하고 디바이스를 이해하고 그다음에 임베디드 책을 공부하는게 좋다는 말씀 들인가요?
저는 컴공이 아니라서 마이크로프로세서쪽은 잘 모릅니다.
이번에 컴파일러를 한번 만들어볼까 생각중입니다.
제 생각은...
이미 잘하고 계신다면 베스트지만, 혹시라도 H/W에 약하시다면 일단 회로도 보는 법과 데이터 시트를 보는 연습(?)을 하는게 좋지 않을까 싶습니다.
임베디드가 종류가 워낙 방대하긴 합니다만, 제가 학생때 생각했던 임베디드는 타겟보드에 프로그램(OS이건 그렇지 않던)을 올려서 원하는 동작(주로 LED나 keypad같은... -.-)을 수행하는 것이었는데... 이거 할라면 프로그래밍 스킬도 스킬이지만 회로도랑 데이터시트 보는 연습을 좀 해야하지 않을까 싶습니다.
더불어... 이러한 것들을 반영할 수 있는 C/ASM 스킬도 필요하겠죠... 요샌 ASM 거의 안쓴다고 합니다만 그래도 정말 뭔가 풀어내야 할 때 필요한 경우도 있더군요... 아주 가끔.... -.-;;
句日新, 日新 日新 又日新.
句日新, 日新 日新 又日新.
답변 감사합니다! ㅎㅎ
하드웨어도 공부해야 하고 할게 많네요..
에이콘 출판사에 보면 임베디드 책과 보드도 팔던데 그 책들을 다루기 전에
1. PC부터 마스터 하는게 나을까요? ( pc 리눅스 커널 + c언어 + ASM, 컴파일러 )
2. 에이콘 출판사에 기본서부터 사서 읽고 임베디드리눅스나 WinCE중 하나 택1해서
공부하면서 Mic OS2인가? 영어로 길던데 그 책 이런식으로 공부하는게 나을까요?
1번과 2번 중 정확히 어느쪽이 좋을지 모르겠네요. 지금 3학년이구요
p.s 제가 책을 임베디드 개발자를 위한 리눅스커널 심층 분석과 리눅스 커널 2.6구조와 원리를 빌렸습니다. 이 책들은 어떤가요? 만일 1번이 우선이라면 1번에 맞는 커널책 부탁드립니다.
p.s2 SSM에 지원하려 하는데. 미니 컴파일러 하나 만들어서 가도 가능성 잇을까요?
도움은 못되어드리지만
일단 제가 지금 임베디드가 아닌 업무를 하고 있기 때문에 요즘 트렌드나 뭘 해야될지는 전혀 몰라요 ^^;
다만 순서는 C언어, 리눅스 OS 커널 먼저가 맞고요. WINCE 는 따로 공부하실 필요는 없을 겁니다. MS 는 MFC 만 책 끼고 코딩하면 될테니깐요.
-----
안녕하세요 소프트웨어 공학센터 장원석 책임입니다.
http://www.software.kr
AVR과 LED, 저항 등등의
AVR과 LED, 저항 등등의 부품을 산다. (부품 고르는 능력)
5V or 3.3V 전원부를 설계한다. (전원부 이해, 데이터시트 보는 법 이해)
AVR로 LED를 켤수 있는 회로를 설계한다. (기초적이 회로 설계 이해, 데이터시트 보는 법 이해)
AVR로 LED를 온오프 시켜본다. (GPIO)
AVR로 LED를 1초마다 온오프 시켜본다. (Timer)
스위치를 누를 때마다 LED가 온오프 되도록 해본다. (Interrupt)
PC의 하이퍼터미널에서 1을 입력할 때마다 LED가 온오프 되도록 해본다. (RS-232)
LED의 밝기를 조절해본다. (PWM)
ARM보드 하나 사서 거기다가 리눅스 올리는건 임베디드 공부가 아닙니다.
임베디드의 시작은 하드웨어입니다. -_-
감사합니다~
제가 원하는 답변이랑은 다 틀린 답변 해주셨지만 감사해요 ㅋㅋ
댓글 달기