전체 글 1043

FEE - Flash EEPROM Emulation 왜 쓸까?

1. EEPROM과 Flash EEPROM Emulation의 개념EEPROM바이트 또는 워드 단위로 개별 쓰기/삭제 가능자동차 ECU에서 보정값, 학습값, 상태 변수 저장에 주로 사용단점: 일부 MCU에는 EEPROM HW가 없음Flash EEPROM Emulation (FEE)EEPROM이 없는 디바이스에서 Flash 메모리를 이용해 EEPROM처럼 동작하도록 만든 소프트웨어Flash는 보통 섹터 단위로만 erase 가능 → 이를 소프트웨어적으로 추상화FEE는 상위 계층에:가상 주소 체계 제공erase/program 횟수가 사실상 무제한인 것처럼 보이게 함AUTOSAR 계층에서 Fee 모듈이 이를 담당2. FEE 구조 (Block / Cluster / Sector)2.1 FEE Block애플리케이션이..

IT/IoT | Hardware 2026.02.04

git bash - history 없애기

편리하지만 엉터리 명령을 많이 친 경우, 난감하다. 한번 지우고 싶다. Git Bash 히스토리 삭제 방법: - 현재 세션 히스토리 지우기 history -c 실행 후, history -w로 덮어쓰기 - 저장된 히스토리 파일 삭제 rm ~/.bash_history - 향후 저장 안 하도록 설정 ~/.bashrc에 추가: export HISTSIZE=0; export HISTFILE=/dev/null- Git Bash 재시작 후 확인 history 실행해 비어있는지 확인 주의:Windows Git Bash의 홈 경로는 일반적으로 C:\Users.bash_history입니다. 여러 세션이 열려 있으면 종료 후 다시 지우세요.

IT/리눅스 2026.01.27

c/c++ inline 함수 유지 or 제거

inline 유지의 장점함수 호출 오버헤드 최소화헤더만으로 정의 가능하여 사용이 간편최적화 시 구조체 리턴이 인라인 처리되어 코드가 간결해짐팩토리 성격의 함수로서 호출 지점에서 값 채워 넣기에 유리일반 함수(.c로 이동)의 장점컴파일 종속성 감소 → 변경 시 재빌드 범위 축소디버깅 및 심볼 추적이 쉬움다중 호출 시 코드 크기 증가(인라인 확장) 방지함수 포인터로 주소를 취할 수 있어 테스트·후킹에 유리공통 주의사항inline/일반 함수 모두 파일 스코프 정적 초기화에는 사용 불가런타임 값 또는 함수 호출 결과는 상수 초기화가 아님현재처럼 InitAll에서 런타임에 값을 채우는 방식 유지 필요호출 빈도가 높을 경우 인라인 남발은 코드 크기 증가 위험결론 / 추천호출 빈도가 낮고 헤더에서 직접 사용해야 한다..

IT/Software 2026.01.19

프로비저닝 - 왜 이런 용어를 쓰는 걸까?

아주 쉽게 설명한다.왜 ‘프로비저닝(provisioning)’이라는 말을 쓰는지가 핵심이다.한 문장부터프로비저닝 = “이 전기차가 진짜 우리 회사 차라는 걸 공식적으로 등록하고,필요한 신분증·열쇠·정보를 처음으로 넣어주는 과정”왜 그냥 “설정”이라고 안 부를까?“설정”은나중에 바꿀 수 있음실수하면 다시 하면 됨“프로비저닝”은처음 한 번만되돌릴 수 없고보안이 걸린공장 출생 신고 같은 과정그래서 이름부터 다르게 씀.전기차로 비유해보자 🚗⚡차가 막 만들어졌을 때바퀴 있음배터리 있음모터 있음하지만 아직:차 주인이 누군지 모름서버가 이 차를 모름원격 제어도 못 함이때 하는 게 “프로비저닝”프로비저닝 과정에서:차량 번호 등록VIN 부여차 전용 열쇠 발급보안 키, 인증서회사 서버에 등록“이 차는 우리 차다”잠금 해..

IT/IoT | Hardware 2026.01.15

윈도우 PowerShell 창 분할/닫기

