이 영역을 누르면 첫 페이지로 이동
천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

페이지 맨 위로 올라가기

천천히 꾸준히 조용히

천천히 꾸준히 조용히.. i3months 블로그

Computer Science

  • 천천히 꾸준히 조용히
[Embedded] Device Driver

[Embedded] Device Driver

2026.05.14
디바이스 드라이버는 하드웨어를 추상화하는 소프트웨어 계층.. OS 다룬 내용이랑 유사할 수 밖에 없음. Upper Half 계층과 HAL 두 계층으로 나뉜다. // GPIOHAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);// 통신 UARTHAL_UART_Transmit(&huart2, buf, len, 100);// 초음파 TIMERHAL_TIM_Base_Start_IT(&htim2);// 모터 PWMHAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); 사실 지금까지 자연스럽게 작성하던 HAL_* 함수가 모두 디바이스 드라이버임.GPIO 레지스터를 직접 조작하지 않고 함수 호출만 했고, 내부에서는 디바이스 드라이버가 작동하던 것. ..
[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 4

[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 4

2026.05.14
https://dacon.io/competitions/official/236690/data 제 5회 ETRI 휴먼이해 인공지능 논문경진대회 - DACON분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.dacon.io 지금까지 내용을 기반으로 여러 가지 시도를 거쳤다.ensemble 크기 키우기, pseudo label을 다른 방식으로 적용해보기, rank average 적용 등등..그런데 전혀 진전이 없었음. 일단 내 로컬 컴에서는 Out-Of-Fold 방식으로 채점한다.Train 데이터 450개를 5개의 Fold로 나누고, Valid로 번갈아 선택하는 방식임. 여기서는 분명 점수가 잘뽑힘 그런데 데이콘에다가 제출만 하면 점수가 떨어진다.데이콘 서버는 비공개 라벨로 채점하니..
[Embedded] Embedded Operating System

[Embedded] Embedded Operating System

2026.05.13
OS가 없으면 프로그래머가 무한루프로 직접 순서를 정해야 하지만, OS가 있으면 스케줄러가 자동으로 태스크를 실행해 멀티태스킹을 구현할 수 있다. 무한루프 + 인터럽트 구조는 OS가 없는 상황에서 사용하는 코딩 컨벤션이다.OS 가 있으면 이렇게 짤 필요가 없다. 여러 함수를 동시에 돌리는 것처럼 보이는 구조를 다룬다. 윈도우나 리눅스에서는 Process와 Thread를 나눠서 부르지만, 임베디드 OS에서는 Task라고 부른다.어차피 모든 Task가 메모리 공간을 공유하니 Process와 Thread의 구분이 중요하지 않음. OS 공부할때랑 정말 비슷한.. 임베디드 OS도 일단 근본은 OS니까.. 커널은 OS로 애플리케이션에 서비스를 제공한다. API는 OS와 라이브러리에서 제공하는 인터페이스 함수..
[Embedded] Motor

[Embedded] Motor

2026.05.13
모터는 PWM으로 속도를 조절하고 인코더로 회전 결과를 측정한다.PWM은 출력이고 인코더는 입력으로, 두 가지가 한 쌍을 이뤄야 정확한 제어가 가능함. PWM, Timer 등 지난번에 센서를 공부할 때 다뤘던 내용들이 모터에 그대로 등장한다.다만 모터의 회전을 측정하는 인코더와 보정 파라미터를 찾는 Calibration이 새로 도입됨. DC 모터는 자석에 흐르는 전류의 방향과 세기를 조절해 모터에 회전력을 발생시킨다.전류의 방향이 회전 방향을 결정하고, 전류의 세기가 회전 속도를 결정한다. 일단 전류를 어떻게 조절하는지가 핵심. 인코더는 모터의 회전 방향과 이동거리 계산을 위해 사용된다.모터에 전류를 줘서 돌리더라도, 얼마나 돌았는지 계산해야 한다. 그러니 이 측정을 인코더가 담당함. 가변 저항으..
[Embedded] Sensor

[Embedded] Sensor

2026.05.13
센서는 아날로그 현상을 디지털 값으로 바꾸는 역할을 수행한다.센서가 어떤 물리량을 어떻게 측정하는지 이해하고, 출력 신호를 MCU의 어떤 자원으로 받아들일지 결정해야 함. 핸드폰만 해도 카메라, 지문인식, 화면 회전을 위한 가속도계, 습도 및 조도 센서, GPS 등 굉장히 많은 센서가 들어있음.여기서 각 센서마다 측정하는 물리량과 용도가 다 다르다. AXLM(가속도계)와 Gyro(자이로스코프)는 항상 pair로 사용된다.자이로스코프는 축을 중심으로 한 회전운동을 의미하고, 가속도계는 축 방향으로의 직선운동을 의미한다. 핸드폰을 들고 위로 올리면 직선이동이니 가속도계가 감지하고, 손목을 비틀면 회전이니 자이로스코프가 감지한다.두 가지가 함께 사용되어야 핸드폰을 잡은 자세를 파악할 수 있음.다만 두 가지를 ..
[Embedded] Communication Programming

[Embedded] Communication Programming

2026.05.12
STM32 에서 UART를 사용하려면 4가지 단계를 거쳐야 한다. 1. GPIO를 Alternate Function으로 Multiplexing2. USART 모듈을 활성화하고 송수신 모드 설정3. Baud Rate를 계산하고 BRR 레지스터에 작성 4. TXE 및 RXNE 플래그 기반으로 송수신 STM32F429xx 에는 USART 및 UART가 8개 들어있음.두 개 모두 섞여있다. STM32는 동기 모드도 지원함.APB1과 APB2는 속도가 다름. 각각 저속, 고속을 담당하고 USART1과 USART6은 빠른 버스에 붙어 baud rate가 높음. STM32의 핀 하나는 기본 GPIO 외 16가지 Alternate Function 중 하나로 사용될 수 있음.전에 다룬 USART CAN I2C 등..
[Embedded] Communication Protocol (1)

[Embedded] Communication Protocol (1)

2026.05.12
웹은 HTTP 기반으로 통신한다.HTTP 만 쓰는건 아니긴 함. HTTP 위에 Websocket도 올려서 쓰고.. gRPC 쓰기도 하고.. Thrift 쓰기도 하고..다만 웹에서의 웬만한 통신 프로토콜은 모두 HTTP 기반임. 웹은 물리 계층이 추상화되어 모든 웹 통신은 결국 TCP/IP -> 이더넷/Wi-Fi 패킷으로 내려간다.그리고 물리적 전송은 OS및 NIC 드라이버가 알아서 처리해줌. 그러니 개발자는 HTTP 위에서 뭘 할지만 고민하면 됨. 임베디드는 물리 계층을 직접 다루니 웹에서의 통신과는 좀 다름. 같은 PCB 보드 위 칩 간 통신은 SPIPC와 보드 사이 케이블은 UART핀이 부족하니 절약해야 한다. 센서를 여러 개 묶는건 I2C자동차 전체는 차동 신호가 필요하니 CAN등등... 임베디드 ..
[Embedded] ARM Assembly

[Embedded] ARM Assembly

2026.05.10
ARMv4 시절 32비트 ARM은 명령어 하나하나가 4바이트라 임베디드 환경에서 너무 무거웠다.그래서 Thumb이 나왔지만 표현력이 부족해 자주 32비트 ARM 모드로 돌아가야 했고, 그 때 마다 ISA를 갈아끼우는 비용이 발생함. Thumb-2에서는 단일 ISA에서 16비트와 32비트를 혼합해서 해결한다. (Instruction Set Architecture)모드 전환이 사라지고, 컴파일러가 알아서 적절한 크기를 고름.그리고 Cortex-M4에서는 Thumb-2를 사용하기에 ARM ISA같은 모든 명령어 조건부 실행이 불가능. IT 블록으로 흉내낸다. 프로세서의 레지스터는 모두 32비트이다. (R0 ~ R15)즉, 8비트나 16비트를 다룰 때도 32비트 레지스터에 담기게 된다. 그러니 남는 공간이 생..
[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 3

[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 3

2026.05.09
https://dacon.io/competitions/official/236690/data 제 5회 ETRI 휴먼이해 인공지능 논문경진대회 - DACON분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.dacon.io 이번에는 XGBoost를 적용해보자. LightGBM / CatBoost / XGBoost 모두 트리를 다루는 전략이 다름.지금까지는 LightGBM과 CatBoost모델을 피쳐만 바꾸는 방식으로 사용했는데, 이번에는 XGBoost를 사용함. 5-Fold 알고리즘은 똑같이 쓴다.알고리즘의 다양성을 키우면 노이즈를 더 줄일 수 있지 않을까.. 일단 성능은 XGBoost가 가장 좋긴 함. 그리고 제출했을 때 점수가 0.60807 으로 지금까지 결과물 중..
[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 2

[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 2

2026.05.05
https://dacon.io/competitions/official/236690/data 제 5회 ETRI 휴먼이해 인공지능 논문경진대회 - DACON분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.dacon.io 야간 걸음수만 보고 7개의 라벨을 맞추는건 힘들다. 그러니 단서를 풍부하게 줘야 함. 모델이 여러 피쳐와 피실험자 정보를 동시에 확인하도록 하기 위해 여러 피쳐를 한 테이블로 모으고 LightGBM 으로 7-Task를 학습시키자. 잠은 22:00 ~ 10:00 사이에 잔다. 그러니 이 시간대가 중요함.잠자는걸 어떻게 알 수 있을까? -> 심박수, 소음, 밝기, 폰 안봄 신호를 사용하자. 이 두 가지를 기준으로 새로운 피쳐를 만들었다.z-score도 함께..
[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 1

[Data Science] ETRI 휴먼이해 인공지능 논문경진대회 - 1

2026.05.04
https://dacon.io/competitions/official/236690/data 제 5회 ETRI 휴먼이해 인공지능 논문경진대회 - DACON분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.dacon.io 먼저 데이터를 까보자. 10명이 3달동안 핸드폰이랑 스마트워치를 차고 다닌 LifeLog를 기록하고, 그 다음날 아침 잠이 어땠는지 맞추는 데이터임.10명이 대충 3달동안 참여해서 대충 700개 Row가 수집됐고, 이 중 일부를 학습에 쓰고 일부를 라벨 가리고 검증에 사용함. 데이터를 쭉 읽어보면.. 언제 폰이 켜졌고 그 때 어떤 활동을 했고 그 때의 밝기는 어땠는지를 저장한다. 12:03 폰 켜짐 / 걷는중 / 화면안봄 / 주변조도 534lux12:23 워치 심..
[Embedded] General Purpose Input Output

[Embedded] General Purpose Input Output

2026.04.30
GPIO는 General Purpose Input Output의 약자로 범용적으로 사용할 수 있는 프로세서의 표준 인터페이스이다.핀들을 Input / Ouput / Alternate Function / Analog 등으로 설정해서 사용할 수 있음. GPIO 핀 하나를 제어하려면 클럭을 켜고, 레지스터로 모드를 설정하고, 데이터 레지스터로 읽기 쓰기 작업을 수행해야 함. STM32F429는 Cortex-M4 코어를 사용하는 SoC로, 버스가 두 종류로 나뉜다.AHB 버스는 고속으로 CPU와 메모리 사이를 중개하고, APB 버스는 저속으로 CPU와 주변장치를 중개함. 메모리는 CPU와 같은 속도로 돌아야 하지만 UART 같은 주변장치는 대충 돌아도 된다. (이미 외부 통신 속도가 정해짐)당연히 같은..
  • 최신
    • 1
    • 2
    • 3
    • 4
    • ···
    • 14
  • 다음

정보

천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

  • 천천히 꾸준히 조용히의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (703)
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • C (25)
      • C++ (12)
      • Java (19)
      • JavaScript (15)
      • Python (1)
      • PHP (2)
    • Computer Science (161)
      • Machine Learning (38)
      • Operating System (18)
      • Computer Network (28)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Data Science (9)
      • Embedded Software (10)
      • Computer Architecture (4)
      • Compiler Design (11)
      • Computer Security (13)
      • BlockChain (0)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Amazon Web Service (8)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • 💡 솔루션 (17)
    • 👥 모각코 (12)
    • 💬 기록 (10)
    • 📚 공부 (7)
    • -------------- (25)

최근 글

나의 외부 링크

메뉴

  • 홈
반응형

정보

i3months의 천천히 꾸준히 조용히

천천히 꾸준히 조용히

i3months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / AXZ. Copyright © i3months.

티스토리툴바