본문 바로가기

Programming/General

analyseplugin - log 분석을 위한 notepad++ 의 유용한 plugin analyseplugin 플러그인은, log와 같은 text 문서에서 내가 입력한 string들을 포함하고 있는 모든 line을 특정 color로 extrect해서 순서대로 정렬해 준다. 따라서, 의미있는 로그 문구(panic, error, abort 등)들을 미리 입력해서 xml 형태로 저장해 두면, 매우 빠르게 log file에서 해당 문구가 있는지 확인할 수 있다. 한동안 notepad++에서 잘 사용하던 analyseplugin이 notepad++ update이후 더이상 plugin list에서 보이지 않아 매우 아쉬워하고 있었는데, 여전히 sourceforge에 project가 살아있고 최근(2020.06)까지 update가 된것을 발견하였다. https://sourceforge.net/proj.. 더보기
primitive 해석 - IT 용어 IT 설명중에 primitives 가 나오는 경우가 꽤 있다. 이는 해당 기능을 구현하기 위한 근간 기술을 지칭할 때 사용한다. 예를 들면 아래와 같이 기술되었다면, 동기화를 위해서 베리어 구현과 신뢰할만한 signalling 기능을 사용했다는 의미가 된다. Synchronization primitives - barrier implementation - reliable signalling (in progress) 더보기
Class diagram 의 Relationship 표현 (화살표) dependency Association Aggregation Composition Inheritance 더보기
Docker, Container, Kubernetes, Hypervisor(Virtual Machine) 결론 : 내가 생각하는 Docker 와 Virtual Machine(Hypervisor)의 장단점 Docker - Type2 Hypervisor - Type1 Hypervisor commit 을 사용해서 작업하던 container를 image로 만들기 더보기
trace32 - set conditional breakpoint using arm register value UI 창에서는 입력이 어려우나 아래와 같이 command 로 입력하면 된다. Break.Set function_name /Program /CONDition Register(X0)==699 더보기
Git 유용한 명령어들 commit 한 내용을 roll back 하기 local repository 에 마지막 commit 을 날릴 수 있다. git reset --hard HEAD^ git reset HEAD^^^ "^" 의 갯수만큼 back 으로 돌아가나.. 파일자체는 원본으로 남아있어서 해당 파일이 modified 상태가 된다. 위 상태에서 아래와 같이 --head 옵션을 주면, 서버의 상태로 파일이 원복된다. git reset --hard HEAD 위 두 명령어를 합치면 아래와 같다. git reset --hard HEAD^^^ git status 에서 modified file 이 붉은 색으로 표시된다면 아직, add 가 안되어 workspace 에서 stage 로 가지 못한 것이다. 아래 문구도 유심히 보면 된다. n.. 더보기
balloon driver balloon driver : Hypervisor 의 메모리 관리 기법중 하나 https://theithollow.com/2012/12/26/vmware-ballooning-explained/ 이 기법은 host 가 낮은 physical memory 상에서 동작할때만 유효한 기능이다. 만약 host 가 60 GB 의 physical memory 를 가지고 있고, VM 이 30GB만 alloc 한다면 이 기법은 생각할 필요가 없다. VM 에 할당한 메모리들은 active 하게 사용되지 않는다. VMware ballooning 은 기본적으로 host 에게 메모리를 돌려달라는 요구로 구성되어 있다. host 는 기본적으로 guest OS 들이 하는일을 모르고, guest OS 는 자신이 virtual 하다는 .. 더보기
makefile(.mk) flag and blank issue If your flag has [blank] end of word, "ifeq" make miss understanding. ex)CONFIG_AAA := true [blank]ifeq ($(CONFIG_AAA), true)end So we need to use "strip" sentence when we use "ifeq" ifeq ($(strip $(CONFIG_AAA)),true) 더보기
개발하기 좋은 Font http://www.dafont.com/bitstream-vera-mono.font http://m.blog.naver.com/inningga/130092388628 더보기
filesystem 용어 - mtdhttp://forum.falinux.com/pds/data-s2410/No11-1.pdf 임베디드 리눅스 장비에서 램디스크를 이용하여 루트 파일 시스템을 구현 하였을 경우에는 보드 동작 중에 파일로 기록된 내용이 전원이 꺼짐과 동시에 소실된다. 기록된 내용을 영구 저장 하기 위해서는 일반적으로 플래시 메모리에 기록하여야 한다. 플래시 메모리를 리눅스의 루트 파일 시스템으로 사용하기 위해서는 MTD (Memory Technology Device ) 블록 디바이스 드라이버를 사용하여야 한다. 더보기
자바 코드 예제들을 모아놓은 사이트 http://www.programcreek.com/java-api-examples/ function 이름으로 검색하면 다양한 usage 를 볼 수 있다. 더보기
[엑셀] 특정값의 행을 찾아서 그 행에 매칭되는 값 반환하기 =INDEX(F:G,MATCH(B2,F:F,0),2) =INDEX(A, B, C)A의 테이블에서 B 행의 C 열의 값을 리턴 MATCH(A, B, C)A 값을 B 에서 비교해서 C = 0 : 정확히 같은 값을C = 1 : 보다 작은 값을C= -1 : 보다 큰 값을가진 행을 리턴함. 더보기
objdump 실행파일 및 library 의 symbol list 출력하기 objdump 에 T 옵션을 사용하면 symbol 이 strip 된 파일에서도 리스트를 출력할 수 있습니다. # arm-eabi-objdump -T ./libsqlite.so ...00000000 DF *UND*00000000 HMAC_Update00000000 DF *UND*00000000 HMAC_Final00000000 DF *UND*00000000 HMAC_CTX_cleanup0000b4f4 g DF .text00000140 sqlcipher_page_cipher00000000 DF *UND*00000000 EVP_CipherInit00000000 DF *UND*00000000 EVP_CIPHER_CTX_set_padding00000000 DF *UND*00000000 EVP_CipherUpdat.. 더보기
"dereferencing pointer to incomplete type" build error - root cause of build error "dereferencing pointer to incomplete type" This error occur that can't find struct. 1. didn't describe struct.2. struct use upper line before describe struct.ex) line 10 : use struct line 30 : describe struct3. miss #include file "dereferencing pointer to incomplete type"빌드애러가 났을때 원인 1. struct 를 정의하지 않았다.2. struct 를 정의하는 라인보다 위에서 사용했다.ex) line 10 : struct 사용line 30 : .. 더보기
엑셀(excel) - 특정 문자가 포함되지 않는 문자열의 개수 구하기 찾고자 하는 문자열 앞에 ""& 를 붙이면 됩니다. A2~A12554 사이에서 .db 로 끝나지 않는 열의 갯수 구하기 =COUNTIF(A2:A12554,""&"*.db") 더보기
Crash Consistency를 유지하기 위한 방법 (fsck 와 journaling 의 자세한 소개) 얼마전에 소개한 Operating Systems: Three Easy Pieces 책에서 fsck 와 journaling 에 대해 소개한 챕터를 전체 번역하고 요약하였습니다.개인적으로 이 부분에 대한 지식이 필요한 사람들에게 크게 유용한 자료가 될 것이라 생각합니다. 특히, filesystem 의 journaling mode 들에 동작에 대해서, 비교적 상세하게 기술하였기 때문에 이 부분을 이해하는데 큰 도움이 되었습니다. 원문 문서 링크 : http://pages.cs.wisc.edu/~remzi/OSTEP/file-journaling.pdf번역본 전체 : ※ 사용하시면 꼭 출처를 밝히시기 바랍니다. > - 오래 사용하던 방식임. - 파일시스템이 in-consistency 한 상태가 되도록 놔두었다가 .. 더보기
filesystem 기본을 공부하기에 좋은 책 (operating systems - three easy pieces) 파일 시스템을 공부하는데 매우 좋은 사이트를 추천하고자 한다.위 사이트에 들어가면 아래 책을 모두 pdf 형태로 다운 받을 수 있는데,설명이 매우 친절한 편이다. 이중 file system 을 다룬 Persistence 챕터를 읽고 있는 중인데,어떠한 인터넷 문서보다 차근차근 설명이 잘 되어 있다. 영어 문서에 거부감이 없다면,한번씩 읽어보자. http://pages.cs.wisc.edu/~remzi/OSTEP/ 더보기
tistory 에 adsense 광고 넣기 - 백업 제 홈페이지에 들어가 있는 광고 코드 입니다. 백업용 및 참고용으로 게제합니다. 굵은 글씨는 기준이 되는 코드 입니다. addthis 플로팅 소셜 공유 메뉴 LinkWithin 이미지 썸네일 링크 위젯 달기http://shuetree.tistory.com/117 나의 블로그를 네이버가 분석해준다.http://haeho.com/142 ''에 해당되는 글 건 사이드바 편집 메뉴에서 넣으면 됩니다. 왼쪽 플로팅 추천 메뉴인데... 넣으면 하단에만 나오는 오류가 나는것을 수정함.http://snowsummer.tistory.com/20 ->에러가 나서 하단에만 나오는 오류 코드 -> 수정코드... 이나 크롬에서 메뉴가 잘 안눌러지는 오류 왼쪽 플로팅 광고 구름태그 넣기http://snowsummer.tistor.. 더보기
sorting algorithm 을 한눈에 보여주는 동영상들 오오 멋진데요. 더보기
Gray,RGB,HSV,YCbCr color table 용어 정리 Graphics 관련 업무를 하다보면 관련해서 생소한 용어들이 많이 나온다.이중 color table 에 대해 잘 정리한 글이 있어서, 앞부분만 소개해 본다. 원문 : http://darkpgmr.tistory.com/66 1. 기본적인 색상 모델 알아보기 색상모델하면 Gray 모델, RGB 모델, HSV 모델, YCbCr 모델 등이 떠오를 것이다. Gray 모델은 색(color) 정보를 사용하지 않고 밝기 정보만으로 영상을 표현하는 것이다. 검정색 0부터 흰색 255까지 총 256단계의 밝기값(intensity)으로 영상 픽셀값을 표현한다. RGB 모델은 가장 기보적인 색상모델로서 색(color)을 Red, Green, Blue의 3가지 성분의 조합으로 생각하는 것이다. RGB 모델에서 검은색은 R=G.. 더보기
programmer 용어 사전 fetch To load an instruction or piece of data from memory into a CPU's register. All instructions must be fetched before they can be executed. The time it takes to fetch an item is known as the fetch time or fetch cycle, and is measured inclock ticks. 더보기
git 간편 안내서 git 을 굉장히 간결하고 친숙하게 소개해 주고 있다. http://rogerdudler.github.io/git-guide/index.ko.html 아래는 한글 ppt 형식으로 svn 과의 차이점을 설명해 줍니다. http://www.slideshare.net/einsub/svn-git-17386752 더보기
git 커맨드 시트 오오 이런 좋은 자료가 !!일단 주소부터 keep. http://www.insightbook.co.kr/wp-content/uploads/2013/04/git-치트시트프린트.png http://www.insightbook.co.kr/wp-content/uploads/2013/04/git-%EC%B9%98%ED%8A%B8%EC%8B%9C%ED%8A%B8%ED%94%84%EB%A6%B0%ED%8A%B8.png 더보기
I2C 파형 read write 정리 찰칵찰칵 님의 I2C 정리 부분내가 본 한글 자료중 가장 잘 정리되어 있는 자료다. 원문 : http://cafe.naver.com/firstpicturestory/33 I2C 정리 -개념Inter-Integrated Circuit의 약자SCL(클럭), SDA(테이타)의 두개의 라인을 사용.100Kbit/s(Standard Mode)~3.4Mbit/s(High-speed Mode)까지의 양방향 통신.* 일반적으로 40~400Kbits의 속도로 사용됨 - 통신의특성 신호는 크게 Start, data, stop 로 나뉜다.Start 는 SCL 이 high 일 때 SDA 가 falling으로 가는 경우로 Slave 에게 I2C 의 시작 됨을알린다.Stop 는 SCL 이 high 일 때 SDA 가 rising으.. 더보기
text 기반의 계산기 pcalc text 기반의 계산기 pcalc 입니다. 처음에는 아무것도 없이 text 만 떠서 이건 뭥니 하고 몇개를 쳐봤는데.. 와아~ 생각보다 무지 편함니다. 굳이 버튼을 누를 필요없이 휙휙 계산값이 나오니까 좋군요. 더군다나 프로그래머들에게 꼭 필요한 연산들을 그냥 사용할 수 있습니다. 예 : hex(10) 16 5 >> 1 2 다만 사용법이 자세히 나오지 않은게 아쉽네요. 하지만 직관적이기 때문에 큰 문제는 없을듯 합니다. linux : http://kldp.org/node/91733 window : http://file.naver.com/pc/view.html?fnum=239976&cat=30 숫자 뒤에 '.' 을 찍으면 소수자리까지 계산해 줍니다. 1/2(엔터) 0 1/2.(엔터.. 더보기
shift 연산자(>>)를 이용한 곱셈과 나눗셈 linux kernel code 를 분석하다 보면 가끔 복잡한 shift 연산자 들이 나옵니다. shift 연산자들은 연산의 속도가 빨라서 고수 개발자들에게 사랑받곤 하지만 분석하는 입장에서는 그 의미가 모호해서 답답할 때가 많습니다. 그중 자주 사용되는 shift 연산자를 이용한 나눗셈을 알아 봅시다. totalpages = mtd->size >> mtd->writesize_shift; 이 구문의 이미는 무었일까요? 보통 mtd 는 수많은 page 들로 이루어져 있습니다. page 는 write단위이기도 해서 writesize 와 동일합니다. writesize = 4096 = (2진수)1000000000000 이렇게 됩니다. shift 연산자는 1 을 얼마나 밀었냐 인데요. 위에서 0 의 갯수를 세면 .. 더보기
nand flash - ftl(last, ECC, FSOC) 출처 : http://kin.naver.com/open100/detail.nhn?d1id=1&dirId=10103&docId=422528&qb=ZWNjIGJsb2Nr&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0&pid=g6aYQloi5T8ssbtsL8ssss--165317&sid=TKFWy7cioUwAAHDlbYM http://blog.naver.com/gosuyk?Redirect=Log&logNo=50186594 NAND를 많이 써본 경험에 의해 몇가지를 정리해봅니다. 1. NAND의 Write 특성 NAND는 Erase를 하면 모든 데이터가 0xFF로 바뀌게 됩니다. 이를 NAND로직을 통해 비트가 1인 녀석들을 0으로 바꾸게 되는 것이죠. 따라서 비트가 0인.. 더보기
git - Linux & windows 환경에서 사용하기 http://dev.azki.org/40 1.1 git 환경 설정 a. git config --global user.name "my name" : user name 설정 b. git config --global user.email "my email" : user email 설정 c. vim ~/.bashrc git config --global core.gitproxy '/root/env/git_proxy.sh' : git 외부 proxy 설정 (git_proxy.sh는 첨부의 파일 참조) 1.2 code 수정 후 반영 sequence a. git pull : 코드 최신으로 sync받기 b. git status : 코드 수정 후 수정 사항 확.. 더보기
Trace32 - break point 에서 원하는 변수면 area 에 출력하기 break 옵션에 CMD 창에 다음과 같이 적는다. print "g_len=" v.value(g_len) " g_offset=" v.value(g_offset) " g_log_index=" v.value(g_log_index) " g_chunk=" v.value(g_chunk) 더보기
메모리 번지로 사이즈 계산하기 참 쉬운건데 헷갈리고 있었네요. 뒷번지 - 앞번지 + 1 이 해당 메모리 사이즈의 byte 값입니다. 예1 ) 0x0000 -- 0x1FFF 는 0x1FFF - 0x0000 + 1 = 0x2000 (=8192) 8192 byte 이고 8 kbyte 입니다. --------------------------------------------------- 예2 ) 0x04FFFFFF 0x04FFFFFF + 1 = 0x5000000 (byte) 0x5000000 / 0x400(1024) = 0x14000 = 81920 (kbyte) 81920 / 1024 = 80 Mbyte 공식으로 만들면 아래와 같습니다.(선형주소 + 1) / (1024*1024) = x MB 참고로 64MB : 0x 0400 0000 1G :.. 더보기