STM32 빌드환경을 CubeIDE가 아닌 직접 빌드 시스템을 구성하여 개발중에 있다. 그런데 지난달 vscode c/c++ extension이 업데이트 되면서 ctag 기능이 동작하지 않는 것을 확인하였다. 당연히 난 extension 버그려니 했는데 지난주 업데이트 했음에도 문제가 해결되지 않았다. 임시방편으로 1.22.11 버전으로 롤백하여 사용하였는데 오늘 문제의 원인을 찾아 블로그에 정리해 둔다. vscode에서 comiple_commands.json 기반의 ctag 기능이 활성화 되지 않으면 아래와 같이 소스 트랙킹에 아주 불편함을 느끼게 되기 때문에 이 문제는 반드시 extension이 수정되거나, 내가 문제의 원인을 찾아 수정해야 한다.ctag가 안되려면 다 안되던가... 어떤 것은 트랙킹..
GitHub을 혼자 사용할 때는 기본만 알아도 큰 불편함이 없었지만, 여러 사람들과 함께 사용하다 보니, 익숙치 않은 명령어를 사용할 때마다 검색해서 하는 것이 귀찮아서 블로그에 간단히 정리해둔다. GitHub에 여러 계정의 ssh key 사용 (Host 키워드를 사용하여 alias 방법) $ vi ~/.ssh/config Host HOSTA HostName github.com User git IdentityFile ~/.ssh/HOSTA_rsa Host HOSTB HostName github.com User git IdentityFile ~/.ssh/HOSTB_rsa $ git clone git@HOSTA:/xxx.git . Branch 관리 생성 $ git branch $ git checkout -b..
Amlogic SDK 저장소는 릴리즈 후 유효기간이 1달이기 때문에, 회사 GitLab 서버로 덤프하는 방법을 간단히 정리한다. Amlogic SDK download Amlogic SDK 202207 버전을 ref-sdk-202207 디렉토리에 mirror 옵션을 사용하여 아래와 같이 다운받는다. $ mkdir ref-sdk-202207 $ cd ref-sdk-202207 $ repo init -u ssh://git@openlinux.amlogic.com/yocto/manifest.git -b master -m yocto-dunfell-202207.xml --repo-url=ssh://git@openlinux.amlogic.com/repo.git --repo-branch=v2.9 --mirror GitL..
GitLab 설치 GitLab 최신버전은 여기 다운받을 수 있으나, GitLab은 버전별 DB 호환성 문제로 백업/복구시 동일한 GitLab 버전으로 설치하는 것이 정신에 좋다. 사내에서 사용하고 있는 GitLab 서버의 버전은 12.10.6을 사용하고 있으며, 여기 필요한 버전을 다운 받도록 한다. 특정 버전을 받아 설치할 경우, gitlab-ce 패키지가 업데이트되지 않도록 설정해야 하며, 가급적 우분투 저장소에 GitLab 패키지 저장소를 추가하지 않는 것이 좋다. 특정 버전의 GitLab를 설치할 경우 아래 패키지를 미리 설치하도록 한다. SMTP를 운영하지 않아 postfix를 생략하도록 한다. $ sudo apt install curl openssh-server ca-certificates t..
LVGL 그래픽 라이브러리를 사용하고 STM32 개발보드의 UI를 구성하려고 한다. LVGL 라이브러리는 GitHub에서 다운받아 사용할 수 있으며, 이 저장소를 내 작업환경에 서브 모듈로 등록하여 아래의 명령어를 사용하여 등록할 수 있다. $ git submodule add $ git submodule init $ git submodule update 위 명령어를 사용하여 서브모듈을 등록하면 .gitmodules 파일이 생성되며, 추가한 서브 모듈의 저장소 위치 및 로컬 경로를 확인할 수 있다. $ vi .gitmodules [submodule "Core/Src/extlib/graphic/LVGL/lvgl"] path = Core/Src/extlib/graphic/LVGL/lvgl url = git@g..
GitHub에서 소스를 내려받았을 때, https 방식으로 받게되면 리모트 서버인 GitHub에 pull과 push를 할 때마다 ID 및 패스워드를 입력해야 하는 번거로움이 생긴다. 이런 번거로움을 없애기 위해 GitHub에 RSA Public key를 등록하여 ID/패스워드를 입력하는 과정을 생략할 수 있다. RSA Public key를 등록하기 위해서는 ssh 명령어를 사용하여 RSA key를 생성하도록 한다. $ ssh-keygen -t rsa -b 4096 -C "" -C 옵션은 생략이 가능하며, 생성된 RSA key 저장 위치를 설정해야 한다. 일반적으로 default 값이 ~/.ssh/id_rsa로 생성한다. 이 글에서는 ~/.ssh/github_rsakey로 생성하였다. 만약 여러 개의 Gi..
사내에서 SVN으로 소스 버전관리를 하고 있어 GIT은 거의 사용하지 않았으나, Python 공부하면서 만들어본 Toy Project 소스를 관리하기 위해 GitHub 계정을 생성하였다. GIT과 SVN의 차이는 아래 블로그에서 정리가 잘되어 있기에 아래 글을 참고하도록 한다. GIT 과 SVN의 개념 및 장단점 형상관리, 버전관리 GIT 과 SVN 을 이해하려면 먼저 형상관리(버전관리)에 대해 이해해야 한다. 프로젝트를 진행할 때 각자 업무를 나눠서 맡은 부분을 개발을 하게 되는데, 각자가 개발한 코드 혹은 문서들을 하나의 dzzienki.tistory.com 간단히 설명하면 svn은 중앙 서버를 중심으로 소스 관리가 이루어지는 반면, git은 로컬 저장소를 추가하여 Client 별로 개별 소스의 버전..
Visual Studio Code Extension인 Hex Editor를 사용하기 전에 우분투에서 Hex Editor로 Bless를 사용하였으나, 우분투 20.04 환경에서 실행하면 앱이 행업되는 경우가 빈번하게 발생하고, 종료도 되지 않아 터미널에서 bless 프로세스를 강제로 종료시키는 경우가 너무 많이 발생하여 쓰지 못할 정도였다. 그래서 Bless를 대체할 앱를 찾아보다 우연히 설치한 Hex Editor 짧게 사용해본 후, 이것을 앞으로 사용하기로 하였다. MS에서 개발하여 배포한 Extension이라 완성도 높으면서 Bless 만큼 가볍고 인터페이스가 매우 심플하여 쓰기가 편하였다. 아래 이미지와 같이 특별한 기능은 없지만 기본 기능에 충실한 Hex Editor이다. Hex Editor를 보고..
Nord 테마를 기반으로 만들어진 Nord Deep 테마는 Constrast를 높여 코드 가독성도 좋고 눈의 피로도가 적어 Monokai 테마에서 갈아탄 Visual Studio Code 테마이다. Nord Deep 테마의 색상은 대부분 만족하지만, cursor foreground의 색상이 배경색과 비슷하여 가독성이 매우 떨어지는 단점이 있다. 이것 때문에 다른 테마로 변경하는 것도 그래서 주석 색상만 변경할 수 있는지 찾아본 결과, settings.json 파일에서 특정 토큰(키워드)에 대해 색상을 재정의를 할 수 있다. settings.json 파일의 아래 내용을 추가하면 기존 테마에서 주석 색상만 변경할 수 있다. "editor.tokenColorCustomizations": { "comments"..
MS에서 제공하는 Python Extension을 설치하여 파이썬 런타임 환경과 인텔리센스 등과 같은 다양한 기능을 사용할 수 있어 파이썬 개발의 효율을 높일 수 있다. Visual Studio Code는 파이썬 코딩 스타일을 실시간으로 검사하고 있으며, 개발 PC에 pylint 패키지가 설치되어 있지 않다면 아래와 같은 메시지가 출력된다. 기본적으로 파이썬은 코딩 스타일을 강제하고 있어, 다른 언어보다 코드 가독성이 높다. 코딩 스타일을 pylint로 검사하기 때문에 pip를 사용하여 설치하도록 한다. $ sudo apt install python3-pip $ pip3 install pylint pylint 설치로 파이썬이 권장하는 코딩 스타일이 아닌 경우 Visual Stdio Code에서 오류 표시..
우분투 환경에서 Visual Studio Code(VSCode)의 전역 설정 파일은 ~/.config/Code/User 디렉토리에 위치한다. 에디터 및 워크벤치와 같은 작업 환경은 settings.json 파일에 저장한다. 그리고 단축키 설정이 가능한데, VSCode는 다양한 플랫폼을 지원하므로 단축키 설정에 대한 동기화 설정은 주의를 해야 한다. 단축키 설정 파일은 keybindings.json 파일에 저장한다. 그리고 프로젝트 단위로 settings.json 파일을 설정할 수 있을 뿐만 아니라 빌드 속성 및 런타임 환경도 설정이 가능하다. 프로젝트 단위 설정 파일은 project_dir/.vsocde 디렉토리에서 settings.json / launch.json / c_cpp_properties.js..