본문 바로가기

전체 글159

LLVM basic block call flow graph LLVM에서 call flow graph를 생성하기 위해 바로 보거나, dot 파일 등으로 저장할 수 있다. dot 파일을 위해 graphviz를 설치한다 $ sudo apt install graphviz 이후 LLVM 으로 cfg 를 생성한다. bitcode 생성 $ clang -c -emit-llvm main.c -o main.bc ll 생성 $ llvm-dis main.bc cfg 생성 $ opt -analyze -dot-cfg main.ll 코드에 따라서 1개 이상의 .dot 파일이 생성된다. 만약 x11 환경이라면 -dot-cfg 옵션 대신에 -view-cfg 옵션을 통해 바로 cfg 를 볼 수 있다. dot 파일을 직접 볼 수 없으므로 png 로 변경한다. $ dot -Tpng -o main... 2020. 9. 7.
VS Code에서 remote ssh로 라즈베리 파이 연결하기 기존에는 WinSCP와 Putty를 사용해서 개발을 진행했었는데, 불편함을 느끼던 와중에 VS Code에서 remote ssh를 사용할 수 있는 것을 알게 되었습니다. 설치 방법은 VS Code에서 Extention을 설치하고 연결만 하면 될 정도로 간단합니다. 1. SSH Extension 설치 Extension 탭에서 'Remote - SSH' 혹은 'Remote developemnet'를 설치합니다. 2. SSH 설정 설치가 되면 Remote를 위한 탭이 생성됩니다. 해당 탭을 누르고 SSH TARGETS에서 '+ 버튼'을 눌러 장치를 추가합니다. 아래의 창에 보이는 것과 같이, 'ssh 계정명@서버 IP -A'를 입력합니다. 서버 IP와 계정이 올바르면 아래와 같이 SSH 설정 파일을 어디에 저장.. 2020. 9. 2.
라즈베리파이 현재 클럭 프리퀀시 확인 라즈베리파이에서 현재 CPU 클럭 프리퀀시(frequency)를 확인할 때에는 아래의 명령을 사용한다. $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq 위 명령어는 cpu0 만 확인하는 것으로, 한 번에 다수의 cpu의 클럭 확인은 중간에 cpu0 대신에 cpu*를 사용한다. $ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq 2020. 8. 21.
라즈베리 파이3 시리얼(Uart) 설정 라즈베리 파이 3과 PC의 시리얼 통신을 하기 위해 GPIO의 4번(GND), 8번(TXD)과 10번(RXD) 핀에 USB to TTL 케이블을 연결합니다 (자세한 핀 맵은 https://www.raspberrypi.org/documentation/usage/gpio/ 을 참고하시면 됩니다). 라즈베리파이와 케이블을 연결할 때는 케이블의 TXD를 라즈베리의 RXD에, RXD를 TXD에 각각 교차해서 연결해야 합니다. 저는 PL2303TA 칩을 사용한 USB to TTL 케이블 (https://www.devicemart.co.kr/goods/view?no=1164522)을 사용하였습니다. (참고로 저는 해당 케이블을 5개 정도 구매했는데 2개 정도는 불량이었습니다.. 구매하신다면 여분의 케이블을 구매하시는.. 2020. 8. 6.
라즈베리파이에서 perf 설치하기 라즈베리파이 3 모델 B에서 라즈비안(May 2020 32-bit)에 Preempt-RT 패치를 적용해 사용하고 있습니다. 커널 버전은 아래와 같이 4.19.71 입니다. perf를 사용하기 위해 apt에서 찾아보았지만 apt로는 4.9 버전과 3.6 버전만 설치가 가능했습니다. 따라서, 직접 파일을 다운로드하여서 설치하였습니다. 다운로드와 설치는 아래의 명령어로 할 수 있습니다. $ wget http://ftp.kr.debian.org/debian/pool/main/l/linux/linux-perf-4.19_4.19.132-1_armhf.deb $ sudo dpkg -i linux-perf-4.19_4.19.132-1_armhf.deb 만약 libopencsd0 때문에 설치가 안되면 apt로 설치한 뒤.. 2020. 8. 5.
라즈베리파이 가버너 변경 라즈베리 파이 3 모델 B에서 라즈비안을 설치하면 기본 가버너가 ondemand로 설정돼있다. 가버너에 대한 설명은 다음의 링크를 참고하면 됩니다. https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt 라즈베리의 최소 클럭은 600MHz, 최대 클럭은 1200 MHz입니다. 해당 스펙은 아래의 명령어로 확인 가능합니다. $ lscpu | grep MHz 현재 사용할 수 있는 가버너는 아래 명령어로 확인할 수 있다. $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 가버너 변경을 위해서는 슈퍼유저 권한으로 아래의 명령어를 입력한다. 각 CPU 코어 별로 설정을 해주어야 .. 2020. 8. 5.