Developer Document

Embedded Software 개발을 하면서 습득한 내용을 적은 시니어 개발자들의 글

코 독 코 독 CoderDocument

전체 글 31

MCU - 타이머/카운터

Timer/Counter용도- 시간 및 펄스 폭 측정- 외부 event count- PWM(Pulse Width Modulation) 펄스 발생- 주기적인 인터럽트 발생 종류8bit 타이머/카운터 : 0x00 ~ 0xFF까지 카운트가 가능하다.16bit 타이머/카운터 : 0x0000 ~ 0xFFFF까지 카운트가 가능하다. 동작회로에서 입력으로 clock 신호가 들어오면 clock이 발생한 개수를 count한다. 타이머/카운터 차이타이머는 mcu 내부 clock을 입력으로 사용카운터는 외부 clock을 입력으로 사용 사용1. 일정 시간마다 동작되어야 하는 경우    주기적으로 오버플로우가 발생하도록 하여 오버플로우가 발생한 경우, 특정 동작을 수행하도록 설계된다.2. 모터 동작    PWM 펄스를 생성하여..

Embedded SW 기초 2024.07.08

MCU - 인터럽트 (3)

MCU - 인터럽트 (2)https://coderdocument.tistory.com/entry/MCU-%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8-2 외부 인터럽트앞 장에서 서술한 ( 인터럽트 조건 발생 시에만 관련 플래그 트리거 )에 해당하는 종류이다.이는 입력 펄스의 변화를 감지하여 인터럽트가 발생한다. 입력 펄스의 인터럽트 설정1. 입력 펄스의 edge 트리거 방식- 상승 에지 발생 : level이 low에서 high로 변경될 때- 하강 에지 발생 : level이 high에서 low로 변경될 때- 에지 발생 (상승, 하강) : level이 변경될 때2. 입력 펄스의 level 트리거 방식- HIGH 입력 : level이 high일 때- LOW 입력 : level이 low일 때..

Embedded SW 기초 2024.07.08

MCU - 인터럽트 (2)

MCU - 인터럽트 (1)https://coderdocument.tistory.com/entry/MCU-%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8 - 인터럽트 우선 순위인터럽트는 비동기적으로 발생하기 때문에 여러 개가 인터럽트를 요청하는 경우가 발생할 수 있다.이 경우, 마이크로컨트롤러는 한번에 여러 개의 인터럽트를 처리할 수 없기 때문에 순차적으로 처리할 필요가 있다.순차적으로 처리하기 위해 인터럽트의 우선순위를 정하게 된다. 우선순위는 마이크로컨트롤러 내부에 미리 결정되어 있으며, 미리 결정된 인터럽트 우선 순위를 변경하기 위해서는 인터럽트 우선순위를 지정하는 레지스터를 변경하면 된다.마이크로컨트롤러에 따라 우선순위가 정해져 있어 변경하지 못하는 경우도 존재한다. - 인터럽트 ..

Embedded SW 기초 2024.07.01

MCU - 인터럽트 (1)

