목록임베디드/Embedded C
Step-by-Step
DMADirect Memory Access - 직접 메모리 접근CPU의 도움 없이 메모리와 외부 장치 간에 데이터를 직접 주고 받을 수 있게 해주는 기술특정 하드웨어 하위 시스템이 CPU와 독립적으로 메인 시스템 메모리에 접근할 수 있게 해주는 컴퓨터 시스템 기능 보통 컴퓨터에서 데이터를 주고받을 때, CPU가 모든 과정을 제어ex) 컴퓨터에서 연결된 하드디스크에서 데이터를 메모리로 옮기려면, CPU가 그 과정을 하나하나 지시함→ CPU의 작업이 많이 늘어나서 느려질 수 있음 해당 부분에서 DMA는, CPU 대신 데이터를 직접 메모리로 옮기는 기술 (외부메모리 접근, 내부 연산 동작 등 수행)CPU는 지시만 하고, 실제 데이터 전송은 DMA 컨트롤러가 처리CPU의 부담이 줄어들고, 전체 시스템 기능이..
UARTUniversal Asynchronous Receiver & Transmitter병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터를 전송하는 컴퓨터 하드웨어의 일종UART의 U는 범용, 즉 자료 형태나 전송 속도를 직접 구성할 수 있고 실제 전기 신호 수준과 방식이 일반적으로 UART 밖의 특정한 드라이버 회로를 통해 관리를 받음비동기 통신으로, 동기 신호가 전달되지 않기 때문에 수신 쪽에서 동기 신호를 찾아내 데이터의 시작과 끝을 시간적으로 알아 처리할 수 있도록 약속되어 있음 USARTUniversal Synch, Asynchronous Receiver & TransmitterUART 에서 USRT를 추가한 형태USRT(범용 동기화 송수신기) : 자체 클럭 신호를 추가로 사용하여 정해진 속..
전처리기# 키워드는 컴파일러가 컴파일을 실행하기 전에 처리한다고 하여, 전처리기(Preprocessor) 또는 매크로(Macro)라고 한다. 예를 들어, 전처리기를 이용하여 다른 헤더 파일을 include 하면 ex) #include 등 하위 코드에서 scanf나 printf와 같은 함수들을 사용할 수 있다. 매크로매크로는 컴파일러에게 코드의 특성을 알려주는 키워드특정 키워드를 코드로 치환하는 것 (상수 정의, 인라이닝, 문법 정의/변형 등)정해진 순서에 따라 어떻게 특정한 입력 시퀀스가 출력 시퀀스로 매핑되어야 하는지 정의하는 규칙이나 패턴컴파일 전에 해당 매크로에 #define에 정의된 함수, 값 등 형태가 대입되어짐 #define특정 숫자, 함수, 프로그램 블록을 다른 형태로 변환 지정한다..
구조체 멤버 Pack구조체 멤버는 크기에 따라 1B / 2B / 4B / 8B 주소에만 만들어질 수 있음컴파일러는 구조체 멤버의 alignment 규정을 조정하는 옵션이 있음CPU가 메모리에 접근할 때 (32bit CPU → 4B 단위 // 64bit CPU → 8B 단위)32bit CPU → 4B 단위, 64bit CPU → 8B 단위로 접근하는데 단위보다 작은 데이터에 접근하는 경우 시브트 연산으로 속도 효율이 저하됨 #pragma pack(N)구조체 멤버가 차지하고 있는 메모리를 alignment 하는 옵션데이터의 크기를 정해진 단위로 정렬구조체의 크기를 1, 2, 4, 8, 16 Bytes 단위로 alignment 한다. (default : 8)pack 사용시 구조체의 크기는 가장 큰 멤버가 N보..