저희 회사 사람들은( 개발자가 총 몇 사람이나 되겠읍니까 ㅜㅜ )

몇 몇 분은 하드웨어 설계에서 부트로더 응용 프로그램 리눅스 프로그램
윈도우 프로그램 기타 자질구레한 프로그램까지 모두 할 줄 아는 사람
이 있읍니다.

즉 모두 다 할 줄 안다고 할수 있죠..

그...러...나....

그 깊이는 틀립니다.

하드웨어쪽을 더 잘 아는 사람도 있고
소프트웨어쪽을 더 잘 아는 사람도 있습니다
소프트웨어에서도 윈도우 쪽을 더 잘 아는 사람도 있고
리눅스나 펌웨어 쪽을 더 잘 아는 사람이 있읍니다.
그 상위 응용층을 더 잘 아는 사람이 있죠..
아예 응용 프로그램 쪽만 아는 사람도 있죠

일단 이점을 염두에 두시고 답변을 보셨으면 하는 군요

: 1. 실제 (주)Falinux에서 개발을 하실때 보드를 설계하시는
: 분께서 직접 부트로더와 커널 포팅을 하십니까?

상황에 따라서 다릅니다.
여러가지 개발으로 시간에 쫓기면 나누어 합니다.
하지만 가급적 보드 설계자가 직접 부트로더와 커널 포팅을 하는 것을
원칙으로 합니다. 그래야 디버깅 시간이 단축되기 때문입니다.
물론 커널 포팅(디바이스 드라이버 개발 포함)은 이해도가 다르기 때문에 그
때 그때 서로 협조합니다.

: 2. JTAG 퓨징 프로그램 같은 것까지 직접 보드 설계하시는
: 분이 하십니까?

이것 역시 경우에 따라서 다릅니다.
뭐 기존 소스가 있기 때문에 직접 하는 경우도 있고
따로 나누어서 하는 경우도 있읍니다.

: 3. 보드 설계 하시는 분이 따로 계시고 OS와 부트로더 등을
: 보드에 포팅하시는 분이 계십니까?

가급적 하나의 제품은 한 사람이 진행합니다. 하지만 저 같은 경우는
하드웨어 설계는 주위에서 말려서 가급적 하지 않고 주로 소프트웨어만
합니다. ㅜㅜ

: 4. 만약 따로 계신다면 포팅쪽을 담당하시는 분은 어디까지
: 하드웨어를 커버하십니까?

부트로더와 커널과 디바이스 드라이버를 하는 당담하기로 결정되었다면
프로세서 매뉴얼과 주변 디바이스 매뉴얼을 끼고 삽니다.

: 5. 역할을 분담하셨을때 포팅을 전담하시는 분은 도대체 어
: 느 정도의 하드웨어 지식(너무 추상적인 가요?)을 갖춰야
: 할지 궁금합니다.

하드웨어를 안다는 것은 두가지로 볼수 있습니다.
하나는 회로적인 동작을 이해하는 것과
프로세서를 동작시키기 위해서 프로세스를 이해하고
주변 디바이스를 동작 시키기 위해서 디바이스 제어를 이해한다는
것입니다.

소프트웨어를 담당한다면 주로 두번째 경우로 주로 매뉴얼의 제어
관련된 레지스터와 같은 부분을 이해하는데 중점을 둡니다.

: 그리고 이런 질문 해도 되는지 모르겠습니다만 EZ-X5 보드 개발은
: 몇분이서 하셨나요? 혹시 한분께서 이 모든걸 다 개발하셨나요?

EZ-X5 보드같은 제품이 나오려면 여러명이 움직입니다.
하지만 개발 과정만 따진다면 3명정도로 보시면 됩니다.

하드웨어설계 및 디버깅 + 간단한 테스트 +JTAG 프로그램 담당자
커널 및 디바이스 드라이버 개발 담당자
기타 시험용 응용 프로그램 개발자

물론 혼자도 개발이 가능했읍니다만 그러면 시간이 너무 늦죠..
저희 회사가 출시일이 늦는것으로 유명한네 거기다 더 늦어지면..
저희 회사 망하거든요.. ㅜㅜ

:
: 제가 너무 많은 질문을 드린건 아닌지 모르겠네요. 또한 개발하시는데
: 있어서 민감한 부분까지 건드린건 아닌지모르겠네요.

아이고 별 말씀을 ... 이렇게 질문해 주시는 것만 해도 감사한데..

:
: 모쪼록 답변이 가능한 부분만이라도 답변을 해주시면 고맙겠습니다.
: 그럼 하시는 모든 일이 잘되시길 바랍니다.

감사합니다 ^^

추가로 말씀드리고 싶은것)

보드를 개발하는 것과 임베디드 제품을 만드는 것은
조금 다릅니다.

질문하신 것은 보드를 제작하는 것에 대한 것이지만
실제 제품을 만들경우 보드 제작 관련된 것은
전체 진행하는 프로세스의 일부분입니다.

그래서 응용 프로그램 과정이 필수적으로 수반됩니다.
실제로 제품을 만드는 과정은 응용 프로그램을 제작하는 과정입니다.
그런데 이 부분은 어느정도 하드웨어 독립적인 단계가 됩니다.

예를 들어 IP 폰을 만든다면
이 제품의 특성상 하드웨어와 하드웨어를 제어하기 위한
부트로더,커널, 디바이스 드라이버도 중요하지만
프로토콜과 응용 프로그램 제작에
더 많은 시간과 소프트웨어적인 지식이 필요합니다.

예를 들어 IP 프르토콜을 이용한 제어와 GUI 같은 부분입니다.
이부분을 하시는 분은 하드웨어적인 지식이 거의 필요 없어도
됩니다.

마지막으로 임베디드 제품을 만드는 것을
혼자서 모든 것을 다하는 경우도 있고
( 가난한 회사 또는 원래 그런 회사 )
나누어 하는 회사가 있읍니다.
(부자 회사 도는 원래 그런 회사 )

하지만 가급적 역활 분담이 나누어서 하는 회사가 효율은
분명히 좋습니다. 단지 서로 싸우는 문제가 있기는 하지만요

아마도 질문하신 의도는 임베디드 분야로 가고 싶은데
하드웨어를 어느 정도 알고 있어야 하고 나름대로 준비를
얼마나 해야 할까 하는 고민 때문이신것 같은데

제가 말씀 드리고 싶은 것은 일단 자신있는 부분을
모두 끝내시고 지식의 확대를 권장합니다.

아무래도 하드웨어적인 지식을 알고 계시면 여럿이
나누어서 일할때 상대방을 이해할수 있기 때문에
의사결정도 빠르고 상호간에 일을 도와줄수도 있습니다.

그리고 프로그램하는 사람이 하드웨어를 안다고 하는 것은
하드웨어 회로설계를 이해하기 보다는 하드웨어 제어 레지스터
를 이해하는 것이죠...

도리어 하드웨어 설계만 담당하시는 분은 매뉴얼을 덜 봅니다.
(이렇게 이야기 하면 저희 하드웨어 설계 대빵이 욕하겠군요... 쩝)

여기 까지 입니다. 도움이 되셧으면 좋겠네요..