임베디드에 이상한 오해들이 있는 것 같아서 한번 짚어보려고 한다.
1. 언어
글들을 쭉 읽어보면 임베디드는 씨나 어셈같은 로우레벨 언어만 다룬다는 고정관념이 있는 것 같아서 언어는 뭐를 쓰나 여기저기 물어보니까. 대충 이런게 나옴
C , C++, JAVA, html, xml ,perl...
실험적으로 루아나 파이썬을 쓰려고 하는 분들도 있는 것 같은데 위에서 허락해 주지 않는듯..
2. 하드웨어를 잘 알아야 한다?
펌웨어 하는 경우가 아니라면 하드웨어랑 드라이버 만질일은 그리 많지 않음.
왜냐고? 칩 벤더에서 os 포팅하고 지원하는 장치 종류별로 꼽아놓고 드라이버 올려서 동작하는 api 함수를 뽑아주니까. 그냥 그 함수 순서대로 콜 하면 장치 동작 끝..
펌웨어는 부품회사에서 동작하는 소스코드를 같이줌 ㅋㅋㅋ
3. 동작환경이 척박해서 고도의 최적화가 필요하다?
최근 작업한 보드는 1.xGhz 듀얼코어에 2GB 메모리를 사용함. 이게 척박한 환경인지는 잘 모르겠음..
4. 임베디드는 객체지향 안쓴다?
주로 쓰이는 언어가 C라서 많이 생기는 오해인듯 하지만 C++도 쌩쌩 잘 돌아가고 자바는.. 아직은 좀 한계가 있지만 사용되기는 함. 그리고 c로만 해야하는 프로젝트의 경우에는 C로 객체지향을 함. 아니 해 내야 함..;; 안그러고 대충 소스 꼬아놓는 순간 헬게이트가...
5. 웹은 임베디드랑 관계없다?
UI엔진 만들기 귀찮으면 크롬 브라우져를 포팅하고 전체화면으로 띄워서 UI로 활용하는 경우도 있었음.. 물론 UI에 쓰이는 페이지는 보드에 저장되는 형태.
6. 그럼 존나 쉬운가?
일단 해보면 암.. 일단 발만 담가봐.. 아주 그냥..
1. 언어
글들을 쭉 읽어보면 임베디드는 씨나 어셈같은 로우레벨 언어만 다룬다는 고정관념이 있는 것 같아서 언어는 뭐를 쓰나 여기저기 물어보니까. 대충 이런게 나옴
C , C++, JAVA, html, xml ,perl...
실험적으로 루아나 파이썬을 쓰려고 하는 분들도 있는 것 같은데 위에서 허락해 주지 않는듯..
2. 하드웨어를 잘 알아야 한다?
펌웨어 하는 경우가 아니라면 하드웨어랑 드라이버 만질일은 그리 많지 않음.
왜냐고? 칩 벤더에서 os 포팅하고 지원하는 장치 종류별로 꼽아놓고 드라이버 올려서 동작하는 api 함수를 뽑아주니까. 그냥 그 함수 순서대로 콜 하면 장치 동작 끝..
펌웨어는 부품회사에서 동작하는 소스코드를 같이줌 ㅋㅋㅋ
3. 동작환경이 척박해서 고도의 최적화가 필요하다?
최근 작업한 보드는 1.xGhz 듀얼코어에 2GB 메모리를 사용함. 이게 척박한 환경인지는 잘 모르겠음..
4. 임베디드는 객체지향 안쓴다?
주로 쓰이는 언어가 C라서 많이 생기는 오해인듯 하지만 C++도 쌩쌩 잘 돌아가고 자바는.. 아직은 좀 한계가 있지만 사용되기는 함. 그리고 c로만 해야하는 프로젝트의 경우에는 C로 객체지향을 함. 아니 해 내야 함..;; 안그러고 대충 소스 꼬아놓는 순간 헬게이트가...
5. 웹은 임베디드랑 관계없다?
UI엔진 만들기 귀찮으면 크롬 브라우져를 포팅하고 전체화면으로 띄워서 UI로 활용하는 경우도 있었음.. 물론 UI에 쓰이는 페이지는 보드에 저장되는 형태.
6. 그럼 존나 쉬운가?
일단 해보면 암.. 일단 발만 담가봐.. 아주 그냥..
리눅스 돌아가면 이미 하고 싶은데로
경우에 따라서 완전 다르지
ARM칩 위에서 앱 만든다고 임베디드라고 할 순 없잖냐
솔직히 앱쪽은 정보가 아예없어서 쓰지 않음..
임베디드에서 JAVA html xml 이런거 쓴다는건 앱만든다는거지 펌만든다는게 아니지. C++로도 진짜 하드코어하게 힘들고. 앱이 임베디드는 아냐
안드로이드땜에 사람들이 앱이 임베디드인줄 알고 착각 많이들 하던데 그런 닝겐들은 교육 다시받아야 하는 닝겐들
그리고 임베디드는 객체지향 안돌아감. 펌웨어를 객체지향으로 짠다는 소리는 처음듣네. 어케 짜는지 궁금할 지경
지금 이 글은 앱 이야기지 임베디드 이야기가 될 수 없어. 기본적으로 펌에 매니저랑 api까지 다 제공되는 환경을 논하고 있는 글이잖아. 펌웨어 짜고 api까지 짜는게 임베디드지.
뭐 RTOS 올리고 로우한 앱 개발 하는것이면 인정하지만 그게 아닌이상은...... 내 기억으로는 디바이스 드라이버 커널 펌웨어 이 위로 올라가면 임베디드라고 취급안함
아무도 앱이 임베디드라고 착각 안할걸
그런 바보 없음
사실 그래서 내가 이 글에서 의문점이 있는게 펌웨어 개발 아닌 임베디드쪽이 뭐가 있음? 난 잘 모름
디바이스 드라이버, 커널, 펌
근데 솔직히 그게 핵심이라 그거말고 없긴 함 ㅋㅋㅋㅋㅋ
뭐.. 그렇게 생각한다면 그럴수도 있겠네.
요즘 그래서 임베디드만 하는 사람 없음. 임베디드가 기본이 되서 다른데에 쓰이는 경우가 많지. 예를들어 내가 지금 공부중인 로보틱스쪽은 제어랑 이미지처리나 센서값 필터링하고 뭐 이런 용도를 위해 사용되니까 기본이 되지
임베디드에서 객체지향이 안돌아간다는건 뭔 개소리지