인터럽트인터럽트란, 프로그램이 수행되고 있는 동안에 어떤 조건이 발생하여 수행 중인 프로그램을 일시적으로 중지하게 만드는 조건이나 사건의 발생을 의미한다.인터럽트는 사건에 대해 비동기적으로 반응한다. 인터럽트 프로그램 실행 과정  마이크로컨트롤러가 프로그램을 실행하는 과정은 한번에 하나의 명령어만 처리할 수 있다.그러므로 인터럽트가 발생하면 현재 수행하던 Main 프로그램을 일시 중단하고 인터럽트 처리를 위한 ISR 프로그램을 수행한 후, 다시 원래 Main 프로그램으로 복귀하는 구조로 이루어진다. Main Program이 비동기적으로 발생한 event에 대해 반응하여 프로그램을 수행할 수 있다.이처럼 비동기적인 event에 대응하여 인터럽트를 처리하는 프로그램을 인터럽트 서비스 루틴 (Interrupt..

Embedded SW 기초 2024.07.01

MCU - I/O 레지스터

I/O 레지스터I/O(Input/Output) register는 입출력 레지스터로 주변 소자의 기능을 제어하기 위해 사용된다.이 레지스터는 SRAM 영역에 주소가 할당되어있다. I/O 레지스터의 일반적인 제어 방법- I/O 포트를 제어하기 위해 sfrb, sfrw 키워드가 제공된다.- I/O 레지스터의 주소는 헤더 파일에 정의되어 있다. sfrb : byte 단위 특수 기능 레지스터를 지정하는 지시어다.sfrw : word 단위 특수 기능 레지스터를 지정하는 지시어다. C8051 I/O RegisterUser's Guides for Keil C51 Development Tools 내용을 참조하자면https://developer.arm.com/documentation/101655/0961/Cx51-User..

Embedded SW 기초 2024.07.01

MCU - 상태 레지스터

상태 레지스터상태 레지스터(Status Register)란 가장 최근에 실행된 산술 연산의 명령 처리 결과에 대한 상태 정보를 표현한다.이 상태 정보는 조건부 처리 명령어(if ... 등)에 의해 프로그램의 흐름을 제어해야 할 경우, 사용될 수 있다. 상태 레지스터는 인터럽트를 처리하는 과정에서 자동적으로 저장되거나 복구되지 않기 때문에 필요하다면 소프트웨어에서 필요한 동작을 처리해주어야 한다. - 연산 결과에 따라 나타나는 플래그부호 플래그 : 가장 최근 수행된 산술 연산 결과과 +일 경우 0, -일 경우 1로 세팅된다.제로 플래그 : 연산 결과가 0일 경우 1, 0이 아닌 경우 0으로 세팅된다.캐리 플래그 : 자리 올림이 발생하거나 감산 결과 자리내림이 발생할 경우 1로 세팅된다.오버플로우 플래그 :..

Embedded SW 기초 2024.06.30

MCU - 마이크로컨트롤러

마이크로컨트롤러마이크로컨트롤러(microcontroller, MCU)는 CPU, 기억장치(RAM, ROM), 입출력 장치를 하나의 칩에 모두 내장하여 정해진 기능을 수행할 수 있다. MCU는 micro controller unit의 약자이다. 마이크로컨트롤러의 종류에는 8051, AVR, PIC, ARM, 80C196 ... 등이 존재한다.마이크로컨트롤러를 컨트롤할 때 AND, OR, XOR 등의 비트 연산을 수행할 수 있다.마이크로컨트롤러는 규모가 작은 시스템에 사용한다. 그래서 특징으로 운영체제를 포함하지 않는 경향이 있다는 점과 특정 기능만 수행하도록 응용프로그램이 만들어진다는 점이 있다. 중앙처리장치(CPU)는 마이크로컨트롤러의 중심을 담당한다. 명령어의 인식, 해석과 실행을 제어하고 연산 처리를..

Embedded SW 기초 2024.06.30

HDMI란 무엇인가?

HDMI란?HDMI(High Definition Multimedia Interface)는 2002년에 처음 발표된 음성 신호 전송까지 포함된 디스플레이 인터페이스 커넥터 표준 규격입니다. 영상 신호뿐만 아니라 음성 신호까지 전송되어 케이블을 줄일 수 있는 점이 장점입니다. TMDS3개의 line을 통해 R, G, B 세 가지 원색을 전송하고, HV 신호는 B 신호통로에서 전송되며 R, G 신호통로에 음성 신호가 전송DDCDisplay Data Channel, 디스플레이 데이터 통로로, 장치의 송출 사양 신호와 데이터 격식 신호를 받는 용도로 사용되며, 장치의 이런 E-EDID(Enhanced Extended Display Identification Data,  호환성 식별 데이터) 정보가 전송CECCon..

Embedded SW 기초 2024.06.26

네트워크 인터페이스 명 변경 방법

네트워크 인터페이스 명 변경 방법cmd에서 ifconfig 명령으로 네트워크 인터페이스를 보면 이름이 enp10s0이라던가 wlp7s0과 같이 보이는 경우가 있을 것이다. 이때 이렇게 보이는 네트워크 인터페이스명을 우리에게 익숙한 eth, wlan으로 보이도록 바꾸는 방법이 있다. 다음 순서대로 진행해보자. 1. dmesg | grep -i wlp (또는 dmesg | grep -i eth 또는 dmesg | grep -i wlan) 해당 명령을 통해 부팅 시, wlan0을 wlp7s0으로 rename하고 있음을 알 수 있다. 2. vi /etc/default/grub 부팅 시 rename하고 있으므로 부트로더 설정을 수정해야한다.  파일을 열면 GRUB_CMDLINE_LINUX= 이 적혀있는 라인을 볼..

Embedded SW 기초 2024.06.25

Makefile

Makefile이란make빌드 방식은 gcc 빌드 방식을 대신하여 간단하게 빌드 할 수 있도록 해준다.이때 Makefile은 make 빌드툴을 이용하여 프로그램을 빌드할 수 있도록 make문법에 맞게 작성하는 문서라고 할 수 있다. gcc 빌드는 해본사람이라면 알겠지만 실행파일을 만드는데 필요한 소스파일이 적을 때엔 make빌드보다 간단하고 쉬워보이지만 필요한 파일이 많아질수록 점차 복잡해지고 오래걸린다는 것을 알 수 있다. make빌드는 Makefile을 통해 복잡한 빌드과정을 간단하게 수행할 수 있다.CROSS_COMPILE=/usr/lib/aarch64-linux-gun/aarch64-linux-gun-CC=$(CROSS_COMPILE)gccTARGET=testOBJS=test.oall: $(TAR..

Embedded SW 기초 2024.06.25