본문 바로가기
반응형

전체 글1305

[C/C++] static 변수 static 변수- static 변수를 정적 변수라고 부릅니다.- 전역변수와 지역변수 모두에 static 선언을 추가할 수 있다.  하지만 static 변수는 『접근이 제한된 전역변수』를 만드는 것으로  지역변수 적용하는 것이 일반적.  지역변수에 static을 붙인 경우- 선언된 함수 내에서만 접근이 가능한 것은 계속해서 유효- But, 해당 함수가 반환되면 소멸되지 않고, 처음 한번 초기화되고   프로그램 종료 시까지 메모리 공간에 존재   즉, 한번만 초기화 되는 것 (전역변수의 성격을 조금 띄게 됨)#include int simpleFunc() { static int x = 0; // 초기화하지 않으면 0으로 초기화 int y = 0; // 초기화하지 않으면 쓰레기 값 초.. 2024. 12. 22.
[Window] 논리적 / 물리적 IP 주소 확인하는 방법 [Window] 논리적 / 물리적 IP 주소 확인하는 방법①  실행    [Widows 키] + [R] → cmd 입력  ② 논리(가상) 주소는 명령 프롬프트 창에서 아래 명령어로 확인할 수 있다.ipconfig[IPv4 주소] 항목에 해당하는 값이다.  ③ 물리적 주소 (MAC Address)까지 확인하려면 아래 명령어 사용ipconfig /all - 논리 주소는 메모리 장치에 물리적으로 존재하지 않으므로 논리 주소는 가상 주소이다.- 물리적 주소는 물리적으로 액세스 할 수 있는 메모리 장치 위치이다.  📌 논리적(가상) 주소와 물리적주소란? 논리적(가상) 주소와 물리적주소란?가상 주소 (Virtual Address)프로그램이 실행될 때 CPU가 사용하는 주소물리적 메모리 주소와 분리된 개념으로운영체.. 2024. 12. 22.
[C++] Global Namespace (글로벌 네임스페이스) 해당 포스팅에서는 global namespace에 대해예시 코드를 포함하여 scope 개념을 더 알아보고자 함. 📌 [C++] 네임스페이스(namespace)  [C++] 네임스페이스(namespace) 활용『 :: 』 기호는 Scope Operator로 "범위지정 연산자" 라고 한다.(네임스페이스 지정할 때 사용하는 연산자)#include namespace A{ void Print() { printf("a...\n"); }}namespace B{ void Print();}int main(){ A::Print(); B::Print();}zoosso.tistory.comusing 사용하면 :: 없이 간결하게 사용할 수 있지만 프로젝트 규모가 커지다보면 using 사용마저 충돌될 수 있다. 그래서 코드가 .. 2024. 12. 19.
[C++] 네임스페이스(namespace) 활용 『 :: 』 기호는 Scope Operator로 "범위지정 연산자" 라고 한다.(네임스페이스 지정할 때 사용하는 연산자)#include namespace A{ void Print() { printf("a...\n"); }}namespace B{ void Print();}int main(){ A::Print(); B::Print();}void B::Print() // 선언부와 정의부 구분{ printf("b...\n");} 여러 사람이 작업을 하다보면 변수나 클래스명이 같을 수 있다.namespace로 영역을 구분할 수 있다.→ 관련 코드 (함수, 구조체 전역 변수 등)을 묶어서 관리하는데 사용 동일한 영역에서 정의된 함수 호출할 때는네임스페이스를 명시할 .. 2024. 12. 18.
논리적(가상) 주소와 물리적주소란? 가상 주소 (Virtual Address)프로그램이 실행될 때 CPU가 사용하는 주소물리적 메모리 주소와 분리된 개념으로운영체제가 제공하는 가상의 메모리 공간 사용자는 직접 물리적 메모리를 관리하지 않아도 되며각 프로세스는 독립된 가상 메모리 공간을 가진다.메모리 보호와 프로세스 간 간섭 방지 기능 제공CPU와 운영체제가 협력하여 가상 주소를 물리적 주소로 변환  물리적 주소 (Physical Address)물리적 주소는 실제 RAM(주 기억장치)의 주소CPU가 가상 주소를 변환하여 실제 데이터가 저장된 메모리 위치를 참조할 때 사용물리적 주소는 하드웨어적으로 고정된 실제 메모리 공간  변환 예시프로그램은 메모리를 0x0000부터 시작한다고 인식하지만,실제로는 해당 주소가 물리적 주소 0x7FF0에 Ma.. 2024. 12. 18.
[Git 깃] git alias 별칭(Alias)를 통해서비교적 긴 명령어를 쉽게 입력할 수 있다.예를 들어 "checkout" → "co"로 피로감을 줄일 수 있다.  config 파일 직접 설정~/.gitconfig 파일을 열어서[alias] 부분에 커맨드 등록하는 방법이다.vi ~/.gitconfig [alias] co = checkout br = branch cm = commit st = status rb = rebase -i  git config 명령어 활용vi 편집 없이 아래 명령어로도 설정할 수 있다.위에서 보여준 설정을 나열하면 아래와 같다.git config --global alias.co checkoutgit config --global alias.br branchgit config --gl.. 2024. 12. 11.
[VS Code] 특정 파일만 검색 VS Code에서 특정 파일에서만 검색해보기VS Code에서 전체 검색할 때CTRL + SHIFT + F 를 사용한다. 여기서 [...] 아이콘을 눌러보면[files to include], [file to exclude] 항목을 볼 수 있다.  • files to include특정 파일에서만 검색하고 싶은 경우 • file to exclude특정 파일은 제외하고 싶은 경우아래와 같이 harbang이라는 단어가.cpp, .make, .map 파일 각각에 들어가 있다.  .make 파일을 제외하고 싶은 경우  .cpp 파일에서만 검색하고 싶은 경우  특정 폴더에 있는 .cpp 파일만 검색하고 싶다면아래와 같이 glob pattern을 활용하면 된다.**/{폴더명}/**/*.cpp파일을 제외(exclude)하.. 2024. 12. 2.
[임베디드/펌웨어] Bitmap Based 연산 예시 Bitmap Based = 2진수로 표현했을 때 비트(bit) Set / Clear 여부로 표현 ex) 0xFFFF → 1111'1111'1111'1111 → 16개로 표현 FLASH 이나 RAM 의 저장공간은 역할에 맞게 크기가 정해져 있다.펌웨어에서는 저장 공간 영역을 'Bitmap Based' 처리하는 경우가 많다.* 공간 크기를 이진수를 활용해서 효과적으로 표현하기 위함메모리 공간 0x0 ~ 0x2000해당 공간을 0x0000 ~ 0xFFFF 로 표현할 수 있다고 해보자. LSB 부터 각 비트에 mapping 되는 메모리 "시작 주소"를 계산해보면전체 영역 0x2000 (= 8KB = 8,192) 공간을 16 등분 했다고 볼 수 있다. 8192 / 16 = 512 Byte  각 비트가 512 By.. 2024. 12. 1.
[반도체] Flash NAND 신뢰성이란? NAND 신뢰성반도체 제품이 가진 최소한의 성능을 일정 기간 동안 온전히 발휘할 확률기술이 발전하면서 반도체 용량과 제품 종류는 다양해졌지만,신뢰성은 계속해서 취약해졌다는 문제가 있다.(NAND 제품이 SLC → MLC → TLC → QLC로 용량은 높아졌지만 전반적인 신뢰성 약화) 반도체는 정확한 위치에 데이터를 Write/Read하여 필요 없는 데이터는 깨끗이 Erase 하여 제때에 저장 공간을 확보하는 것이 중요하다.  반도체 고용량화에 따른 Cell 결함 증가그동안 반도체 설계 규칙은 Cell 물리적인 크기와 간격을 줄이는 쪽으로 발전해 왔다.반도체 용량을 높이면 Cell당 가격을 매년 30% 정도씩 낮출 수 있지만여러 가지 결함(Defect)이 생긴다는 문제점이 있다.  Cell 자체 크기가 작.. 2024. 11. 30.
Flash NAND 내구성이란 NAND 내구성(Endurance)데이터를 저장하고 지우기를 반복하는 과정은NAND Cell이 최대 몇 회까지 견딜 수 있지 측정한 것이다.  PE Cycling(Program/Erasure Cycling) • Program = 쓰기/저장• Erasure = 소거/삭제• Cycling = 한번 반복을 '1회'로 표현 ex) PE Cycling 1k = Cell 당 최대 1,000회까지 데이터를 저장하고 지울 수 있다.  📌 [임베디드/펌웨어] Flash 메모리 [임베디드/펌웨어] Flash 메모리NAND vs NORFlash Memory는 크게 NAND Flash와 NOR Flash과 존재한다.NOR Flash는 소량의 데이터는 빠르게 찾아갈 수 있으나대용량화가 어렵기에 반도체 시장에서는NAND Fla.. 2024. 11. 29.
반응형