반응형

2025/02 115

C언어 `math.h`의 삼각 함수 정리

C언어 math.h의 삼각 함수 정리C언어에서는 math.h 헤더 파일을 통해 다양한 수학 함수를 제공하며, 삼각 함수도 포함됩니다. 이번 글에서는 sin, cos, tan, asin, acos, atan 함수에 대해 설명하고 예제 코드를 제공합니다.1. 삼각 함수란?삼각 함수는 각도를 입력받아 삼각형의 변의 비율을 반환하는 함수입니다. 대표적인 함수는 다음과 같습니다:sin(x): 주어진 각도의 사인 값을 반환cos(x): 주어진 각도의 코사인 값을 반환tan(x): 주어진 각도의 탄젠트 값을 반환asin(x): 사인 값에서 각도를 구함 (역함수)acos(x): 코사인 값에서 각도를 구함 (역함수)atan(x): 탄젠트 값에서 각도를 구함 (역함수)모든 입력값과 출력값은 라디안(Radian) 단위를 사..

CAN 통신의 특징 및 장점

CAN 통신의 특징 및 장점1. CAN 통신이란?CAN(Controller Area Network) 통신은 자동차, 산업 자동화, 로봇 시스템 등에서 널리 사용되는 직렬 데이터 통신 프로토콜입니다. 기존의 직렬 통신 방식(SPI, UART, I2C)과 비교했을 때 높은 신뢰성과 다중 노드 확장성이 특징이며, 특히 자동차 전자 제어 유닛(ECU) 간 통신에서 표준으로 자리 잡았습니다.2. CAN 통신의 주요 특징CAN 통신은 기존의 다른 직렬 통신 방식과 비교했을 때 몇 가지 중요한 특징을 가지고 있습니다.2.1 멀티마스터 방식 및 노드 확장성CAN 네트워크는 멀티마스터(Multi-Master) 방식을 지원합니다. 이는 하나의 노드가 고장 나더라도 전체 네트워크가 영향을 받지 않도록 설계된 구조입니다.노드..

CAN/CAN 기초 2025.02.19

C 표준 라이브러리 `math.h` 개요 및 기본 수학 연산

C 표준 라이브러리 math.h 개요 및 기본 수학 연산C 언어에서 수학 연산을 수행할 때 자주 사용되는 표준 라이브러리 중 하나가 math.h입니다. 이 라이브러리는 다양한 수학 함수들을 제공하며, 이를 활용하면 복잡한 계산을 보다 효율적으로 수행할 수 있습니다.이번 글에서는 math.h 라이브러리의 개요와 함께 기본적인 수학 연산을 수행하는 함수들인 sqrt, pow, exp, log, log10에 대해 설명하고, 예제 코드와 함께 각각의 함수가 어떻게 동작하는지 살펴보겠습니다.1. math.h 개요math.h는 수학 연산을 위한 함수들을 제공하는 C 표준 라이브러리입니다. 해당 라이브러리를 사용하려면 #include 를 소스 코드에 포함해야 합니다.또한, math.h의 함수들을 사용할 때 일부 함수..

Fastboot 모드 및 부트로더 관리