PowerShell 창 분할 후 닫으려면, 개별 창(Pane)을 닫으려면 Ctrl + Shift + W를 누르고, 창 간 이동은 Alt + 방향키, 창 크기 조정은 Alt + Shift + 방향키, 분할 자체를 해제하려면 마우스로 크기를 늘리거나, 여러 창을 닫아 탭을 하나만 남기면 됩니다. 특히, Windows Terminal 사용 시 Alt + Shift + + (세로 분할), Alt + Shift + - (가로 분할) 단축키가 유용합니다. 창 분할 및 이동 (Windows Terminal 기준)창 세로 분할: Alt + Shift + + (더하기)창 가로 분할: Alt + Shift + - (빼기/하이픈)창 간 이동: Alt + 방향키 (↑, ↓, ←, →)창 크기 조정: Alt + Shift + ..

IT/컴퓨터상식 2026.01.14

우분투 - mobaxterm 에서 xwindow 응용에서 한글키 입력 오류 해결

.bashrc에 아래 내용을 추가하자. if [ -n "$DISPLAY" ]; then export GTK_IM_MODULE=ibus export QT_IM_MODULE=ibus export XMODIFIERS=@im=ibus echo "[DEBUG] ibus-daemon -drx 실행: DISPLAY=$DISPLAY" ibus-daemon -drxfi https://forum.manjaro.org/t/autostarting-ibus-daemon/14448/6 Autostarting ibus daemonthe best: ? not sure: bashrc is called every time you open terminal and a “window” in terminal.forum.manjaro...

IT/리눅스 2025.09.15

csh 스크립트 - 특정 텍스트 라인 패턴에서 숫자 추출하기 예제

이 코드 블록은 Total 행을 찾아서 Fatals, Errors, Warnings 값을 추출하는 역할을 합니다.자세히 분석해볼게요.foreach line ("`head -n $num_lines $logfile`") @ line_count++ if ("$line" =~ "*Management Summary*") then set summary_flag = 1 continue endif if ($summary_flag == 1) then # "Total" 행에서 값 추출 if ("$line" =~ "*Total*") then set tokens = (`echo $line | tr -s ' ' | cut -d' ' -f..

IT/리눅스 2025.03.05

VSCode Python “Reactivating terminals” 로딩 오류 해결

계속 Reactivating terminals 시도하면서 끝이 안나서 짜증났는데 해결책이 비교적 쉽네.Python Locator 라는 항목을 native 에서 js 로 변경하면 해결!! https://stackoverflow.com/questions/78886125/vscode-python-extension-loading-forever-saying-reactivating-terminals Python" data-og-host="stackoverflow.com" data-og-source-url="https://stackoverflow.com/questions/78886125/vscode-python-extension-loading-forever-saying-reactivating-terminals" da..

IT/파이썬 2025.02.27

다른 브랜치의 최신 변경 사항을 작업 중인 브랜치에 적용하는 방법

다른 브랜치의 최신 변경사항을 현재 작업 중인 브랜치에 적용하는 방법은 주로 merge와 rebase 두 가지가 있습니다. 아래에 각 방법을 간단히 설명합니다.1. Merge 방식원격 저장소 업데이트:먼저 원격 저장소의 변경사항을 로컬에 반영합니다.git fetch origin대상 브랜치로 이동:최신 변경사항을 적용할 브랜치(예: feature)로 이동합니다.git checkout feature다른 브랜치(예: main)를 merge:대상 브랜치에 다른 브랜치의 최신 변경사항을 병합합니다.git merge origin/main이 방법은 병합 커밋이 생성되어 변경 내역의 히스토리를 그대로 남길 수 있습니다.2. Rebase 방식원격 저장소 업데이트: git fetch origin대상 브랜치로 이동: g..

IT/Git, GitHub 2025.02.10

sed 로 # 뒤 문자열 제거하기, 즉 주석 같은 구문 제거

🔍 sed 's/#.*//'의 동작 방식이 명령어는 문자열에서 # 이후의 모든 내용을 삭제하는 역할을 해.✅ sed 기본 문법sed 's/패턴/변경할문자열/옵션's → substitute(치환) 명령어패턴 → 변경할 문자열을 찾기 위한 정규 표현식변경할문자열 → 찾은 패턴을 어떤 문자열로 변경할지 정의 (// 이면 제거)옵션 → g를 추가하면 여러 개의 패턴을 한 번에 변경 가능🚀 sed 's/#.*//' 상세 분석sed 's/#.*//'# → # 기호를 찾음 (주석 시작 부분).* → # 이후의 모든 문자(.)를 0개 이상(*) 찾음// → #부터 끝까지 찾은 문자열을 빈 문자열로 치환 (즉, 삭제)🛠 예제 테스트🔹 기본적인 동작echo "MAX_PARALLEL = 4 # 최대 동시 실행 개수"..

IT/리눅스 2025.02.07