본문 바로가기

분류 전체보기894

파워포인트 ] 텍스트 상자 안에 글자 크기 맞추기 텍스트 상자와 글자크기 연동하기 텍스트 상자 선택 서식 - 텍스트 효과 - 변환 - 휘기 - 사각형 텍스트 박스 우클릭 - 도형 서식 - 텍스트 옵션 - 텍스트 상자 - '도형의 텍스트 배치' 체크 해제 2022. 10. 19.
CCS ] C2000ware 다른 버전 선택하기 공식 홈페이지에 원하는 버전 다운로드 후 설치 https://www.ti.com/tool/download/C2000WARE Window - Preferences CCS - Products - Refresh 누르고 추가를 원하는 버전 선택 후 Apply 적용할 프로젝트 오른쪽 클릭하고 Properties General - Products 탭 - C2000Ware 선택 - Edit 버전 바꾸고 Apply and close 혹은 굳이 다운을 받지 않더라도 import한 프로젝트가 예전 버전 C2000Ware를 사용하고 상위 버전이 내 PC에 깔려있으면 같은 방식으로 Compatiable 버전으로 선택이 가능하다. 2022. 10. 19.
Windows ] ping 테스트 안될 때 or 한쪽만 될 때, ICMP 프로토콜 응답 허용하기 Window + I 로 설정 켜키 - 네트워크 및 인터넷 - Windows 방화벽 - 고급 설정 - 인바운드 규칙 파일 및 프린터 공유(에코 요청 - ICMPv4-In) 규칙 사용 클릭 2022. 10. 19.
gdb의 플러그인 pwndbg 설치 https://github.com/pwndbg/pwndbg GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made Easy Exploit Development and Reverse Engineering with GDB Made Easy - GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made Easy github.com 설치는 간단하다. ​ 위 사이트를 git clone 하고 pwndbg 폴더에 들어가 setup.sh 파일을 실행하면 설치가 된다. 그리고 디버그할 실행파일이 있는 곳으로 이동해서 gdb 명령어를 입력하면 p.. 2022. 10. 18.
19.7년 마다 돌아오는 GPS판 Y2K 버그 GPS Week Number Rollover GPS의 시간 표기는 '위크 넘버 롤오버(Week Number Rollover)’로 불리는 구조적 문제를 안고있다. GPS가 처음 등장한 1980년 당시에는 날짜를 주 단위로 계산해 기록했으며, 주 단위를 표기하는데 10비트를 할당하였기 때문에 0-1023까지 week 번호를 표기하고 1023을 넘어가면 오버플로우가 나서 0으로 돌아가게 된다. 즉, 1년은 52주니까 약 19.7년까지만 날짜를 기록하도록 설계된 것이다. 해당 오류가 처음 발생한 것은 1999년 8월이며, 다음 오류는 2019년 4월 발생했다. 오류가 발생한 경우 해결 방법은 각각 다르다. 시스템을 초기화(리셋)하는 것으로 해결되는 사례가 있고, 펌웨어를 업데이트해야만 쓸 수 있는 기기도 있다. 한편, 가장 많이 쓰는 GPS 장착 기기인 .. 2022. 10. 17.
Everything ] 네트워크 폴더 추가하는 방법 Everything 에서 도구 - 설정 색인 - 폴더 - 추가 - 추가할 네트워크 드라이브 또는 폴더 경로 선택 후 확인 용량이 크면 처음 추가시 스캔에 시간이 좀 걸릴 수 있다. 2022. 10. 13.
부동소수점 표현 IEEE 754 부동소수점부동소수점(Floating point) 방식은 실수를 컴퓨터상에서 근사하여 표현할 때(원래 이진법으로는 십진법 소수를 정확하게 표현할 수 없다.) 소수점의 위치를 고정하지 않고 그 위치를 나타내는 수를 따로 적는 것으로 유효숫자를 나타내는 가수와 소수점의 위치를 풀이하는 지수로 나누어 표현한다.컴퓨터에서는 고정소수점 방식보다 넓은 범위의 수를 나타낼 수 있지만 연산 속도고 비교적 느리기 때문에 별도의 전용 연산장치(FPU)를 두는 경우가 많다. 고정 소수점과 달리 정수 부분과 소수 부분의 자릿수가 일정하지 않으나 유효숫자의 자리수는 정해져 있다.  IEEE 754IEEE 754 는 컴퓨터에서 부동소수점을 표현하는 데 가장 널리 쓰이는 표준이다. IEEE 754의 부동 소수점 표현은 크게 세 부분.. 2022. 10. 13.
ADC (Analog-to-digital converter) https://microcontrollerslab.com/analog-to-digital-adc-converter-working/ 정의 표본화(Sampling) → 양자화(Quantization) → 부호화(Encoding) 총 3단계를 통해 아날로그(Analog) 신호를 디지털(Digital) 신호로 변환 (A/D 변환)하는 것. 즉 연속적인 analog 신호를 0과 1로 구성된 digital 신호로 변환하는 IC칩이다. 변환과정 1. 샘플링(Sampling) 시간축 방향에서 연속된 아날로그 신호의 진폭치를 일정 간격(샘플링 주기 Ts)으로 샘플을 추출하여 이산신호(discrete signal)로 변환시키는 과정 2. 양자화(Quantization) 샘플 추출한 연속적인 진폭의 신호를 특정 이산진폭값으.. 2022. 10. 12.
이산 신호와 디지털 신호 이산 신호는 연속신호를 샘플링한 신호이다. 연속 신호는 연속함수인 반면, 이산 신호는 수열이다. 이때 수열의 각 값을 샘플이라고 한다. 디지털 신호는 양자화된 신호이므로, 이산 신호는 디지털 신호와 구분되어야 한다. 다시 말하면, 이산 신호는 무한한 정밀도를 가지는 반면 디지털 신호는 8비트·16비트처럼 유한한 정밀도를 가진다. 출처 : https://ko.wikipedia.org/wiki/%EC%9D%B4%EC%82%B0_%EC%8B%A0%ED%98%B8 2022. 10. 12.
Linux ] cat 명령어, > 리다이렉션 📝 cat 명령어 사용법 cat [옵션][파일명] 📝 파일 내용 출력하기 cat file.txt cat -n file// 행번호 표시해서 출력 cat file1 file2// 여러 파일을 연속해 출력 📝 리다이렉션 사용해 파일 만들기 cat 명령어와 > 리다이렉션 사용해 파일 만들기 cat > file// 기존에 있던 내용을 지우고 저장 cat >> file// 기존 파일 내용 뒤에 연속해 기록 치면 파일 내용을 입력할 수 있게 커서가 깜빡거린다. 내용 입력 후 엔터를 치고 Ctrl + D 를 누르면 입력한 내용이 파일에 저장이 된다. echo 명령어와 > 리다이렉션 사용해 파일 만들기 echo "Hi" > hi.txt 기타 명령어의 출력 내용을 파일에 기록하기 ll > file.txt ls -al > .. 2022. 10. 10.
Linux ] gcc -O 최적화 옵션 플래그 컴파일러의 최적화 수준을 설정 옵션 최적화수준 -O0 최적화를 수행하지 않는다. (기본값) -O1 또는 -O 코드 크기와 실행 시간을 줄이는 것을 제외한 최적화는 실행하지 않는다 -O2 메모리 공간과 속도를 희생하지 않는 범위내의 모든 최적화를 수행한다 loop unrolling과 function inlining에 대한 최적화를 수행하지 않는다 -O3 O2 최적화에 인라인 함수와 레지스터에 대한 최적화를 추가로 수행한다. -Os O2 최적화를 수행하지만 코드 크기를 증가시키는 최적화는 생략한다. -Ofast 사용이 권장되지 않는 최적화 옵션 ※ 커널 컴파일 시 최적화 옵션 -O2만 사용하는 이유 커널은 최적화된 수행 속도를 위해 의도적으로 인라인 함수를 사용하고 있다. -O3 최적화는 컴파일러가 판단해서.. 2022. 10. 9.
Linux ] gdb 디버거 사용법 -g 옵션을 넣고 컴파일 한다. gcc main.c -g -o main 컴파일 최적화 옵션은 사용하지 않는 것이 좋다. gdb 실행파일명으로 실행한다. gdb ./main 또는 gdb로 실행중인 프로세스의 식별자인 PID를 load 하는 것도 가능하다. 소스코드 보기 l : main 심볼부터 소스코드 출력 l 10: 10행을 기준으로 소스코드 출력 l - : 이전행의 소스 출력 l func: 해당 함수의 소스 출력 l file.c:func: 해당 파일의 해당 함수 부분을 출력 l file.c:10 : file.c 파일의 line 10을 기준으로 출력 set listsize 20 : l 명령의 기본 출력 코드 수를 20라인으로 설정 어셈블리 코드 보기 disas 라인/함수명 분기 jump 행번호/함수명 엔.. 2022. 10. 9.
Linux ] rm 명령어 rm (옵션) 삭제할 파일 또는 디렉토리 명 옵션 -r : 일반 파일은 그냥 지우고 디렉토리는 리렉토리 포함 하위 경로의 파일을 모두 지운다. -i : 지우기 전에 사용자의 확인을 받는다. (y/n) -f : 확인하지 않고 지운다. ex. rm -rf * 현재 디렉토리에 속한 모든 파일과 디렉토리를 물어보지 않고 삭제한다. 2022. 10. 9.
Linux ] 연속으로 명령 실행시키기 ; & && || pipe a; b : 앞의 명령어가 실패해도 다음 명령어 실행 a && b : 앞의 명령어가 성공했을 때 다음 명령어가 실행 a & b : 앞의 명령어를 백그라운드로 돌리고 동시에 뒤의 명령어를 실행 a || b : 앞의 명령어가 성공했을 때 다음 명령어 미수행, 앞의 명령어 실패 시 다음 명령어 실행 그 외 a | b : pipe, a의 수행 결과를 b가 받아서 수행 ex. cat /etc/passwd | grep mail 시스템의 계정정보가 들어있는 /etc/passwd 파일을 출력하는데 mail 이란 문자열이 들어간 라인만 필터링 tail -20 /etc/passwd | cat -n /etc/passwd 파일을 뒤에서 20줄 출력하는데 cat -n 옵션인 줄번호를 붙여 출력 2022. 10. 9.
Linux ] mv, rename 명령어 사용법, 파일명 변경, 파일 이동, 확장자 일괄 변경 📝 mv 명령어 사용 파일명 변경 mv 기존파일명 변경파일명 📝 mv 명령어 사용 파일 이동 mv 기존파일경로/기존파일명 옮길경로/변경파일명 파일이 위치를 이동하면서 파일명을 변경하는 것도 가능 📝 rename 명령어를 사용하기 위해 설치 sudo apt install rename 📝 테스트용 빈 파일 만들기 touch test1.c && touch test2.c 📝 rename 명령어 사용하여 확장자 또는 파일명 일괄 변경하기 rename 's/변경전문자열/변경후문자열/' 변경대상 rename 's/.c/.txt/' *.c rename 's/.txt/.c/' *.txt rename 's/test/TEST/' *.c 2022. 10. 9.
C ] memset 함수 구현 void *my_memset(void *s, int c, int len) { unsigned char *p = (unsigned char *)s; while (len > 0) { *p = c; p++; len--; } return (s); } #include void *my_memset(void *s, int c, int len) { unsigned char *p = (unsigned char *)s; while (len > 0) { *p = c; p++; len--; } return (s); } int main() { char str[13] = "hello world!"; for (int i = 0; str[i] != '\0'; i++) { printf("%c", str[i]); } printf("\n.. 2022. 10. 9.
VSCode ] 한글 깨짐 해결, 인코딩 자동 설정 File - Preference - Settings Text Editor - Files - Auto Guess Encoding 체크 파일을 다시 열면 인코딩이 자동 설정된다. 다른 방법 우측 하단의 UTF-8 선택 Reopen with Encoding 인코딩 설정을 바꿔 Reopen 할 수 있다. 2022. 10. 9.
TCP Flag(URG, ACK, PSH, RST, SYN, FIN) TCP(Transmission Control Protocol)는 3-WAY Handshake 방식을 통해 두 지점 간에 세션을 연결하여 통신을 시작하고 4-WAY Handshake를 통해 세션을 종료하여 통신을 종료한다. 이러한 세션 연결과 해제 이외에도 데이터를 전송하거나 거부, 세션 종료 같은 기능이 패킷의 FLAG 값에 따라 달라지게 되는데, TCP FLAG는 기본적으로 6 가지로 구성된다. FLAG 순서 : URG | ACK | PSH | RST | SYN | FIN | 각각 1비트로 TCP 세그먼트 필드 안에 CONTROL BIT 또는 FLAG BIT로 정의되어 있다. SYN(Synchronization:동기화) - S : 연결 요청 플래그 TCP에서 세션을 성립할 때 가장 먼저 보내는 패킷 시.. 2022. 10. 5.
Wireshark ] 패킷 분석 시 유용한 필터 + local host traffic (127.0.0.1) 캡쳐 📌 프로토콜 필터 tcp udp 📌 MAC Address필터 eth.src == 00:11:22:33:44:55 eth.dst == 00:11:22:33:44:55 eth.addr == 00:11:22:33:44:55 📌 IP Address필터 ip.src == 127.0.0.1 ip.dst == 127.0.0.1 ip.addr == 127.0.0.1 📌 Port 필터 tcp.srcport == 80 tcp.dstport == 80 tcp.port == 80 📌 TCP Flag 필터 tcp.flags.syn == 1 tcp.flags.fin == 1 tcp.flags.reset == 1 📌 필터 명령어 혼합 사용 ip.addr == 192.168.0.10 and tcp.port == 80 tcp or u.. 2022. 10. 5.
STM32 ] UDP Client, lwIP Raw API 2022.10.03 - [DSP, MCU/STM32 (ARM Cortex-M)] - STM32 ] TCP Client STM32 ] TCP ClientCubeMX 설정 클라이언트가 서버에게 1초마다 한번씩 데이터를 전송하게끔 하기 위해 TIM1을 쓸 예정이다. TIM1은 APB2에서 클락소스를 공급받는다. 아래 헤더파일과 소스파일을 포함한다. main.c /* Privaeteo.tistory.com이전 글과 CubeMx 설정은 같다.   아래 헤더파일과 소스파일을 포함시킨다.출처 : https://www.youtube.com/watch?v=Kc7OHc7JfRg&list=PLfIJKC1ud8ggZKVtytWAlOS63vifF5iJC&index=4   main.c/* Private includes -----.. 2022. 10. 3.
STM32 ] TCP Client, lwIP Raw API CubeMX 설정 클라이언트가 서버에게 1초마다 한번씩 데이터를 전송하게끔 하기 위해 TIM1을 쓸 예정이다. TIM1은 APB2에서 클락소스를 공급받는다. TIM1의 update interrupt를 enable한다. 아래 헤더파일과 소스파일을 포함한다. main.c /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "tcpClientRAW.h" /* USER CODE END Includes */ // ... /* USER CODE BEGIN PV */ extern struct netif gnetif; /* USER CODE END PV *.. 2022. 10. 3.
TCP/UDP 포트 번호 정리 일반적으로 포트 번호는 잘 알려진 포트(well-known port), 등록된 포트(registered port), 동적 포트(dynamic port) 세 가지로 나눌 수 있다. 잘 알려진 포트(well-known port)는 특정한 쓰임새를 위해서 IANA(Internet Assigned Numbers Authority)에서 할당한 TCP 및 UDP 포트 번호의 일부이다. 잘 알려진 포트(well-known port) : 0번 ~ 1023번 등록된 포트(registered port) : 1024번 ~ 49151번 동적 포트(dynamic port) : 49152번 ~ 65535번 이 번호는 강제적으로 지정된 것은 아니며, IANA의 권고안일 뿐이라서 가끔 각 포트 번호를 그대로 사용하지 않고 다른 용도.. 2022. 10. 2.
STM32 ] TCP Server, lwIP Raw API 아래 헤더파일과 소스파일을 프로젝트에 포함시킨다. STM324x9I_EVAL 공식 LwIP 예제에 포함된 파일로 tcp echo server 는 tcp client 에서 보낸걸 tcp server 가 그대로 다시 보내는 예제이다. 자세한 설명은 주석처리해두었다. main.c /* USER CODE BEGIN Includes */ #include "tcp_echoserver.h" /* USER CODE END Includes */ //... /* USER CODE BEGIN 2 */ tcp_echoserver_init(); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { MX_LWIP_Process(); /*.. 2022. 10. 2.
WSL2 설치하기 (Windows Subsystem for Linux) https://learn.microsoft.com/ko-kr/windows/wsl/install-manual 이전 버전 WSL의 수동 설치 단계 wsl install 명령을 사용하지 않고 이전 버전의 Windows에 WSL을 수동으로 설치하는 방법에 대한 단계별 지침입니다. learn.microsoft.com 1. PowerShell을 관리자 권한(시작 메뉴 > PowerShell >에서 관리자 권한으로 실행 >을 마우스 오른쪽 단추로 클릭)으로 열고 다음 명령을 입력한다. dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 2. Windows 10 x64 시스템의 경우 버전 1903 .. 2022. 10. 1.
LRU 와 SRU 출처 : https://blog.naver.com/acftacft/222549840039 2022. 9. 30.
윈도우에서 리눅스 개발환경 구축하기 WSL2 + VSCode 먼저 윈도우 PC에 WSL이 깔려있어야 한다. WSL 설치는 공식 문서에서 자세하게 설명하고 있다. https://learn.microsoft.com/en-us/windows/wsl/install Install WSL Install Windows Subsystem for Linux with the command, wsl --install. Use a Bash terminal on your Windows machine run by your preferred Linux distribution - Ubuntu, Debian, SUSE, Kali, Fedora, Pengwin, Alpine, and more are available. learn.microsoft.com VSCode 에서 WSL extension.. 2022. 9. 30.
CCS ] Cannot determine URI for [project-name]/[file-path]/[file-name] 오류 해결하기 Project Explorer 에서 작업하던 프로젝트가 사라졌을 때 해결 법 Project Explorer 에서 import CCS Project 클릭 Browse - 프로젝트의 루트 디렉토리 선택 이렇게 다시 import 하면 해결 된다. 2022. 9. 29.
5. 시험준비상태검토 (TRR, Test Readiness Review) 시험준비상태검토 (TRR, Test Readiness Review) 가. 개 요 TRR은 시험 목적, 방법, 절차, 범위, 인력, 자원 및 안전 고려사항 등이 포함된 시험계획이 사용자 요구사항 및 체계요구조건에 대한 만족 여부를 검증 및 확인할 수 있는지 검토하여 시험평가(DT/OT) 단계로 진입 가능함을 공식적으로 확인하는 절차이다. 나. TRR 수행시기 및 업무절차 1) 수행시기 가) TRR은 체계통합 및 기능적인 점검이 완료된 후 공식시험평가(DT/OT)를 착수하기 15일 이전에 수행하며 통합시험평가를 수행하는 경우 개발시험평가 착수 전에 TRR을 수행하고 개발시험평가(DT)와 운용시험평가(OT)를 별도로 수행 시 각각에 대해 TRR을 수행한다. 2) 업무절차도 다. TRR 진입기준 1) 연구개발주.. 2022. 9. 26.
4. 상세설계검토 (CDR, Critical Design Review) 상세설계검토 (CDR, Critical Design Review) 가. 개 요 CDR은 체계요구조건 및 체계기능요구조건이 상세설계를 충족하는 초기 제품규격으로 HW설계기술서(HDD), SW설계기술서(SDD), 인터페이스설계기술서(IDD), 연동통제문서(ICD), 제품 규격서(안)에 완전하게 반영되었는지를 확인하고 초기 제품기준선(Initial Product Baseline)을 설정하며, 승인된 총사업비와 개발일정 및 수용 가능한 위험범위 안에서 요구조건을 충족하는 시제제작, 체계통합 및 시험단계로 진행이 가능함을 공식 적으로 확인하는 절차이다. 나. CDR 수행시기 및 업무절차 1) 수행시기 가) 체계의 세부 구성품/부품까지 상세설계가 완료되고 M&S를 통하여 성능예측을 수행한 후 시제제작을 시작할 준비.. 2022. 9. 26.
3. 기본설계검토 (PDR, Preliminary Design Review) 기본설계검토(PDR, Preliminary Design Review) 가. 개 요 PDR은 체계요구조건 및 체계기능요구조건이 기본설계를 충족하는 개발규격으로 체계/부체계설계 기술서(SSDD), HW요구사항명세서(HRS), SW요구사항명세서(SRS) 및 개발규격서(안)에 완전하게 반영되었는지 확인하고 할당기준선(Allocated Baseline)을 설정하며 승인된 총사업비, 개발일정 및 수용 가능한 위험범위 안에서 요구조건을 충족하는 상세설계로 진행이 가능함을 공식적으로 확인하는 절차이다. 나. PDR 수행시기 및 업무절차 1) 수행시기 체계개발 단계에서 하드웨어와 소프트웨어 형상품목의 기본설계가 완료된 후 IPT가 기본설계의 완전성 여부와 상세설계 및 시험절차 개발을 시작할 준비가 되었는지 결정할 필요가.. 2022. 9. 26.