
1. C언어 Compile 과정Compile이란 쉽게 말해 소스 코드를 컴퓨터가 실행할 수 있는 형태로 변환하는 과정을 의미하며 아래 4가지 단계를 거쳐 사용자설정한대로 원하는 형태의 결과물을 얻을 수 있다.(e.g. exe, out)1) Prepreocessor 과정 소스파일(.c) -> 전처리파일(.i) - 매크로 처리: #define을 통해 정의한 메크로를 값으로 치환 - 헤더파일 처리: #include 지시문을 처리, 헤더 파일의 내용을 해당 소스 코드에 삽입 - 조건부 처리: #ifdef(#define 여부), #if(참 여부), #elif 등의 조건부 컴파일 지시문을 처리- 주석 제거- 여러 소스 코드 파일을 하나의 파일로 합병(헤더 파일은 중복 방지로 합병 x)#include // 지시문..

🌏 네트워크 매니지먼트란? CAN 네트워크 매니지먼트는 자동차의 제어 장치(ECU) 간 통신의 안전성과 신뢰성을 보장하기 위해 CAN(Controller Area Network) 버스 상에 연결된 모든 ECU의 상태를 모니터링하고 관리하는 프로세스를 의미하며 주요 기능은 아래와 같다. 각 ECU의 네트워크 활성/비활성 상태 모니터링 각 ECU는 NM 메시지 또는 CAN 버스 활동을 통해 다른 ECU의 네트워크 상태를 감지한다. 네트워크 비활성 상태에 진입하거나 탈출할 때 NM 메시지를 사용하여 다른 ECU에 알린다. 네트워크 활성/비활성 상태 변화 제어 특정 조건 충족 시 ECU는 네트워크 활성 상태로 전환됨 (예: 엔진 시동, CAN 버스 활동 감지) 특정 조건 충족 시 ECU는 네트워크 비활성 상태로..

📥 Flash Reprogramming 이란? 임베디드는 개발은 보통 ECU(전자 제어 장치)를 개발자가 코딩을 통해 개발한 소프트웨어(펌웨어)를 사용해 원하는 기능을 하도록 하는 것을 의미한다. 이 때, ECU에 소프트웨어를 업데이트 하는 과정을 Flash Reprogramming 이라고 부른다. 개발 단계 이후 양산 단게에서도 오작동을 수정하거나 새로운 기능을 추가하는 등의 소프트웨어 업데이트가 필요한 경우 Flash Reprogramming을 통해 소프트웨어를 업데이트 할 수 있다. 자동차의 OBD-II 포트에 제조사별로 사용하는 펌웨어 업그레이드 장비를 연결해 Flash Memory에 소프트웨어를 업데이트 하는 방식을 사용한다. 📥 주요 구성 요소 Flash Reprogramming 과정은 Fla..

(※ 많은 사이트를 보고 공부해나가며 직접 정리한 것으로 올바르지 않은 내용이 있을 수 있습니다.) 💾 PCB vs Chip SOC를 이해하기 전 알아야할 칩, 회로 기판 등의 개념에 대해서 조사하였다. 회로 기판 (Board) 칩 (Chip) 정의 구리 등의 전도성 금속 회로판에 여러 칩, 부품, 연결망을 연결한 것 실리콘 판에 여러 반도체 소자를 집적한 것 주요 구성 전자 부품, 연결자, 전원 공급 장치 등 반도체 소자 (CPU, 메모리, 입출력 등) 크기 다양한 형태가 있으나 상대적으로 큼 실리콘 웨이퍼의 크기에 따라 다르나 보통 작음 용도 전자 회로를 구성하여 여러 기능도 수행 가능 (e.g. CPU 보드: PC에 연결 가능) 모든 기능이 아닌 특정 기능을 주로 수행 (e.g. CPU 칩: 데이터..

🚙 소프트웨어 플랫폼 소프트웨어 플랫폼은 소프트웨어와 하드웨어를 연결해주는 중간 계층이다. 컴퓨터에서는 OS, 드라이버 등의 소프트웨어를 통해 하드웨어에 접근하고 자동차에서는 AUTOSAR, XENON, ODIN과 같은 소프트웨어 플랫폼을 통해 접근한다. 현재 AUTOSAR의 점유율은 약 80% 정도이고 계속 증가하는 추세이다. 구분 제어기 컴퓨터 소프트웨어 응용 SW 각 제어기별 기능 SW (ex. Auto Light, Wiper, Room Lamp, ...) 응용 SW (ex. Excel, Outlook, 프린터 기능, ...) SW 플랫폼 공통 기능 모듈, 표준 인터페이스 + Tool (ex. XENON, ODIN) OSEK OS, AUTOSAR .NET 프레임워크, 윈도우 7, 리눅스 그래픽 드라..

🧪 Simulink 란? Simulink(시뮬링크)은 MATLAB의 확장 기능으로, 동적 시스템(시간에 따라 변화하는 시스템)을 보기 쉽게 그림으로 표현하고 해당 시스템 동작을 분석하는 데 있어 도움을 주는 그래픽 다이어그램 환경이다. 예를 들면 전기 모터를 사용해 물을 펌프하는 시스템을 만든다고 하면 simulink를 사용해 전기 모터 동작에 필요한 블록(부품)과 펌프 동작에 필요한 블록(부품)을 추가하고 전기 모터가 자동 시 펌프가 물을 펌핑하도록 서로 연결한다. (※ 이 과정을 모델링이라고 부른다.) 해당 모델의 시뮬레이션을 시작하고, 사용자는 전기 모터에 따라 물이 펌핑 되는데 있어 필요한 정보들을 얻을 수 있다. Simulink 특징 직관적인 그래픽 시스템 그래픽 다이어그램을 통해 내가 만들 시..

📝 MATLAB 이란? MATLAB = Matrix(행렬) + Laboratory(실험소) MATLAB은 공학의 기초인 행렬을 만들고 필요한 계산 및 조작을 수행하는 프로그래밍, 프로그래밍 언어이다. (※ MATLAB 언어가 MATLAB 프로그램에서 사용되기 때문에 프로그램, 언어 둘다 맞는 표현이다.) 핵심 기능 수치 계산, 데이터 수집, 데이터 분석, 데이터 시각화, 결과 문서화 및 공유 기능이 핵심 기능이다. MATLAB 명령어, 함수 중심의 언어 MATLAB은 명령어와 함수 중심 언어로, 객체 및 절차 지향 프로그래밍을 지원한다. 폴더 기능 기본 작업 공간은 C:\Users\User\Documents\MATLAB 이며 window와 기본 명령어는 비슷하다, 📝 MATLAB 주요 내용 정리 기본 내..

🤖 실습 목표 이전 채팅 서버, 채팅 클라이언트 프로그램에 이어 IoT 서버, 클라이언트 실습을 진행하였습니다. 채팅 서버, 채팅 클라이언트 내용 -> https://toby12.tistory.com/53 iot_server, iot_client 프로그램 작성 프로그램 빌드 센서, 디바이스 데이터 베이스 구축 클라이언트 -> 서버 센서 데이터 조회 요청 및 확인 클라이언트 -> 서버 디바이스 설정 업데이트 요청 및 확인 🤖 상세 기능 서버 소켓 및 스레드 초기화: 서버 소켓 생성 및 초기화 클라이언트의 연결을 처리하는 스레드를 생성 클라이언트 관리: 최대 32개의 클라이언트를 관리할 수 있는 배열과 해당 클라이언트 수를 추적하는 변수 설정 클라이언트의 ID 및 비밀번호를 미리 등록된 정보와 비교하여 인증..