C 언어 학습깊이 질문 ( 임베디드 분야 )
글쓴이: wone28 / 작성시간: 일, 2017/10/29 - 10:08오전
임베디드 프로그래머 코딩 면접을 보면 memcpy 구현을 물어보던데. ( 예외처리 관련하여 물어보려고 한것 같습니다. )
함수 구현이 C 언어 문법만으로만 작성하는것을 의미 하는것인지 궁금하고.
printf 구현 하는걸 보니 저랑 생각한것이랑 다르더라구요. 저는 내부적으로 printf 는 시스템콜 write 를 stdout에
쓰는것으로 알고있었는데
단순 표준라이브러리 함수 사용법만 익히고 있었는데, 학습방법을 어떻게 해야할지 고민이 큽니다. 함수를 내부적으로
더 파헤칠지 아니면 오픈소스 분석 쪽으로 힘을 기울일지 질문입니다.
Forums:
소스가 공개되어 있는 간단한 Embedded OS를
소스가 공개되어 있는 간단한 Embedded OS를 분석해 보심이...
내용 자체가 아니라 코드가 어떻게 구성되어 있는지 궁금하신 거잖아요?
uCos, FreeRTOS 등의 코드 및 드라이버 코드를 보시면 도움이 되실 것 같네요.
그 질문은 면접관에게 하셔야 할 듯.
그 질문은 면접관에게 하셔야 할 듯.
세벌 https://sebuls.blogspot.kr/
byte 단위 복사 대신할 수 있는 더 빠른 방법의
byte 단위 복사 대신할 수 있는 더 빠른 방법의 존재여부를 인지하고 있는지 감별하기 위한 질문이거나,
피치못하게 조악한 환경에서 돌아갈 수 밖에 없는 임베디드 환경의 특성상, memcpy() 가 memmove() 처럼 동작해야 할 예외에 대해 인지하고 있는지 감별하기 위한 질문이라 생각합니다.
> 저는 내부적으로 printf 는 시스템콜 write 를 stdout에
> 쓰는것으로 알고있었는데
>
그런 POSIX OS 는 없을 겁니다. write() 는 FILE stream 이 아니라 file descriptor 를 접근해야만 합니다.
조악한 embedded 환경에서도 마찬가집니다. write() 대신 다른 함수를 호출하고, 보통 그 함수는 UART 데이타 레지스터에 byte 전송하는 정도의 차이일 뿐이고요.
그 앞 단의 vprintf() 는 지원하는 기능의 갯수 정도 차이를 제외하면, 조악한(최소한 sprintf 정도 지원하는) embedded 환경이나 럭셔리한 rich OS 환경이나 거기서 거기입니다.
댓글 달기