임베디드를 하려면

익명 사용자의 이미지

안녕하세요..
임베디드를 공부하고 싶은데 어떤거 부터시작을 해야하는지 궁금합니다.
저는 유닉스시스템프로그래밍을 조금 했구여.
네트웍도 좀 봤습니다.
하드웨어는 영 아니구여..
그럼 고수님들 많은 의견부탁드립니다.

익명 사용자의 이미지


임베디드는 타겟 하드웨어에 따라 천차만별입니다.

당연히 공부를 하려면 타겟보드가 있어야 합니다.

공짜로 구할수 있으면 좋겠지만 보통은 돈주고 보드를 사던가
아님 임베디드회사에 취직하세요....^^

임베디드를 하려면 일단 CPU와 RAM, Flash등등에 대한 하드웨어
지식이 필요합니다.

거기에 포팅기술, OS, 드라이버에 대한 지식등등이 필요한데
필요한걸 얘기하자면 한도끝도 없고요....

꼭 임베디드를 공부하시려면 타겟보드가지고 노는 것은 나중에하시고
우선 리눅스 커널을 빠삭하게 공부하세요...
아님 다른 RTOS를 공부하시던가요....

일단 OS에 대한 지식이 쌓이게 되면 어떤 하드웨어가 오더라도
특정한 것(해당하드웨어)에 대한 공부를 더 하면 큰 어려움이
없이 싸울(?) 수 있을 겁니다.

제가 추천한다면 uCOS-II책을 구입해서 한번 쭉 보세요...
재미있을 겁니다.

그담에 리눅스에 대한 자료가 무지 많이 있을테니 리눅스
커널에 대한 overview를 보시고 일단 디바이스 드라이버
쪽으로 한번 소스를 공부하고, 간단하게 작성도 해보고요...

보통 임베디드라 함은 타겟하드웨어에 OS포팅이랑 디바이스
드라이버 작성이 대부분입니다.

제가 설명들인 부분은 임베디드 부분에서 S/W에 대한 부분을
설명드렸습니다.

하여간 현재 상태에서 공부할 수 있는 만큼 하시면 될거라고 봅니다.

익명 사용자의 이미지

안녕하세요.

그냥 저의 의견입니다.

1. 왜 임베디드 시스템을 해야 하는가요에 대해 본인에게 한번 다시 물어 보세
요. 이 문제가 다음의 항목들에 대해 계속 걸쳐있는 부분이 아닐까 생각이 됩니
다. 저는 전에 아버님 때문에 임베디드를 할려고 했는데 제가 깐깐하게 구니깐
귀찮으시다며 다른 회사에 용역을 줘버리시더군요.

임베디드 시스템을 가지고 정말 이것 저것 유용한것을 많이 만들어 낼수가 있을
겁니다. 전에는 간단한 기능이라도 하드웨어 전문가들의 전유물로만 알려졌던
시스템들이 많이 있었습니다. 그중 대표적인것이 라우터와 같은 중계기 혹은
PDA 같은 것이었습니다.

그런데 기술이 많이 공개 되면서 '아~ 저건 내가 소프트웨어는 만들수 있을텐
데, 하지만 하드웨어는 어떻게 하지?' 하면서 쉽게 포기했던 분야도 이젠 어렵
지 않게 접근할수가 있게 되었습니다.

2. 무엇을 공부할까요.? 우선 서점에 달려 가시기전에(서점에 가셔서는 책을 고
르시고 주문은 인터넷으로 하시는게 어떨까요.? 저는 몇권씩 모아서 이렇게 합
니다) 인터넷으로 임베디드 자료를 한번 찾아 보세요. 아마 7-80% 이상의 자료
들이 포팅에 관한 자료입니다. 하지만 포팅은 제가 다시 언급할것인데 신경쓰
지 마세요. 1번의 문제를 다시 생각해보시고 이중에 필요한 자료를 찾아 보세
요. 임베디드 자료는 정말 많습니다.

3. 포팅은 어떻게 할까.. 이것이 정말 커다란 문제입니다. 하지만 적어도 올
(2002년)봄까지는 그랬습니다. 그런데 이제는 그렇지 않습니다. 그동안 잠못자
고 메달려준 많은 사람들에 의해 포팅의 문제점들이 대부분 해결이 되었습니
다. 포팅을 대행해주는 회사(주로 임베디드 보드를 판매하는 회사들)도 생겼고
또 어렵지 않게 포팅을 할수가 있고 개발 환경을 갖출수가 있습니다. 정말 그
때 처럼 어렵지가 않습니다. 제 생각에는 이제 리눅스를 자신의 PC에 설치하는
것 보다 약간만 더 어려운 정도 아닐까 생각됩니다.

실제 다양한 종류의 하드웨어에 배포본이 존재하는것이 아니라 보드 개발 회사
에서 자신들의 보드에 맞는 포팅 방법을 가지고 있으니 어찌 보면 SUN SPARC이
나 MAC PC에 OS를 설치하는것과 그리 다르지 않나 생각됩니다.

3. 하드웨어.. 본인이 직접 하드웨어를 제작하실 생각은 하지 마세요. 내가 PC
를 원하는것으로 만들어서 사용하는것 하고는 다릅니다. 하드웨어 부분은 하드
웨어 하시는 분들(주로 보드 제작회사)에게 과감히 맡기세요. 대부분 원하는 사
양으로 만들어 주실겁니다. 예를 들면 ARM CPU에 메모리는 얼마를 달고 PCMCIA
슬롯에 CDMA나 SIERRA AIRCARD( 이거 정말 맘에 드는 장비더군요 )를 장착하고
싶다던지 LCD 패널을 위한 장치등등 어지간한 사양은 기본 시스템에 탑재가 가
능합니다. 이것은 잊어 버리시고 어떠한 에플리케이션을 탑재하실건지를 고민해
보시는게 좋지 않을까 생각됩니다.

심지어는 성냥곽만한 시스템도 가능합니다. 여기에 LAN도 연결되고 시리얼 터미
널도 연결되고 될건 다 되드라구요.

4. 어떤 OS를 채택할것인지.. 하드웨어에 따라서가 아니라 OS에 따라서 하드웨
어가 결정되지 않을까 생각됩니다. CE쪽을 하실런지 LINUX쪽을 하실런지.. 리눅
스쪽이 선택의 폭이 좀 넓고 리소스도 충분합니다. OS라는것이 한번 공개 되니
깐 별의 별 시스템에 다 탑재 할려고 하는 사람들 덕분에 우리가 이런 호사를
누리는것 아닙니까. 요즘에는 XBOX에 리눅스 탑재 할려고들 모였던데.... 참 멋
있는 사람들입니다. 그 효용성은 둘째로 놓고 보드라도 말입니다.

제 생각에는 이렇게만 미리 염두를 두고 시작하셔도 어렵지 않은 접근을 하실
수 있을겁니다. 저는 예전에 선물 거래소에서 일할때 커드터마이징된 PDA를 개
발할일이 있었는데 그걸 보고 참 여러가지 할수 있겠구나 하고 생각했었습니
다. 참 재밌죠.

즐거운 하루 되세요..

익명 사용자의 이미지

임베디드 하려면.. 전자기학, 전자회로 등부터 공부하시고
관련임베디드분야 서적들을 다양하게 읽어보시면됩니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.