Fastboot 모드 및 부트로더 관리Android 기기의 부트로더와 Fastboot 모드는 개발자와 고급 사용자가 기기 펌웨어를 수정하거나 복구할 때 필수적인 요소입니다. 이번 포스팅에서는 부트로더 모드에 진입하는 방법과 Fastboot 명령어를 활용한 주요 관리 방법을 상세히 설명하겠습니다.1. Fastboot 모드란?Fastboot 모드는 Android 기기의 부트로더에서 제공하는 저수준 인터페이스로, 명령줄을 통해 기기의 펌웨어를 직접 수정할 수 있습니다. 일반적으로 다음과 같은 작업을 수행할 때 Fastboot 모드를 사용합니다.시스템, 부트로더, 리커버리 등의 파티션 플래싱부트로더 언락 및 리락(lock)특정 시스템 명령어 실행 (예: 공장 초기화, 파티션 삭제 등)2. 부트로더 모드 진입 (..

Android/ADB 2025.02.19

CAN 프로토콜 개요

CAN 프로토콜 개요1. CAN(Controller Area Network) 프로토콜이란?CAN(Controller Area Network)은 자동차, 산업 자동화, 로봇, 의료 기기 등 다양한 임베디드 시스템에서 널리 사용되는 직렬 통신 프로토콜입니다. CAN 프로토콜은 1980년대에 독일의 Bosch사에서 개발하였으며, 높은 신뢰성과 실시간 데이터 교환이 필요한 환경에서 효과적으로 동작합니다.1.1 CAN 프로토콜의 특징멀티마스터(Multi-Master) 방식: 네트워크 내 모든 노드가 송신할 수 있으며, 특정 노드에 의존하지 않습니다.우선순위 기반 메시지 송수신: 메시지의 ID 값을 이용하여 우선순위를 정하고, 우선순위가 높은 데이터가 먼저 전송됩니다.에러 검출 및 오류 복구 기능: CRC(Cycl..

CAN/CAN 기초 2025.02.18

ADB를 활용한 개발 및 자동화

ADB를 활용한 개발 및 자동화1. 개요Android Debug Bridge(ADB)는 Android 기기와 컴퓨터 간의 연결을 제공하는 강력한 도구입니다. 개발자는 ADB를 활용하여 앱을 디버깅하고, 시스템 설정을 변경하며, 자동화된 테스트를 수행할 수 있습니다. 본 포스팅에서는 ADB를 활용하여 터치 이벤트를 실행하고, 텍스트를 입력하며, 스크립트를 통해 반복적인 작업을 자동화하는 방법을 설명하겠습니다.2. ADB 명령어를 활용한 터치 및 입력 자동화2.1 특정 좌표 터치 이벤트 실행모바일 자동화에서 특정 위치를 터치하는 기능은 UI 테스트 및 반복 작업 자동화에 유용합니다. 이를 위해 ADB의 input tap 명령어를 사용할 수 있습니다.명령어 형식:adb shell input tap 예제:ad..

Android/ADB 2025.02.18

C 언어 `stdlib.h`의 메모리 조작 함수 완벽 정리

C 언어 stdlib.h의 메모리 조작 함수 완벽 정리C 언어에서 메모리를 직접 다루는 것은 성능과 효율성을 고려할 때 매우 중요한 요소입니다. stdlib.h 헤더 파일에는 메모리를 조작하는 다양한 함수들이 포함되어 있으며, 그중에서도 memcpy, memmove, memset, memcmp는 가장 많이 사용됩니다. 이번 포스트에서는 이들 함수의 동작 방식과 사용법을 예제 코드와 함께 살펴보겠습니다.1. memcpy 함수개요memcpy 함수는 한 메모리 블록에서 다른 메모리 블록으로 데이터를 복사할 때 사용됩니다. 하지만, 두 메모리 블록이 겹치는 경우 예측할 수 없는 동작(UB, Undefined Behavior)이 발생할 수 있습니다.함수 원형void *memcpy(void *dest, const ..

CAN(Controller Area Network)이란?

CAN(Controller Area Network)이란?1. CAN 통신의 개념과 역사1.1 CAN 통신이란?CAN(Controller Area Network)은 독일의 보쉬(Bosch)사가 1980년대 초에 개발한 직렬 통신 프로토콜로, 자동차와 산업용 기기에서 널리 사용됩니다. CAN은 여러 개의 전자 제어 장치(ECU, Electronic Control Unit) 간의 데이터 교환을 가능하게 하며, 신뢰성과 효율성이 뛰어난 것이 특징입니다.CAN은 마스터-슬레이브 방식이 아닌 멀티마스터 방식으로 작동하며, 한 개의 노드(Node)가 데이터를 송신하면 네트워크의 모든 노드가 이를 수신할 수 있습니다. 따라서 네트워크에서 특정 노드가 장애가 발생해도 다른 노드 간의 통신이 유지되는 높은 신뢰성을 제공합..

CAN/CAN 기초 2025.02.17

C `stdlib.h` 개요 및 동적 메모리 할당

C stdlib.h 개요 및 동적 메모리 할당1. stdlib.h 개요C 언어의 표준 라이브러리인 stdlib.h는 다양한 유틸리티 함수들을 제공하며, 그중에서도 동적 메모리 할당 관련 함수들이 핵심적인 역할을 합니다.stdlib.h에서 제공하는 주요 기능은 다음과 같습니다.동적 메모리 할당 (malloc, calloc, realloc, free)난수 생성 (rand, srand)문자열 변환 (atoi, atof, strtol, strtod 등)프로세스 제어 (exit, abort, system)이번 포스팅에서는 동적 메모리 할당 관련 함수들을 중심으로 설명하겠습니다.2. 동적 메모리 할당의 필요성C 언어에서는 배열을 사용할 경우 크기를 미리 지정해야 합니다. 하지만 프로그램 실행 중에 필요한 크기를 예..

ADB Shell을 활용한 시스템 제어

ADB Shell을 활용한 시스템 제어Android Debug Bridge(ADB)는 Android 기기와 PC 간의 명령어 기반 인터페이스를 제공하는 강력한 도구입니다. 특히 adb shell 명령을 활용하면 Android 기기의 시스템을 직접 제어하고 다양한 작업을 수행할 수 있습니다. 이번 글에서는 ADB Shell을 활용하여 시스템을 제어하는 다양한 방법을 다루겠습니다.1. ADB Shell 실행adb shell 명령은 Android 기기의 Linux 기반 명령줄 인터페이스를 실행하는 기본적인 명령어입니다. 이를 활용하면 Android 시스템 내부에서 직접 명령을 실행할 수 있습니다.adb shell위 명령을 실행하면 Android 기기의 셸 환경으로 진입할 수 있으며, 일반적인 Linux 명령어..

Android/ADB 2025.02.17
반응형