작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
작성
·
37
0
안녕하세요 이제 막 강의를 듣기 시작해서 세션 7까지 수강을 마쳤습니다.
제가 임베디드 분야에 무지한 상태로 임베디드 리눅스를 사용하는 회사에 취업을 몇가지 업무를 진행하였는데,
그 때 GPIO를 제어하기 위해선 해당 pin에 맞는 file 내부에 작성된 값을 제어했습니다.
이 부분과 차이가 있는듯 하여 궁금한점이 있느데
임베디드 리눅스의 경우에는 운영체제가 존재하고, 지금 강의에서 진행하는 과정의 경우 운영체제가 없기 때문에 진행방식의 차이가 있는건가요?
mcu를 사용해서 gpio를 제어하는 경우에는 결국 해당 레지스터의 bit를 제어하는 방식으로 진행이 되는건가요?
이렇게 두가지 내용에 대해서 우선 궁금증이 생겨 문의 드립니다. 답변주시면 감사드리겠습니다.
답변 2
1
보통 pin과 매핑된 address가 있어요.
그래서 그 address에 값을 쓰면, gpio가 제어가 됩니다.
이런 큰 틀은 99% 변하지 않아요.
운영체제가 있다면, 중간에 드라이버가 존재하고,
그 드라이버가 결국 특정 address에 접근해서 gpio를 제어하는 구조를 가집니다.
운영체제가 없다면, 그냥 다이렉트로 해당 address로 접근해서 gpio를 제어하는 구조를 가집니다.
결론은 운영체제가 있든 없든 동작의 큰 틀은 동일합니다.
운영체제가 있는 상태에서 하드웨어를 제어하는 코딩을 하시려면,
운영체제에서 드라이버를 어떻게 제작하는지 그 규칙을 알아야합니다.
거기에 더하여, 결국 하드웨어를 제어하려면 여기 강의에서 말하는 내용을 알아야지만, 드라이버 구현이 가능합니다.
조금 더 쉽게 이야기를 하면, 결국은 특정 주소로 접근해서 gpio를 제어하는 것은 똑같지만,
운영체제가 있으면 운영체제는 특정 주소를 어플리케이션에서 바로 접근하는 것을 차단하기 때문에,
드라이버라는 중간 매개체를 통해서 특정 주소를 접근해야합니다.
그래서, gpio를 제어하는 지식 + 드라이버를 구현하는 지식이 있어야, 이 강의에서 말하는 똑같은 기능을 리눅스 등등의 환경에서 구현할 수 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다. nmk1188님.
임베디드 분야에서의 GPIO 제어는 임베디드 시스템의 구조에 따라 달라집니다. 질문 주신 내용에 대해 간단히 정리해 보겠습니다.
임베디드 리눅스와 운영체제에 따른 차이점:
/sys/class/gpio
와 같은 파일 경로를 통해 특정 파일들을 읽거나 쓰는 방식으로 GPIO를 조작합니다.MCU를 사용한 GPIO 제어 방식:
GPIO와 관련된 질문과 유사한 이전 게시물을 추천해드리니 참조하시면 도움이 되실 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.