OpenOCD + GDB

This commit is contained in:
Jack O'Sullivan 2024-05-11 00:57:43 +01:00
parent 813c45d36b
commit 030642e8cf
6 changed files with 47 additions and 7 deletions

View File

@ -26,6 +26,8 @@
rootFileContent = builtins.readFile rootdir.outPath;
in
pkgs.lib.mkIf (rootFileContent != "") rootFileContent;
ocdInterface = mcu/tigard-swd.cfg;
in
{
devenv.shells.mcu = {
@ -34,6 +36,7 @@
packages = with pkgs; [
gnumake
cmake
pkgsCross.arm-embedded.buildPackages.gdb # ARM one is broken
gcc-arm-embedded
python3
picotool
@ -43,6 +46,27 @@
env = {
PICO_SDK_PATH = "${pkgs.pico-sdk}/lib/pico-sdk";
};
scripts = {
build.exec = ''
cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -D PICO_STDIO_SEMIHOSTING=1
cmake --build build --parallel
'';
build-rel.exec = ''
cmake -S . -B build-release -D CMAKE_BUILD_TYPE=Release
cmake --build build-release --parallel
'';
clean.exec = ''
rm -rf build/ build-release/
'';
ocd.exec = ''
openocd -f ${ocdInterface} -f target/rp2040.cfg
'';
gdb.exec = ''
arm-none-eabi-gdb -x .gdbinit build/qclk.elf
'';
};
};
};
};

4
mcu/.gdbinit Normal file
View File

@ -0,0 +1,4 @@
target extended-remote localhost:3333
monitor arm semihosting enable
monitor reset init
monitor debug_level -2

1
mcu/.gitignore vendored
View File

@ -1 +1,2 @@
/build/
/build-release/

View File

@ -6,14 +6,14 @@ include(pico_sdk_import.cmake)
project(test_project C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_C_COMPILER_WORKS ON)
set(CMAKE_CXX_COMPILER_WORKS ON)
pico_sdk_init()
add_executable(qclk
main.c
)
pico_enable_stdio_usb(qclk 1)
pico_enable_stdio_uart(qclk 1)
pico_enable_stdio_uart(qclk 0)
pico_add_extra_outputs(qclk)
target_link_libraries(qclk pico_stdlib)

View File

@ -1,13 +1,16 @@
#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/gpio.h"
#include "pico/stdlib.h"
#include "pico/binary_info.h"
const uint LED_PIN = 25;
const uint PIN_DIGIT_BASE = 18;
const uint PIN_SEGMENT_BASE = 2;
const uint DIGITS = 4;
int main() {
bi_decl(bi_program_description("This is a test binary."));
bi_decl(bi_1pin_with_name(LED_PIN, "On-board LED"));
bi_decl(bi_program_description("qCLK driver."));
stdio_init_all();

8
mcu/tigard-swd.cfg Normal file
View File

@ -0,0 +1,8 @@
adapter driver ftdi
transport select swd
ftdi_vid_pid 0x0403 0x6010
ftdi_channel 1
adapter speed 2000
ftdi_layout_init 0x0028 0x002b
ftdi_layout_signal SWD_EN -data 0
ftdi_layout_signal nSRST -data 0x0020