1 Commits

Author SHA1 Message Date
lukstep
0d802ea304 Debugging POC 2023-10-05 22:15:32 +02:00
8 changed files with 86 additions and 26 deletions

View File

@@ -1,4 +1,4 @@
FROM alpine:3.21.3
FROM alpine:3.17.0
# Install toolchain
RUN apk update && \
@@ -12,23 +12,22 @@ RUN apk update && \
bsd-compat-headers \
newlib-arm-none-eabi \
gcc-arm-none-eabi \
g++-arm-none-eabi \
linux-headers
gdb-multiarch
# Raspberry Pi Pico SDK
ARG SDK_PATH=/usr/share/pico_sdk
RUN git clone --depth 1 --branch 2.1.1 --single-branch https://github.com/raspberrypi/pico-sdk $SDK_PATH && \
RUN git clone --depth 1 --branch 1.5.1 https://github.com/raspberrypi/pico-sdk $SDK_PATH && \
cd $SDK_PATH && \
git submodule update --init
ENV PICO_SDK_PATH=$SDK_PATH
# Picotool installation
RUN git clone --depth 1 --branch 2.1.1 --single-branch https://github.com/raspberrypi/picotool.git /home/picotool && \
RUN git clone --depth 1 --branch 1.1.2 https://github.com/raspberrypi/picotool.git /home/picotool && \
cd /home/picotool && \
mkdir build && \
cd build && \
cmake .. && \
make -j$(nproc) && \
cmake --install . && \
make && \
cp /home/picotool/build/picotool /bin/picotool && \
rm -rf /home/picotool

13
Jenkinsfile vendored
View File

@@ -1,13 +0,0 @@
node {
stage("Download SRC") {
checkout scm
}
stage("Docker build") {
docker.build("${env.DOCKER_PREFIX}/picosdk", ".")
}
stage("docker prune") {
sh 'docker system prune -f'
}
}

20
sdk_session.sh Normal file
View File

@@ -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

8
test_poject/.vscode/extensions.json vendored Normal file
View File

@@ -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"
]
}

25
test_poject/.vscode/launch.json vendored Normal file
View File

@@ -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}"
],
}
]
}

13
test_poject/.vscode/settings.json vendored Normal file
View File

@@ -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"
}

View File

@@ -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
)

View File

@@ -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++;
}
}