임베디드c 와 c언어와 많이 다른가요?

-@Naver의 이미지

임베디드분야에 대해 관심있는 학생입니다..

임베디드는 c언어와 리눅스를 많이 사용한다고 들어서 c언어위주로 공부를 하고있었는데요

근데.. 찾아보니 임베디드c 라는게 따로있더라고요..

그전까지는 그저 c언어로만 알고있다가 갑자기 임베디드c라는 생소한 단어가 나와서 당황스럽네요

그냥 하던 c언어 공부하면서 리눅스 공부를 하는게 나을까요 아니면 임베디드c라는 공부도 따로해야하나요?

라스코니의 이미지

전혀 다르지 않습니다. 오히려 C 규격의 문법을 최대한 활용할 수 있는 것이 embedded c입니다.
사실 임베디드가 아닌 보통 어플리케이션에 사용하는 C는 C 언어의 일부분만을 사용하죠. 사실 (상용) 어플리케이션 용으로 C 언어가 요즘도 실제 가치가 있는지 모르겠네요. 공부용이 아니면 너무 생산성이 떨어지는지라...

embedded c 는 아마도 embedded (software developed by) C 가 맞겠네요.

리눅스 커널 디바이스 드라이버를 공부하시면 그게 embedded c를 공부하시는 겁니다. 그 뒤에는 필수적으로 (posix) thread/task/process 로 가게 되죠.

나빌레라의 이미지

임베디드 C라는 것은 따로 없습니다.
C 언어를 임베디드 환경에 맞춰 사용하는 것이지요.

임베디드 소프트웨어를 공부하는데 아주 도움이 많이 x100000000 되는 책을 소개해 드리겠습니다.

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=3499067

"도전! 임베디드 OS 만들기"라는 책인데요.
아주 훌륭한 명저입니다. :)

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

Anti-Lock의 이미지

요즘도 집필하고 계신지 갑자기 궁금합니다~

세벌의 이미지

10년 된 책인데 절판되지 않았네요. 오래된 책이지만 지금 보아도 괜찮다는 뜻이겠죠.

나빌레라의 이미지

한 7년 전 쯤에 책을 한권 더 출간했습니다.
https://kldp.org/node/134732

내년 즈음에 아마 한 권 더 나오지 않을까 싶습니다.

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

joone의 이미지

https://rust-embedded.github.io/book/

Rust로 시도해 좋습니다. 개인적으로 Rust가 임베디드에는 더 어울리지 않나 싶습니다.

나빌레라의 이미지

저도 러스트 언어를 공부하면서 임베디드에 꽤 잘 어울리는 언어라고 생각했습니다.
그러나 실무에서 쓰기에 무리가 있는게...
일단 현재는 의사결정하시는 분들이 러스트가 뭔지 모르는 사람들이 많습니다.
그리고 실무 엔지니어들도 러스트를 할 줄 모르는 사람들이 거의 대부분입니다.
그렇다고 높으신양반들 설득하고,
엔지니어들 가르쳐서 굳이 러스트를 써야 하나...
하는 생각이 들게 되지요.
그래도 나중에 제가 프로젝트 하나 리드할 수 있을 때가 되면,
러스트 써 볼까 합니다.

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

Necromancer의 이미지

임베디드도 임베디드 나름이죠.

linux, wince 등의 기성 os를 커스텀 탑재한 임베디드 기기면 속도와 메모리사용량 신경쓰는거 말고는 해당 os의 프로그래밍 환경과 별 차이 없습니다. 이거 임베디드 프로그래밍인지 리눅스/윈도우 프로그래밍인지 구별이 안될 정도입니다.

기타 rtos 환경의 프로그래밍을 하신다면 언어, 라이브러리 등이 사용하는 rtos 공급사에서 지원 해줘야 하는 제약이 있습니다. 이쪽은 진입장벽이 좀 있지만 알면 난이도는 어렵지 않습니다.

가장 최악의 퍼포먼스를 가진 환경은 os조차도 없는 mcu들인데(아두이노에 달리는 atmega 등등, 메모리가 수~수십kb 정도) 얘네들은 성능이 모자라서 c로 짠다 해도 좀 커지면 온갖 문제들이 다 생겨서 c나 어셈블리 외의 언어는 사용 불가, os가 없어서 필요한 자료구조 등은 직접 짜든가 코드 구하던가 하는 식으로 해야 합니다.

Written By the Black Knight of Destruction