본문 바로가기

분류 전체보기894

C++ ] leetCode 2610 - Convert an Array Into a 2D Array With Conditions You are given an integer array nums. You need to create a 2D array from nums satisfying the following conditions: The 2D array should contain only the elements of the array nums. Each row in the 2D array contains distinct integers. The number of rows in the 2D array should be minimal. Return the resulting array. If there are multiple answers, return any of them. Note that the 2D array can have a.. 2023. 4. 9.
비글본 블랙 시작하기 같이온 USB케이블을 통해 비글본 블랙의 mini USB P4포트와 PC를 연결한다. 비글본 블랙은 eMMC에 데비안 계열 리눅스 배포판이 저장된 채로 출고되기 때문에 USB포트를 통해 전원이 공급되면 저장된 운영체제 이미지로 부팅된다. 부팅이 되고나면 조금 후 FAT 파일시스템의 드라이브가 잡힌다. 안에 들어가 START.htm 문서를 확인하면 처음 시작하는 사람들을 위한 가이드를 볼 수 있다. 아래 경로로 들어가면 Ethernet over USB interface 를 사용하기 위한 드라이버 파일이 있다. \Drivers\Windows 서명되지 않은 드라이버라 설치 실패했다. Win + I 키를 눌러 Windows 설정 ↓ 업데이트 및 보안 ↓ 복구 ↓ 고급시작 옵션 ↓ 지금 다시 시작 ↓ 재부팅 후 .. 2023. 4. 9.
비글본 블랙 ] 전원 공급 방법 1. USB 포트를 통해 전원을 공급하는 방법 The board can be powered by the PC via the provided USB port. In this configuration, The board is accessed either as a USB storage drive or via the browser on the PC. All the power for the board is provided by the PC via the USB cable. In some instances, the PC may not be able to supply sufficient power for the board. In that case, an external 5VDC power supply can be u.. 2023. 4. 9.
비글본 블랙 BeagleBone Black(BBB) 공식 홈페이지 : https://beagleboard.org/ System Reference Manual : https://docs.beagleboard.org/latest/boards/beaglebone/black/ Beaglebone Black은 텍사스 인스트루먼트(Texas Instruments)에서 설계한 유명 싱글 보드 컴퓨터(SBC)이다. TI Sitara AM335x 시스템온칩(SoC)을 기반으로 하며, 1GHz에서 작동하는 ARM Cortex-A8 CPU를 포함하고 있다. 개발자는 BeagloeBone Black을 통해 저비용으로 임베디드 리눅스 개발을 시작할 수 있고 규모있는 커뮤니티에서 다양한 지원을 받을 수 있다. 또한 BeagleBone Black은 오픈 소스 하드웨어라서 Beagl.. 2023. 4. 9.
STM32 ] 유저 버튼 고장 수리하기 보드의 유저 버튼이 고장나서 집에 돌아다니는 스위치로 교체해보았다. 기존에 남아있던 버튼 틀은 니퍼로 짤라주고 납땜이 잘되게 하기 위해 단자 접촉부위에 사포질을 하거나 칼집을 내준다. 미리 납을 녹여서 덮어두고 그 위에 솔더링 페이스트 묻힌 버튼을 올려놓고 다시 납땝한다. 예상대로 잘 작동한다. 2023. 4. 9.
노트북 시리얼 번호 CMD창에서 알아내는 법 명령 프롬프트 창에 아래 명령어 입력 wmic csproduct get identifyingNumber 2023. 4. 9.
Windows ] dism 운영체제 이미지 손상 복원, sfc 시스템 파일 무결성 검사 및 복원 Windows 이미지 손상 복원dism /online /cleanup-image /restorehealth   Windows 시스템 파일의 무결성을 검사하고 손상된 파일을 복원sfc /scaannow  디스크 검사하고 파일 시스템 오류 수정chkdsk c: /f 2023. 4. 9.
WinForms ] Label vs TextBox 컨트롤 결론 : 사용자가 편집할 수 있게끔 하려면 TextBox, 아닌 경우 Label 사용 추천 There are a few pro's and con's to both. Label Pro's: Text is not copy able Cursor does not change Sets size based on text (if autosize is on, I think its on by default) Option to align text to the right (autosize off) Con's: Text is not selectable/copy able Text might outgrow form/parent with autosize TextBox Pro's: Text is copy able Fixed size.. 2023. 4. 9.
SoC와 MCU의 차이 SoC(System-on-a-Chip)와 MCU(Microcontroller Unit)는 모두 하드웨어와 소프트웨어의 기능을 모두 포함하는 집적회로이지만 둘은 목적과 구성, 사용 분야 등에서 차이가 있다. SoC는 CPU, GPU, 메모리, 입출력(I/O) 인터페이스, 네트워크, 그래픽 처리 장치 등을 포함하고 있으며, 대규모 응용 프로그램을 수행할 수 있는 미니어처화된 컴퓨터 시스템이다. 대표적으로 모바일 기기, 스마트폰, 태블릿, IoT 디바이스, 자동차 시스템 등에서 사용된다. 반면에 MCU는 CPU, 메모리, 입출력(I/O) 인터페이스, 타이머, 카운터, ADC 등의 기능을 포함하고 있으며, 대개 저전력, 실시간 제어, 데이터 수집 및 처리와 같은 임베디드 시스템에서 사용된다. 즉, SoC는 주로.. 2023. 4. 9.
SBC(Single-Board Computer) SBC는 Single-Board Computer의 약자로, 컴퓨터의 모든 기능이 하나의 PCB(Printed Circuit Board)에 탑재된 컴퓨터를 말한다. SBC는 일반적인 데스크탑 컴퓨터와 비교하여 크기가 작고 저전력이며, 대개 리눅스나 다른 임베디드 운영체제를 사용하한다. 비교적 저렴한 가격과 다양한 입출력(I/O) 핀을 가지고 있어 다양한 외부 디바이스 및 센서와의 연결이 용이하여 개인용 컴퓨터, 교육 및 학습용, 임베디드 시스템 등 다양한 분야에서 쓰인다. 일반적으로 SBC(Single-Board Computer)에는 SoC(System-on-a-Chip)가 탑재된다. SoC는 단일 실리콘 칩에 CPU, GPU, 메모리, 입출력(I/O) 인터페이스, 네트워크, 그래픽 처리 장치 등을 포함하.. 2023. 4. 9.
C++ ] leetCode 1828 - Queries on Number of Points Inside a Circle 문제 You are given an array points where points[i] = [xi, yi] is the coordinates of the ith point on a 2D plane. Multiple points can have the same coordinates. You are also given an array queries where queries[j] = [xj, yj, rj] describes a circle centered at (xj, yj) with a radius of rj. For each query queries[j], compute the number of points inside the jth circle. Points on the border of the circ.. 2023. 4. 1.
C++ ] leetCode 64 - Minimum Path Sum Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right, which minimizes the sum of all numbers along its path. Note: You can only move either down or right at any point in time. Example 1: Input: grid = [[1,3,1],[1,5,1],[4,2,1]] Output: 7 Explanation: Because the path 1 → 3 → 1 → 1 → 1 minimizes the sum. Example 2: Input: grid = [[1,2,3],[4,5,6]] Output: 1.. 2023. 3. 31.
C ] 시간복잡도가 O(1)인 2의 거듭제곱 판별 int isPowerOfTwo(int n) { return (n && ((n & (n - 1)) == 0)); } 2의 거듭제곱은 가장 왼쪽에 있는 1을 제외하고 뒷부분이 전부 0이라는 걸 고려할 때 위와 같은 코드로 판별할 수 있다. 그리고 어떤 정수를 2의 거듭제곱 수로 나눈 나머지 연산을 해야할 때 성능향상을 위한 최적화 기법으로 %연산이 아니라 &연산을 쓰기도 한다. 위와 같은 논리이다. #define SOME_NUMBER_POWER_OF_TWO8 int getRemainder(int n) { return n & (SOME_NUMBER_POWER_OF_TWO - 1); } 2023. 3. 31.
Schmitt trigger 슈미트 트리거란? 슈미트 트리거는 히스테리시스(hysteresis) 특성을 갖도록 한 비교기이다. 비교기란? 비교기는 두 전압 레벨을 비교하여 그 결과를 디지털 신호(높음/낮음)로 출력하는 전자 부품이다. 일반적인 비교기는 하나의 기준 전압(임계값)만을 사용하기 때문에, 입력 신호에 잡음이 섞여 있을 경우 이 잡음이 결과에 오류를 일으킬 수 있니다. 이러한 문제를 해결하기 위해 '히스테리시스' 특성을 가진 비교기를 사용할 수 있다. 히스테리시스란? 히스테리시스(Hysteresis) 특성은 어떤 시스템이나 장치에서 입력 값이 증가할 때와 감소할 때의 반응 경로가 다르게 나타나 결과 값에 지연이나 오프셋을 발생시키는 현상을 말한다. 즉, 슈미트 트리거는 입력 신호의 방향(상승 또는 하강)에 따라 두 개의 임.. 2023. 3. 31.
C++ ] accumulate 함수 사용시 주의사항 헤더 #include accumulate 함수를 사용하기 위해선 numeric 헤더를 포함한다. 함수 원형 template T accumulate(InputIt first, InputIt last, T init); 구간 [first, last)에 속한 요소들의 합을 구한다. init으로 누적값을 초기화하고, 구간 내의 모든 요소들을 차례대로 더해서 누적값을 반환한다. ❗ 주의할 것은 인자인 first Iterator는 이상이고, last Iterator 미만이다. 때문에 last에는 합을 마지막 요소의 다음 위치를 가르키는 iterator가 온다. vector의 끝까지 연산하는 경우는 vec.end()가 온다. 사용 예시 벡터 내의 모든 요소의 합을 계산한다. #include #include #inclu.. 2023. 3. 31.
Win32 API, Windows API Windows API란? Windows에서 동작하는 App을 만들 때, Windows가 프로그래머들을 위해서 제공해주는 함수의 집합을 말한다. 과거 Windows 95, 98, ME 및 NT와 같은 32 비트 운영체제에서 사용되는 인터페이스는 Win32 API라는 이름으로 불렸다. 현재는 64비트 지원이 추가되면서 Win32 API를 포함하여 Windows API라고 부르고 있지만 아직도 Win32 API라고 칭하는 사람들이 있다. Windows API를 사용하려면? Windows API를 사용하려면 해당 API 함수가 선언된 헤더 파일과 라이브러리를 프로젝트에 추가해야 하며, 보통 Windows API 함수는 windows.h 헤더 파일 안에 선언되어 있으므로 이 헤더 파일을 포함시키면 된다. Visu.. 2023. 3. 31.
Python ] struct 모듈 This module converts between Python values and C structs represented as Python bytes objects. Compact format strings describe the intended conversions to/from Python values. The module’s functions and objects can be used for two largely distinct applications, data exchange with external sources (files or network connections), or data transfer between the Python application and the C layer. Funct.. 2023. 3. 31.
Analog Multiplexer/Demultiplexer 아날로그 멀티플렉서(Multiplexer) 및 디멀티플렉서(Demultiplexer)는 다수의 아날로그 입력 신호 중에서 하나를 선택하거나 분배하기 위해 사용되는 IC칩이다. 디지털 멀티플렉서랑 똑같다, 다수의 입력 신호 중에서 하나의 출력 신호를 선택하는 역할을 한다. 다만 신호가 아날로그인 것이다. 입력 신호는 멀티플렉서의 선택 입력에 의해 선택되는데, 선택 입력(Sx Pin)은 이진 형태로 구성된다. 2의 n승 개의 입력이 있는 멀티플렉서는 n개의 선택 입력이 필요하다. 선택 입력을 이용해 하나의 입력을 선택하고 출력으로 전달하므로 멀티플렉서는 다수의 입력 신호를 단일 출력 신호로 변환하는 기능을 수행한다. 반면 디멀티플렉서는 반대로 하나의 입력 신호를 선택 입력을 통해 다수의 출력 신호 중 하나로.. 2023. 3. 31.
CAN FD, TDC (Transmitter Delay Compensation) CAN FD 사용시 Data bitrate 2Mbps까진 괜찮았지만 그 이상으로 고속 통신하려면 CAN FD 컨트롤러에 TDC 설정이 필요하다. transmitter delay compensation (TDC) At bit-rates higher than 1 Mbit/s in the data phase of CAN FD frames the transmitting node has to compensate the TD when comparing its transmitted bits to the delayed received bits. TDC mechanism defines a secondary sample point SSP. When it is used, the transmitter ignores bit e.. 2023. 3. 31.
C++ ] leetCode 1476 - Subrectangle Queries Implement the class SubrectangleQueries which receives a rows x cols rectangle as a matrix of integers in the constructor and supports two methods: 1. updateSubrectangle(int row1, int col1, int row2, int col2, int newValue) Updates all values with newValue in the subrectangle whose upper left coordinate is (row1,col1) and bottom right coordinate is (row2,col2). 2. getValue(int row, int col) Retu.. 2023. 3. 31.
소수점이하 값 정수형으로 얻는법 소수점 이하 값을 정수형으로 얻으려면, 원하는 소수점 자리수만큼 10의 거듭제곱을 곱하고 나머지연산을 하면된다. int main() { float pie = 3.141592; printf("%d.%d", (int)pie, (int)(pie*1000000) % 1000000); return 0; } 다른 예시 byte를 KB 또는 MB로 변환하는건데, a/b의 소수점 이하 둘째자리 까지의 값을 정수형으로 알고 싶으면 a*10^2/b 하면된다. 그 이하는 버림. #include void printSizeInKBorMB(int byte) { int size; int decimal; char unit; if (byte < 1024 * 1024) { // 1MB 미만 size = byte / 1024; decim.. 2023. 3. 31.
NTP 서버에서 시간 받아오기 UTC UTC (Coordinated Universal Time)는 지구상의 시간 표준을 정의하기 위한 국제 표준 시간으로, 국제원자시(TAI)를 기반으로 하되, 지구의 자전 속도 등에 따라 발생하는 차이를 보정하기 위해 윤초(Leap Second)를 삽입하여 보정된다. 국제 원자시란 세슘 원자의 진동 주파수를 기준으로 시간을 계산하며, 세계 각지의 원자 시계들의 평균값을 취하여 UTC가 유지된다. UTC는 24시간을 기준으로 하며, 1시간은 60분으로 구성되고, 1분은 다시 60초로 구성되어 있다. 이러한 시간 단위들은 세계 각지에서 일관되게 사용된다. 아래 Unix Time, Windows Time, NTP time 전부 UTC를 기반으로 한다. Unix Time Unix Time은 컴퓨터 시스템에서.. 2023. 3. 31.
C++ ] 2차원 vector 사용법 1. 생성 및 요소 접근 2차원 벡터는 vector 형태로 생성할 때, 첫 번째 인자에 행의 개수를 넣고, 두 번째 인자에는 열의 개수를 넣는다. 또한, 세 번째 인자로는 2차원 벡터의 모든 요소를 초기화할 수 있는 값을 넣는다. 예를 들어, 위의 코드에서는 0으로 모두 초기화한다. 이렇게 생성한 2차원 벡터는 matrix[i][j]와 같이 2개의 인덱스로 요소에 접근할 수 있다. #include #include using namespace std; int main() { vector matrix(3, vector(3, 0)); matrix[0][0] = 1; matrix[1][1] = 2; matrix[2][2] = 3; for(int i=0; i 2023. 3. 31.
DO-178C 산출물 22종 Output Data according to DO-178C Process Process OutputData Planning Plan for Software Aspects of Certification (PSAC) Software Development Plan (SDP) Software Verification Plan (SVP) Software Configuration Management Plan (SCMP) Software Quality Assurance Plan (SQAP) Software Requirement Standard (SRS) Software Design Standard (SDS) Software Coding Standard (SCS) Development Software Requiremen.. 2023. 3. 31.
FatFs, f_getfree(), f_readdir() 드라이브 여유 공간/사용 공간 확인 The f_getfree function gets number of the free clusters on the volume. FRESULT f_getfree ( const TCHAR* path, /* [IN] Logical drive number */ DWORD* nclst, /* [OUT] Number of free clusters */ FATFS** fatfs /* [OUT] Corresponding filesystem object */ ); Parameters path : Pointer to the null-terminated string that specifies the logical drive. A null-string means the default drive. nclst : Pointer .. 2023. 3. 31.
Weight on Wheels (WoW) Signal Definition Weight on wheels (WoW) switches indicate whether the weight of an aircraft is resting on its wheels. This information reveals whether the aircraft is airborne or on the ground. Air/ground sensing prevents various systems from operating inappropriately on the ground or in flight. It also ensures systems are enabled or disabled as befits the aircraft’s situation. Function Most aircraft .. 2023. 3. 31.
저장장치 클러스터 크기 확인법 diskpart에서 파티션 선택하고 filesystems 입력 2023. 3. 31.
Open/Ground, 28V/Open Discrete 신호는 밸브류 혹은 스위치류 등으로 불연속적인 전기적 신호를 말하여 항공전자 산업에서 Open/Ground, 28V/Open 로 구분된다. 각 신호마다 신호의 안정성을 확보하기 위하여 pull-up, pull-down 처리를 하며, 신호 특성에 따라 항공전자 장비 간 연결이 이루어져야 한다. 각 신호의 안정성 확보를 위한 말단 처리에 대하여도 매칭시켜야 하는데 일부 항공전자 장비의 경우에는 신호의 안정성 확보를 위해 임피던스 매칭 혹은 특정 임피던스 범위를 제시하는 경우도 있다. Open/Ground Open/Ground 신호는 통상적으로 discrete 신호가 open 상태에 있다가 명령이나 상태 천이가 발생하면 discrete 신호가 ground 상태로 변경되는 것을 말한다. 혹은 그.. 2023. 3. 31.
TMS320F28388D ] Ethernet_resetModule() 무한루프 문제 PHY에 공급되는 클락이 잘못되있거나 GPIO 설정이 잘못되어 있으면 CM 쪽에서 Ethernet 초기화시 Ethernet_resetModule() 함수 안에서 hang되는 문제가 있다. 해당 현상 발생시 CPU1쪽 ethernet Pin mux 설정 코드를 살펴보고 주변회로가 컨트롤카드와 동일하게 구성되어있는지 체크하는게 좋다. 참고 : https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1164646/tmdscncd28388d-stop-with-ethernet_resetmodule-in-lwip TMDSCNCD28388D: Stop with Ethernet_.. 2023. 3. 31.
FPGA IP (Intellectual Property) Core FPGA는 프로그래밍 가능한 칩으로, 이를 사용하면 사용자가 필요한 로직을 구현할 수 있지만, 이를 처음부터 설계하는 것은 매우 복잡하며 시간과 비용이 많이 든다. 이때 다른 회사에서 개발한 FPGA IP를 사용하면 개발시간을 단축하고 자신들의 제품을 빠르게 시장에 출시할 수 있다. FPGA IP는 FPGA(Integrated Circuit)에서 사용되는 IP(Intellectual Property) 코어(기술)를 의미하는데, 재사용 가능한 디자인 블록으로 구성된 하드웨어 구성 요소를 말하며, 다양한 기능을 제공하는 FPGA IP들이 있다. 예를 들면, UART, SPI, Ethernet, USB 등의 통신 인터페이스, FFT, DFT, FIR 등의 디지털 신호처리 기능, MPEG-2, H.264 등의 .. 2023. 3. 31.