PlatformIO :: MCU/임베디드 관련 IDE소개
PlatformIO 의 로고
서론
1년만에 블로그를 리셋하고 새로운 맘에서 글을 써야겠다, 하다가 좋은 IDE가 있다는것이 문뜩 생각이 나서 오늘은 PlatformIO라는 아주 좋은 IDE를 소개하겠다.
본인은 처음에 Atmel의 AVR MCU를 사용 했을때 Visual Studio Express 기반의 Atmel Studio를 사용했다. 6.2때 간혹
- uint8_t foo = (uint8_t)(bar<<16);
이 맞나 안맞나 모르겠지만 가끔 저기서 제대로 시프트가 안되는 gcc의 소소한 버그를 무시하면 VS기반이라 매우 편했던 IDE였다.
그리고 나서 FS USB, I2C 등 많은 기능을 가지고있으며 보다 고성능인 STM32를 사용하고 있다.
허나 SW4STM32는 나에게 그렇게 친숙하지 않았다. 그래서 좀더 본인에게 친숙한 IDE를 찾으려 했으나 실패했고 결국 STM32Cube에서 Generate 한 코드를 VS Code에서 작성하고 있었다.
그러다가 우연히 Extension검색을 통해서 platformIO를 알게 되었다.
고수는 도구를 따지지 않는다는 명언이 있느나 고수가 되기전까지는 도구의 힘들 조금이나마 빌리고자한다.
Platform IO의 장점 소개
PlatformIO는 node.js기반의 Atom 에디터와 VS Code 둘중하나에 Extension으로 설치하여 사용하는 형태이다.
무엇보다 장점이라고 하면 Source Insight처럼 어떤 프로젝트던가 가리지 않고 그냥 디렉터리를 로드하면 알아서 헤더나 링커를 참조한다는 점이다.
편한 UI, 검색기능 , C/Cpp를 제외한 코드도 VSCode/Atom이기에 잘 읽을 수 있다.
또 내가 눈여겨 본것은 VSCode에서 0b10001000 이진법 표기법으로 변수 작성하면 변수로 처리되지 않았었는데 PlatformIO를 설치하고나서는 변수로 인식이 된다.
// 예전에 웹개발?하는 친구가 0b######## 왜쓰냐면서 씹극협이라고 하면서 VSCode로 간단한 플러그인만들어서 놀린적이 있었는데. 개그짤로 올릴려고 했으나 사진을 찾을수가 없다.
물론 Windows , Mac ,Linux 에서 VSCode와 Atom이 돌아가니 어디든 돌아가며 , 무료다. Source Insight가 약 150?200USD 정도 하는 것과 비교하면 Thanks you다.
디버깅
공식사이트에서는 Atom을 위주로 소개를 하는데 Atom의 경우 디버거를 통하며 브레이크 포인트나 Variable Watch도 가능한 것 같다. 일단 당장에 openOCD혹은 ST-Link J-Link등을 지원하며 혹시 찾는 디버거가 있다면 이곳을 참고 바란다.
현재 본인은 당장은 iAR의 EWARM을 쓰고 있기에 컴파일/디버깅은 iAR에서 하기 때문에 디버깅 기능을 이용해보지 않았으나 시간이 나면 STM32Cube에서 코드를 Generate한 후 바로 VScode+PlatformIO에서만 테스트 코드 작성후 디버깅을 해보려한다.
설치방법 + 오프라인 환경 설치방법
VScode기준으로 설명 하면 Extension에서 PlatformIO를 검색후 설치해주면 끝난다.
오프라인 설치
만약 당신이 죽어도 오프라인환경에서만 써야한다는 상황이라면 우선 이 PlatformIO라는 Extension 이 종속하는 Extensions 들이 무엇인지 확인을 하고 오프라인 환경에 옮기기 전에 준비해야한다.
본체 : PlatformIO IDE
https://marketplace.visualstudio.com/items?itemName=formulahendry.platformio
C/C++ for Visual Studio Code
https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
Native Debug
https://marketplace.visualstudio.com/items?itemName=webfreak.debug
이 3개의 Extension을 오프라인설치를 위해 파일로 준비하면 되며 설치 순서는
C/C++ -> Native Debug -> Platform IDE
이다.
여기서 조심할점은 C/C++은 설치후에 자동으로 MS사에서 파일을 두개 받는데 혹시 가장 좋은건 MS사에서 다운로드 받는 경로에 한해서 미러를 만드는것이겠지만 그런건 귀찮으니
테스트로 설치할 VSCode의 cpptools extensions 폴더 내용을 전부 백업한후
오프라인 환경의 컴퓨터에 Vscode의 Cpptools 를 설치한후 백업한 파일을 붙여넣는다.
이거 밖에는 답이 없을것이다.
그뒤에는 Native Debug, PlatformIDE를 차례대로 설치하면된다.
Atom의 경우에는 npm의존성이 강하기에 어찌해야되나 잘모르겠다. 정원하는 고수가 있다면 알아서 할거라고 믿는다.
마치며
PlatformIO를 사용한지 오래되지않았지만. 나에게는 매우 반가운 툴이며 앞으로 오래 잡게될 툴임이 틀림없다. 혹시라도 IDE를 바꾸려 했던 사람이나 새로 입문하는 사람이 있다면 꼭 한번 PlatformIO를 VSCode나 Atom이랑 같이 써보는걸 추천한다.
다음에는 Web기반 PCB툴인 EasyEDA와 upverter의 소개,
그리고 EasyEDA로 PCB의 Schematic 과 Layout을 만드는 것을 소개해보려한다.






댓글
댓글 쓰기