Don't think! Just do it!

종합 IT 기술 정체성 카오스 블로그! 이... 이곳은 어디지?

임베디드 하드웨어/Raspberry PI Pico

rpi-pico new project 만들기

방피터 2022. 8. 9. 16:59

자 이제 pico-example 폴더를 벗어나서 내 workspace에 새로운 폴더를 만들고 새로운 프로젝트를 시작해보자구. 이것 역시 getting started 메뉴얼에 있으니까 참고하고.

getting started 문서 chapter 8

먼저 원하는 위치에 새로 시작할 폴더를 하나 만들자. 나는 맥 스튜디오의 부족한 용량을 커버하고자 외장하드를 하나 마련했지 훗. 이제 앞으로 거기다가 작업을 할거야. 난 요렇게 만들어봤어.

외장하드/workspace/rpi-pico/test_project 폴더 생성

그 다음에는 test.c 파일을 하나 만들어 보자. 별건 아니고 led 깜빡이는 거.. 아휴 지겨워..

#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/gpio.h"
#include "pico/binary_info.h"

const uint LED_PIN = 25;

int main() {
    bi_decl(bi_program_description("This is a test binary."));
    bi_decl(bi_1pin_with_name(LED_PIN, "On-board LED"));

    stdio_init_all();

    gpio_init(LED_PIN);
    gpio_set_dir(LED_PIN, GPIO_OUT);
    while(1){
        gpio_put(LED_PIN,0);
        sleep_ms(250);
        gpio_put(LED_PIN,1);
        sleep_ms(250);
    }
}

그리고나서 CMake를 위한 CMakeList.txt 파일을 만들어 주자고. 안에 코드들은 전부 getting started 문서를 따라한거임.

cmake_minimum_required(VERSION 3.13)

include(pico_sdk_import.cmake)

project(test_project C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
pico_sdk_init()

add_executable(test test.c)
pico_enable_stdio_usb(test 1)
pico_enable_stdio_uart(test 1)

pico_enable_stdio_uart(test 1)

target_link_libraries(test pico_stdlib)

그리고 .vscode 폴더를 하나 만들고 launch.json을 만들어줘서 vscode가 실행될 때 필요한 설정들을 알려주자고. 이건 기존에 만들어 놓은 launch.json을 복사해오면 끝이야. configFiles 같은 걸 절대경로로 해주길 잘했지 뭐야 ㅋ

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Pico Debug",
      "cwd": "${workspaceRoot}",
      "executable": "${command:cmake.launchTargetPath}",
      "request": "launch",
      "type": "cortex-debug",
      "servertype": "openocd",
      "showDevDebugOutput": true,
      // This may need to be arm-none-eabi-gdb depending on your system
      "gdbPath": "arm-none-eabi-gdb",
      "armToolchainPath": "/Applications/ARM/bin",
      "device": "RP2040",
      "configFiles": [
        "/Users/peterbang/pico/openocd/tcl/interface/picoprobe.cfg",
        "/Users/peterbang/pico/openocd/tcl/target/rp2040.cfg"
      ],
      "svdFile": "${env:PICO_SDK_PATH}/src/rp2040/hardware_regs/rp2040.svd",
      "runToMain": true,
      // Work around for stopping at main on restart
      "postRestartCommands": ["break main", "continue"]
    }
  ]
}

사실 getting stared 문서에는 export로 PICO_SDK_PATH를 설정해 주는 부분이 있는데 우리는 이미 ~/.zshrc 에 삽입했지? 이전에 설명했으니 패스!

그리고나서 build 폴더를 하나 만들고 그 폴더에서 cmake-> make 하면 빌드가 될거야.

% mkdir build
% cd build
% cmake ..
% make

전체 폴더 구조는 아래와 같이 될거고 👇👇

새 프로젝트 구조

모든게 잘 입력되었다면 vscode는 CMake 프로젝트라고 인식하고 CMake Extension도 불러올거고 아래 캡쳐와 같이 Debug 메뉴도 잘 활성화 되어 있을거야. 

CMAKE 프로젝트 디버그 창.

설정하는 중간에 컴파일러 지정하는 부분이랑👇👇

컴파일러 설정

디버그 타겟 지정하는 부분 잊지 말고 잘 선택해주자.👇

디버그 타겟 지정

모르고 지나갔다면 shift + cmd + P 눌러서(맥기준) 명령 팔레트 열고 "CMake:Select a kit"과 "CMake:Set Debug Target" 명령을 통해서 새로 지정해줄 수 있어. 우리는 이미 명령을 통해서 cmake, make 수행했지만 디버그 창에서 잘 동작하는지 버튼도 눌러보고 ㅎ

cmake -> make

그리고 최종적으로 디버그가 잘 수행되는지 확인해보자고~ 이거 동영상 캡쳐는 도저히 지겨워서 못하겠다. 암튼 잘 동작함 ㅇㅇ 잘 동작함.

이제 새로운 프로젝트로 만들 수 있으니까 실제로 코드를 좀 짜보자고.. 원래는 spi로 하기로 했었는데 i2c로 변경되서 i2c쪽을 한번 해볼거야. 관심있는 사람들은 같이 한번 해보자고! 안녕!

반응형