본문 바로가기

전체 글917

ccs 프로젝트 빌드 과정 CCS에서 프로젝트를 Build하거나 Rebuild 할 때 다음의 절차를 수행한다. 1. makefiles 자동생성 프로젝트의 활성 빌드 구성 폴더(디폴트로는 Debug 폴더)에 하나의 makefile과 여러 *.mk파일을 생성한다. makefile: 자동 생성된 *mk file들을 포함하는 메인 makefile 빌드에 참여하는 모든 소스파일은 아래 *.mk 파일에 정의되어 있다. objects.mk subdir.mk subdir_vars.mk 2. gmake를 사용하여 clean (optional) Rebuild Project 또는 Clean Project 선택시 gmake clean 명령을 사용하여 활성 빌드 구성 폴더의 .obj, .pp, .out 파일을 삭제하고, makefile 및 .map 파일.. 2024. 6. 12.
C++ ] 문자열 탐색 및 조작 함수, find() 외 문자열 탐색 함수 find : 문자열/문자의 처음 등장 위치 찾기rfind : 문자열/문자의 마지막 등장 위치 찾기find_first_of : 문자 집합 중 하나라도 처음으로 등장하는 위치 찾기find_last_of : 문자 집합 중 하나라도 마지막으로 등장하는 위치 찾기find_first_not_of : 주어진 문자 집합에 없는 첫번째 문자 위치 find_last_not_of : 주어진 문자 집합에 없는 마지막 문자 위치 찾기 ✔️ 위의 문자열 탐색함수는 문자열 내에서 특정 조건을 만족하는 요소를 찾지 못했을 경우 string::npos를 반환한다. string::npos는 상수값으로 size_t 타입의 최대값이다.✔️ find와 rfind 함수는 주어진 문자열에서 특정 문자열 뿐만 아니라 단일 문자를.. 2024. 6. 11.
Jetson Xavier NX 냉각 팬 프로파일 변경 Jetson 보드는 PWM 제어를 통해 직접 팬 속도를 조절할 수도 있지만, 기본적으로 온도에 따라 자동으로 팬 속도를 제어하는 데몬인 nvfancontrol이 탑재되어 있다. 그 중에서도 Jetson Xavier NX 보드는 nvfancontrol 데몬이 참조하는 quiet와 cool이라는 두가지 팬 프로파일이 존재하고 각 프로파일의 구성은 다음과 같다.   프로파일 구성에는 Trip temperature, Hysteresis, Fan PWM value라는 요소가 존재하는데 팬의 속도가 빈번하게 바뀌는 것을 방지하기 위해 히스테리시스 특성을 이용해 제어한다.예를 들어 quiet 모드인 경우 46도에 도달하면 팬을 켜고 46-8(히스테리시스 값)=38도 이하로 떨어지면 팬을 끄는 식이다.  팬 프로파일 .. 2024. 6. 10.
Tkinter ] Python GUI 프로그래밍 Tkinter는 파이썬 설치시 기본적으로 내장된 표준 라이브러리로 별도의 설치 없이 바로 GUI 개발을 시작할 수 있다는 장점이 있다.  Tkinter의 주요 구성 요소Tk 객체 : GUI 애플리케이션의 메인 윈도우를 생성하는 핵심 객체이다. Tk()를 통해 생성된다.위젯(Widgets) : 사용자 인터페이스를 통해 상호작용할 수 있도록 도와주는 각종 UI 요소이다.Label : 텍스트나 이미지를 표시한다.Button : 사용자가 누를 수 있는 버튼을 제공한다.Entry : 한 줄의 텍스트를 입력받는 입력 필드이다.Text : 여러 줄의 텍스트를 입력받는 필드이다.Frame : 다른 위젯들을 그룹핑하고 레이아웃을 관리하는 컨테이너이다.배치 관리자(Layout Managers) : 위젝을 윈도우 또는 프레.. 2024. 6. 9.
Pyside6 ] 개발 환경 설정 with VSCode pyside6 설치 pip install pyside6       VScode에서 Qt for Python 익스텐션 설치        test.py를 만들고 공식문서에서 제공한 코드를 복붙한 후 콘솔에서 python test.py로 실행한다. https://doc.qt.io/qtforpython-6/tutorials/basictutorial/widgets.htmlimport sysfrom PySide6.QtWidgets import QApplication, QLabelapp = QApplication(sys.argv)label = QLabel("Hello World!")label.show()app.exec()    한줄 씩 살펴보면 다음과 같다.# command line arguments에 접근하기 위해.. 2024. 6. 8.
RJ45 커넥터에서 LED의 의미 RJ45 커넥터는 이더넷 연결을 위한 표준 인터페이스로 네트워크 상태에 대한 정보를 제공하는 LED 지시등이 내장되어 있다. 일반적으로 이 LED는 초록색과 노란색 2개가 존재하며 각 LED가 나타내는 의미는 다음과 같다.         위 내용이 일반적인 구성이며 PHY칩에서 LED 모드 설정을 변경할 수 있기 때문에 다른 의미를 내포할 수도 있다. 2024. 6. 7.
VirtualBox 해상도 조절 장치 > 게스트 확장 CD 이미지 삽입 후 설치     보기 > 게스트 디스플레이 크기 자동 조정 선택      만약 이렇게 해서 안되면 시스템 종료 후 > 설정 > 디스플레이 > 그래픽 컨트롤러를 VMSVGA에서 VBoxVGA로 변경       보기 > 가상 화면 1 > 해상도 조정 2024. 6. 6.
Ubuntu ] 한영전환키 설정 설정 > 지역 및 언어 > 설치된 언어 관리를 눌러 language support가 완전히 설치되지 않았다는 안내 창이 뜨면 설치 후 재부팅한다. 입력 소스에서 한국어(101/104키 호환)은 삭제해준다.   만약 입력 소스에서 Hangul이 안보이면 다시 설치된 언어 관리를 눌러 키보드 입력기가 IBus로 선택되어 있는지 확인한다.   터미널에서 다음 명령어를 치고 입력기 > 추가를 눌러 Hangul을 추가한다.ibus-setup   다시 설정 > 지역 및 언어 > 입력 소스에서 Hangul의 톱니바퀴 버튼을 클릭하고 한영전환키 옆의 추가 버튼을 누른상태에서 한영 키를 누르고 확인을 누른다.  이후 한영전환키를 눌러 한글을 입력할 수 있다. 2024. 6. 5.
STM32 ] microseconds 딜레이 함수 만들기 사용보드 : STM32F429ZI  먼저 타이머를 사용할건데 16-bit 타이머 중에 고르면 충분하다. 65.535ms까지 제어가 되는데 그 이상의 지연이 필요하면 HAL_Delay() 함수를 쓰면 되니까 말이다.여기선 TIM1을 쓴다.          TIM1는 APB2에서 클락을 공급받는다.  APB2 timer clock은 180MHz로 설정되어있다.     Prescaler 값은 180-1로 해서 1MHz(주기 1us) 클락을 얻고 Counter Period는 최대값으로 설정한다.    다음과 같이 코드를 작성한다. /* USER CODE BEGIN 0 */void delay_us(uint16_t us){ htim1.Instance->CNT = 0; while(htim1.Instance->CNT .. 2024. 6. 4.
Python ] 코드 실행 시간 ms 단위로 측정하기 + datetime 모듈 사용법 1. time 모듈 사용하기 import timestart_time = time.time()for i in range(1, 10000000): passend_time = time.time()elapsed_time = (end_time - start_time) * 1000print(f"start_time : {start_time}")print(f"end_time : {end_time}")print(f"elapsed_time : {elapsed_time} ms")  time 모듈은 아래와 같이 import하여 사용할 수 있고 현재시간을 초단위로 반환하는 time() 함수와 시간 지연을 생성하는 sleep() 함수가 많이 쓰인다.import time time 모듈에서 시간은 UNIX time을 기준으로 .. 2024. 6. 3.
Python ] leetCode 1861 - Rotating the Box 리트코드 1861번 문제 You are given an m x n matrix of characters box representing a side-view of a box. Each cell of the box is one of the following: A stone '#'A stationary obstacle '*'Empty '.' The box is rotated 90 degrees clockwise, causing some of the stones to fall due to gravity. Each stone falls down until it lands on an obstacle, another stone, or the bottom of the box. Gravity does not affect.. 2024. 6. 2.
Python 기본 문법 1. 파이썬의 특징  ✔️ 동적인 자료형 결정변수에 값이 할당되는 시점에 데이터 타입이 동적으로 결정됨a = 1b = 1.0c = 'hello'print(type(a))print(type(b))print(type(c))   ✔️ 자동 메모리 관리개발자가 직접 메모리를 관리할 필요 없고, 자료형의 범위 또한 필요에 따라 자동으로 확장되기 때문에 일반적으로 고려할 필요 없다.    ✔️ 체이닝체이닝은 특히 메서드나 연산자를 연속적으로 연결하는 것을 의미한다.# strip() 함수는 공백을 제거하거나 특정 문자 또는 문자열을 제거함result = " Hello, World! ".strip().lower().replace("hello", "hi").strip('!')print(result)# 논리 연산자 체이닝.. 2024. 6. 1.
Python ] leetCode 189 - Rotate Array 리트코드 189번 문제 Given an integer array nums, rotate the array to the right by k steps, where k is non-negative.  Example 1: Input: nums = [1,2,3,4,5,6,7], k = 3Output: [5,6,7,1,2,3,4]Explanation: rotate 1 steps to the right: [7,1,2,3,4,5,6] rotate 2 steps to the right: [6,7,1,2,3,4,5] rotate 3 steps to the right: [5,6,7,1,2,3,4]  Example 2: Input: nums = [-1,-100,3,99], k = 2Output: [3,99,-1,-100]E.. 2024. 5. 31.
더뉴 셀토스 가솔린 2.0 엔진오일 저렴하게 교체하기 드디어 첫 엔진오일을 교체할 시기가 다가왔다. 보통 기아 오토큐가서 엔진오일 교체하면 10~13만원 정도 한다고해서 좀더 저렴하게 교체하는 방법을 알아봤다.   교체시기      매뉴얼을 보면 2.0은 일반적으로 매 15,000 km마다 가혹 조건일때는 매 7,500 km마다 교체하면 된다고 한다. 나는가혹 조건을 따라서 7500km 마다 교체해주기로 했다.      추천오일 및 용량     매뉴얼에 추천오일 사양이 5W-20이라고 나와있고 4L가 들어간다고 한다. 근데 또 이게 인터넷에 '셀토스 엔진오일 교체 세트'라고 파는 거랑 사양이 일치하지 않아서 좀 찾아보니 24년식 모델부터 엔진오일 추천 사양과 용량이 바뀐 거였다. 어쨌든 나는 매뉴얼에 나와있는대로 구입하기로 했다.     교체 비용 엔진오일.. 2024. 5. 30.
더뉴 셀토스 에어컨 필터 셀프 교체하기 차를산지 1년도 지났고 여름이 다가오면 에어컨을 켤 일이 많아질거 같아 에어컨 필터를 교체해주기로 했다. 내가 산건 3M에서 나온 초미세먼지 활성탄 필터이다. 모델명 : F6291구입가격 : 11,830원  활성탄 필터는 흡착성이 강한 탄소질로 된 물질을 필터 사이에 첨부한 필터로 어두운색을 띄는게 특징이다.셀토스 순정으로 장착된 필터도 어두운색을 띄는 활성탄 필터이다. 얘는 헤파 필터에 비해 미세먼지 여과능력은 떨어지지만 악취와 유해가스를 흡착하는 기능이 있다고한다.   교체방법 글로브 박스 양 옆을 누르면서 밖으로 꺼낸다.    저 동그란 부분이 밖으로 다 튀어나올 정도로 꺼내준 다음 아래쪽에 위치한 고리를 오른쪽으로 당기면 쉽게 떨어진다.    그럼 글로브박스가 완전히 내려와서 교체하기 쉬운상태가 .. 2024. 5. 29.
Ubuntu ] Some index files failed to download. 에러 해결 아래와 같은 문구가 뜨면서 sudo apt update가 안되는 현상이다. E: Some index files failed to download. They have been ignored, or old ones used instead.   링크 :https://www.tecmint.com/some-index-files-failed-to-download/ How to Fix “W: Some index files failed to download.” Error In UbuntuSometimes you might encounter the error “W: Some index files failed to download.” on Ubuntu when updating the system.www.tecmint.co.. 2024. 5. 28.
Ubuntu ] 시스템 복원 도구 timeshift 설치 우분투에서는 이것저것 설치하다가 의존성 문제로 도중에 망하고 첨부터 다시 시작하고 싶어지는게 한두번이 아니기 때문에 시스템 restore를 위한 timeshift 부터 설치해줬다. sudo apt-get install timeshift   우분투 버전이 20.04 미만이면 먼저 timeshift PPA repository를 추가해야한다. lsb_release -a 명령으로 우분투 버전을 확인할 수 있다.sudo add-apt-repository ppa:teejee2008/timeshift   GUI timeshift 앱을 실행한다. ext4 파일시스템을 사용하는 경우 스냅샷 타입 RSYNC를 선택한다. 파일시스템 타입은 cat /etc/fstab 명령으로 볼 수 있다.   그 다음 스냅샷을 저장할 디스크.. 2024. 5. 27.
이더넷 트랜스포머의 역할 이더넷 트랜스포머의 역할에 대해 알아보자.   위 그림은 이더넷 인터페이스를 보여주는데 사실상 요약된 그림이고 실제는 다음과 같다. MAC(in CPU/MCU) ↔️ PHY ↔️ Transformer ↔️ RJ45 ↔️ UTP ↔️ RJ45 ↔️ Transformer ↔️ PHY ↔️ MAC(in CPU/MCU)    그럼 여기서 Transformer의 역할은 무엇일까?  가장 큰 역할은 다음의 두 가지이다.Galvanic Isolation : 두 회로간 직접적인 전기적 연결을 제거해 고전압 스파이크와 지상 루프 등의 전기적 간섭으로 부터 보호하는 것. (Galvanic Isolation을 제공하는 IC는 위 그림처럼 세로 점선을 그려놓는듯 하다..)Impedance Matching : 서로 다른 임피던.. 2024. 5. 26.
Ubuntu ] 안쓰는 ssd 사용하여 우분투 멀티부팅가능하게 설치하기 1. Rufus 다운로드 https://rufus.ie/ko/    2. Ubuntu 이미지 다운로드 Ubuntu 18.04 : https://releases.ubuntu.com/18.04/    3. Rufus로 Ubuntu 부팅 USB 만들기 부팅이미지를 선택하고 USB 장치가 올바르게 선택됐는지 확인한 후 설정값을 아래와 같이 하고 시작을 누른다. 경고문구가 뜨면 디폴트값 또는 예를 선택해주면 된다.     4. 안쓰는 ssd 메인보드에 장착 내 데스크탑 메인보드는 ASUS EX-A320M Gaming인데 m.2 슬롯이 하나 있다. 그래픽카드 아래 위치한 형태라 ssd 방열판이 있으면 더 좋았을뻔했지만 일단 장착해줬다.    5. ssd 디스크 정리 diskpartlist disksel disk c.. 2024. 5. 25.
일 평균 방문수 2000대 블로그의 월수익 공개 내 블로그의 일 평균 방문수는 2000 정도 된다. 개발 관련 글이 대부분이다 보니까 주중 방문자가 많고 주말이나 연휴가 되면 유입이 훅 떨어지는 편이다.  일간 방문수  주간 방문수  월간 방문수    그러면 일 평균 방문수가 2000인 블로그의 한 달 수익은 얼마나 될까? 최고 수익을 찍었던게 30.61불이고 지난 6개월간 월평균 수익은 25.95불로 3만 6천원 정도 되는 금액이다. 원래 돈을 목적으로 블로그하는 것도 아닌데 수익이 들어오니까 적은 금액이라도 꽤나 짭짤하다. 나중에 블로그가 성장하면 다시한번 수익 공개를 해보도록 하겠다.         그리고 내 블로그 방문수를 견인하는 효자글들..😋 2024. 5. 24.
Jetson Xavier NX에서 YOLOv5 구동하기 설치 방법은 아래 공식 문서를 참고했다.  https://docs.ultralytics.com/yolov5/tutorials/running_on_jetson_nano/#install-necessary-packages NVIDIA Jetson Nano DeploymentDetailed guide on deploying trained models on NVIDIA Jetson using TensorRT and DeepStream SDK. Optimize the inference performance on Jetson with Ultralytics.docs.ultralytics.comhttps://forums.developer.nvidia.com/t/pytorch-for-jetson/72048 PyTorch .. 2024. 5. 22.
JetPack 5.x에 VSCode 설치 처음엔 그냥 최신버전을 다운받아 설치했는데 아무리 해도 실행이 안되길래 뭐지 했는데 포럼에서 옛날 버전은 잘 실행된다는 글을 찾았다.    https://forums.developer.nvidia.com/t/vs-code-can-t-launch-with-jetpack-5-0/213980/10 VS code can’t launch with JetPack 5.0launch using code --verbose to see if there is any distinctive error nvidia probably broke sandboxing with chromium on this releaseforums.developer.nvidia.com   다운로드 링크 :https://code.visualstudio.c.. 2024. 5. 22.
Nvidia Jetson Xavier NX 보드에 SDK Manager로 JetPack 설치하기 기본 준비사항:Nvidia Jetson Xavier NX 보드19VDC 전원 어댑터Micro B type USB점퍼소켓 또는 F-F 점퍼선인터넷이 되는 Host PC  JetPack이란?Jetson 보드에 탑재할 OS로 Linux 커널 및 Ubuntu 기반의 Jetson Linux가 포함되어 있고 CUDA, TensorRT, cuDNN, VPI 등 NVIDIA의 최신 AI 컴퓨팅 스택이 포함된다.  먼저 SDK Manager는 윈도우는 지원이 안되므로 Ubunt 18.04가 깔린 Host PC가 필요한데 VMware를 통해 설치해준다.  설치시 여유있게 Memory는 8GB 이상 하드디스크는 128GB 이상으로 설정하고 Host 하드디스크도 여유가 있는지 확인한다.  (참고로 처음에 VirtualBox로.. 2024. 5. 22.
오실로스코프 프로브, 1:1 프로브와 10:1 프로브 패시브 프로브와 액티브 프로브 오실로스코프 프로브는 크게 패시브 프로브와(수동 프로브) 액티브 프로브(능동 프로브)로 분류할 수 있다. 두 프로브 유형의 차이는 독립적인 전원 공급이 필요한가 여부인데 그중에서 수동 프로브는 전원 공급 없이도 작동하는 가장 기본적인 프로브로 비용이 저렴하고 내구성이 좋다는 장점을 가진다. 보통 오실로스코프를 구입하면 패시브 프로브가 세트로 포함되는데 대표적으로 1:1, 10:1 프로브가 있다.  1:1 프로브1x 프로브는 입력 신호를 아무런 감쇠 없이 그대로 오실로스코프에 전달한다. 1x 프로브는 민감도가 높으며 작은 레벨의 신호를 원 신호 그대로 보고자 할 때 사용한다. 한편 1x 프로브는 10x 프로브에 비해 상대적으로 입력 임피던스가 낮아서 측정 대상 회로에 더 큰 .. 2024. 5. 22.
병원 방문기록 조회 방법 병원 방문기록 조회 방법  국민건강보험 홈페이지 접속 https://www.nhis.or.kr/nhis/index.do 국민건강보험이벤트 1 / 8www.nhis.or.kr   로그인 > 건강iN > 나의 평생건강정보 > 진료 내용 > 보안문자 입력 후 확인 최근 2년간의 병원 및 약국 방문 기록을 알 수 있다. 그리고 '진료내용' 밑의 '검진내용'에서는 공단건강검진과 국가암건진의 검진내용을 알 수 있다. 2024. 5. 21.
C++ ] leetCode 85 - Maximal Rectangle 리트코드 85번 문제 Given a rows x cols binary matrix filled with 0's and 1's, find the largest rectangle containing only 1's and return its area.   Example 1: Input: matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]Output: 6Explanation: The maximal rectangle is shown in the above picture.  Example 2: Input: matrix = [["0"]]Output: 0  Example 3: Input: ma.. 2024. 5. 20.
마우스 커서 포함 화면 캡처하는 법 윈도우의 기본 화면캡처 기능을 사용하면 마우스 커서가 포함되지 않은채로 캡처되는데 픽픽(PicPick)이라는 무료 툴을 사용하면 마우스 커서 포함 화면을 캡처할 수 있다.  다운로드 링크: https://picpick.net/download/ 픽픽(PicPick) - 올인원 그래픽 디자인 도구 (화면 캡처 및 녹화, 이미지 편집, 색상 추출, 눈금자,픽픽(PicPick) - 올인원 그래픽 디자인 도구 (화면 캡처 및 녹화, 이미지 편집, 색상 추출, 눈금자, 각도기, 십자선 등)picpick.net   픽픽 실행 후 파일 > 옵션 캡쳐 > 마우스 커서를 캡처된 이미지에 포함 체크    이후 픽픽을 통해 캡처하면 되는데 단축키는 마찬가지로 옵션창에서 확인할 수 있고 원하는 단축키로 변경할 수 도 있다. 2024. 5. 19.
C++ ] leetCode 84 - Largest Rectangle in Histogram 리트코드 84번 문제  Given an array of integers heights representing the histogram's bar height where the width of each bar is 1, return the area of the largest rectangle in the histogram.  Example 1:Input: heights = [2,1,5,6,2,3]Output: 10Explanation: The above is a histogram where width of each bar is 1. The largest rectangle is shown in the red area, which has an area = 10 units.  Example 2:Input: he.. 2024. 5. 18.
윈도우 11 ] 한글 입력 도중 마지막 문자 지워지는 문제 해결 방법 Win + I 키로 윈도우 설정 켬 > 시간 및 언어  언어 및 지역     언어 > 한국어 > ... > 언어 옵션     키보드 > Microsoft 입력기 > ... > 키보드 옵션      호환성 > 이전 버전의 Microsoft IME > 켬 2024. 5. 16.
C++ ] leetCode 42 - Trapping Rain Water 리트코드 42번 문제 Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it can trap after raining. Example 1: Input: height = [0,1,0,2,1,0,1,3,2,1,2,1] Output: 6 Explanation: The above elevation map (black section) is represented by array [0,1,0,2,1,0,1,3,2,1,2,1]. In this case, 6 units of rain water (blue section) are being trapped. Examp.. 2024. 5. 14.