diff --git a/Dockerfile b/Dockerfile index b46ec5d..32f7741 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,8 @@ RUN apk update && \ libusb-dev \ bsd-compat-headers \ newlib-arm-none-eabi \ - gcc-arm-none-eabi + gcc-arm-none-eabi \ + gdb-multiarch # Raspberry Pi Pico SDK ARG SDK_PATH=/usr/share/pico_sdk diff --git a/sdk_session.sh b/sdk_session.sh new file mode 100644 index 0000000..9947118 --- /dev/null +++ b/sdk_session.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +docker run --rm -d -it --name pico-sdk --network=host --mount type=bind,source=${PWD},target=/home/dev pico-sdk-debug + +session="Pico-sdk" + +tmux new-session -d -s $session + +window=0 +tmux rename-window -t $session:$window 'Docker' +tmux send-keys -t $session:$window 'docker exec -it pico-sdk ./bin/sh' C-m + +window=1 +tmux new-window -t $session:$window -n 'OpenOCD' +tmux send-keys -t $session:$window 'sudo openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "bindto 0.0.0.0"' C-m + +window=2 +tmux new-window -t $session:$window -n 'UART' + +tmux attach-session -t $session diff --git a/test_poject/.vscode/extensions.json b/test_poject/.vscode/extensions.json new file mode 100644 index 0000000..4a589e7 --- /dev/null +++ b/test_poject/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": ["llvm-vs-code-extensions.vscode-clangd", + "marus25.cortex-debug", + "ms-vscode.cmake-tools", + "ms-vscode.cpptools", + "ms-vscode.cpptools-extension-pack" + ] +} \ No newline at end of file diff --git a/test_poject/.vscode/launch.json b/test_poject/.vscode/launch.json new file mode 100644 index 0000000..2ae4f60 --- /dev/null +++ b/test_poject/.vscode/launch.json @@ -0,0 +1,25 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Pico debug", + "cwd": "${workspaceFolder}", + "gdbPath": "/usr/bin/gdb-multiarch", + "executable": "/home/dev/build/sample.elf", + "request": "launch", + "type": "cortex-debug", + "runToEntryPoint": "main", + "servertype": "external", + "gdbTarget": "host.docker.internal:3333", + "overrideLaunchCommands": [ + "monitor adapter speed 5000", + "monitor reset init", + "load ${command:cmake.launchTargetPath}" + ], + + } + ] +} \ No newline at end of file diff --git a/test_poject/.vscode/settings.json b/test_poject/.vscode/settings.json new file mode 100644 index 0000000..fac3607 --- /dev/null +++ b/test_poject/.vscode/settings.json @@ -0,0 +1,13 @@ +{ + "C_Cpp.intelliSenseEngine": "disabled", + "clangd.path": "/usr/bin/clangd", + "clangd.checkUpdates": false, + "clangd.restartAfterCrash": true, + "clangd.detectExtensionConflicts": true, + "clangd.arguments": ["-log=verbose", + "-pretty", + "--background-index", + "--query-driver=/usr/bin/arm-none-eabi-gcc", + "--compile-commands-dir=/home/dev/build"], + "cmake.sourceDirectory": "/home/dev" +} \ No newline at end of file diff --git a/test_poject/CMakeLists.txt b/test_poject/CMakeLists.txt index 7d4c4c9..e699572 100644 --- a/test_poject/CMakeLists.txt +++ b/test_poject/CMakeLists.txt @@ -9,13 +9,21 @@ set(CMAKE_CXX_COMPILER /usr/bin/arm-none-eabi-g++ CACHE PATH "" FORCE) set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +add_compile_options(-Wall -g -O1) pico_sdk_init() add_executable(sample main.c) -pico_enable_stdio_usb(sample 1) +pico_enable_stdio_usb(sample 0) pico_enable_stdio_uart(sample 1) pico_add_extra_outputs(sample) -target_link_libraries(sample pico_stdlib) +target_link_libraries(sample + pico_stdlib + hardware_pio + hardware_timer + hardware_clocks + hardware_pwm +) diff --git a/test_poject/main.c b/test_poject/main.c index 904636e..f27df4f 100644 --- a/test_poject/main.c +++ b/test_poject/main.c @@ -3,12 +3,11 @@ #include "hardware/gpio.h" #include "pico/binary_info.h" -const int LED_PIN = 25; +const int LED_PIN = 0; int main () { - bi_decl(bi_program_description("Sample binary")); - bi_decl(bi_1pin_with_name(LED_PIN, "on-board PIN")); + int test = 0; stdio_init_all(); @@ -20,8 +19,9 @@ int main () gpio_put(LED_PIN, 0); sleep_ms(250); gpio_put(LED_PIN, 1); - puts("Hello Word\n"); + printf("Hello Word %d\n", test); sleep_ms(1000); + test++; } }