
전자화 된 자동차 부품들 ex) 램프 조형 브레이크 구동모터 브레이크 등 컴퓨터 역할을 하는 제어기 (ECU) -> 위 장치마다 각각 있음 제어기 안에 있는 MCU(Micro Controller Unit) = "작은 크기의 컴퓨터" 소프트웨어 작동 자동차 속에 내

다양한 전자 장치들은 SW에 의해 조작됨 -> SW를 실행하는 장치: ECU 실제로 명령어를 수행하는 장치: CPU(Central Processing Unit) CPU는 소스코드(c언어)를 direct하게 이해 x CPU가 이해할 수 있는 명령어 = 어셈블리어(기계어

IDE (Integrated Development Environment) (통합 개발 환경) 코딩, 빌드, 다운로드 및 디버깅 -> 모든 개발과정을 한 번에 (IDE) IDE 예시 Microchip Studio (Microchip 사) STM32 Cube IDE (

메모리: 값을 저장할 수 있는 기억장치 크게 2가지 type ROM: 전원 off해도 지워지지 않음 ex) 하드디스크, SSD, Flash 등 MCU에는 주로 Flash 메모리 값을 쓰는 절차가 RAM에 비해 복잡함 값을 쓰고 읽는 속도가 RAM보다 오래 걸림 Fl

MCU가 제공하는 다양한 기능 예시 GPIO: 특정 pin에 전압 출력 on/off 제어 (General Purpose Input Output) ADC: MCU의 특정 pin에 외부에서 발생되어 걸려있는 전압을 측정 각종 통신: Uart, SPI, CAN, I2C 등

레지스터 manual 문서 해석하기 레지스터 내부는 여러 개의 비트(bit) 필드로 구성 됨 각 비트 필드마다 서로 다른 역할 R/W 속성 Read/Write 읽고 쓰는 속성 -> 읽기 혹은 쓰기 전용인 경우가 있기에 주의할 것 특이한 비트필드 ex) A 레지

GPIO Overview Input: 입력된 전압의 크기에 따라 0 또는 1로 해석 Output: 전압 출력 ex) LED 제어 GPIO output 사용하기 1) 핀 선정 -> PA1핀 선정 2) Output Mode 설정 -> DDRA 3) 출력 on/off M

ex) LED 제어 GPIO output 사용하기 1) 핀 선정 -> PA1핀 선정 2) Output Mode 설정 -> GPIOA_MODER 3) 출력 on/off -> GPIOA_ODR 레지스터 주소 확인 offset의 기준 주소 ex) GPIOA: 0x4800

Dirver SW (HAL SW) ex) STM32L45xx 위와 같은 코드를 간편하게 API 형태로 변경 MCU 회사에서 Driver SW를 제공해주는 경우가 많음 STM32: STM32 HAL Driver SW 아두이노: Driver SW TI: C2000w

디버거를 통한 레지스터 확인 MCU의 현재 상태를 정확하게 확읺할 수 있는 가장 확실한 방법 -> MCU의 현재 레지스터 값 확인 디버거를 통해 실제 MCU 레지스터 값을 확인해보기 ex) STM32 Cube IDE MCU: stm32l45vit6 확인할 내용 -

MCU도 전자제품이다 = 전원 공급 필요 외부 전원 인가하기 ex) 건전지 핀과 전선을 연결, 고정하기 어려움 (Pin 하나 두께: 0.8mm) 보드의 개념 (PCB _ Printed Circuit Board) MCU를 납땜으로 고정, 얇은 구리선으로 연결 회로설

MCU에 대해 깊게 공부해보고 싶으면 컴퓨터 구조 과목 자체를 공부해보는 것은 추천 ex) 캐쉬, 파이프라인, MMU, Loader 등 기계어 MIPS(Microprocessor without Interlocked Pipeline Stages) C언어 -빌드-> 어

Hex 파일 = CPU가 이해할 수 있는 기계어 코드 + 주소 정보 컴파일러가 주소 할당 빌드 과정인 Compile, Assemble, Link 중 Link 단계에서 주소 할당 -> 링커스크립트 파일 참조하여 주소 할당 링커스크립트 파일에서는 타겟 MCU 메모리 주