Added rpi-pico-sdk
This commit is contained in:
BIN
motor-control/firmware/.gitignore
(Stored with Git LFS)
vendored
BIN
motor-control/firmware/.gitignore
(Stored with Git LFS)
vendored
Binary file not shown.
18
motor-control/firmware/.vscode/c_cpp_properties.json
vendored
Normal file
18
motor-control/firmware/.vscode/c_cpp_properties.json
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Linux",
|
||||||
|
"includePath": [
|
||||||
|
"${workspaceFolder}/include/**",
|
||||||
|
"${workspaceFolder}/lib/pico-sdk/lib/tinyusb/src"
|
||||||
|
],
|
||||||
|
"defines": [],
|
||||||
|
"compilerPath": "/usr/bin/gcc",
|
||||||
|
"cStandard": "c17",
|
||||||
|
"cppStandard": "c++14",
|
||||||
|
"intelliSenseMode": "linux-gcc-arm",
|
||||||
|
"configurationProvider": "ms-vscode.cmake-tools"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": 4
|
||||||
|
}
|
||||||
31
motor-control/firmware/.vscode/launch.json
vendored
Executable file
31
motor-control/firmware/.vscode/launch.json
vendored
Executable file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
// 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 External OpenOCD",
|
||||||
|
"cwd": "${workspaceRoot}",
|
||||||
|
"executable": "${command:cmake.launchTargetPath}",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "Pico: flash freeRTOS_test",
|
||||||
|
"type": "cortex-debug",
|
||||||
|
"servertype": "external",
|
||||||
|
"gdbPath" : "gdb-multiarch",
|
||||||
|
"gdbTarget": "localhost:3333",
|
||||||
|
"device": "RP2040",
|
||||||
|
"configFiles": [
|
||||||
|
"interface/cmsis-dap.cfg",
|
||||||
|
"target/rp2040.cfg"
|
||||||
|
],
|
||||||
|
|
||||||
|
"svdFile": "${env:PICO_SDK_PATH}/src/rp2040/hardware_regs/rp2040.svd",
|
||||||
|
"runToEntryPoint": "main",
|
||||||
|
|
||||||
|
"postRestartCommands": [
|
||||||
|
"continue"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
78
motor-control/firmware/.vscode/settings.json
vendored
Normal file
78
motor-control/firmware/.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
{
|
||||||
|
"cSpell.words": [
|
||||||
|
"apcsw",
|
||||||
|
"apreg",
|
||||||
|
"apsel",
|
||||||
|
"arrayname",
|
||||||
|
"baseaddr",
|
||||||
|
"Bhaskra",
|
||||||
|
"bitwidth",
|
||||||
|
"BOOTSEL",
|
||||||
|
"cget",
|
||||||
|
"channellist",
|
||||||
|
"charmsg",
|
||||||
|
"clkdiv",
|
||||||
|
"cpnum",
|
||||||
|
"deassert",
|
||||||
|
"deasserted",
|
||||||
|
"deasserting",
|
||||||
|
"doxygen",
|
||||||
|
"dpreg",
|
||||||
|
"drawio",
|
||||||
|
"dreq",
|
||||||
|
"eabi",
|
||||||
|
"eventlist",
|
||||||
|
"gpio",
|
||||||
|
"helptext",
|
||||||
|
"jtag",
|
||||||
|
"lindex",
|
||||||
|
"memaccess",
|
||||||
|
"microcontroller",
|
||||||
|
"multiarch",
|
||||||
|
"multicore",
|
||||||
|
"Pico",
|
||||||
|
"picoprobe",
|
||||||
|
"pindirs",
|
||||||
|
"pinout",
|
||||||
|
"pregen",
|
||||||
|
"resexit",
|
||||||
|
"semihosting",
|
||||||
|
"srst",
|
||||||
|
"struct",
|
||||||
|
"targetname",
|
||||||
|
"TPIU",
|
||||||
|
"trst",
|
||||||
|
"UART",
|
||||||
|
"virt",
|
||||||
|
"waitstate",
|
||||||
|
"watchpoint",
|
||||||
|
"watchpoints",
|
||||||
|
"wready"
|
||||||
|
],
|
||||||
|
"cmake.sourceDirectory": "/home/alexander/Projects/gobot/motor-control/firmware",
|
||||||
|
"cmake.buildDirectory": "${workspaceFolder}/firmware/build",
|
||||||
|
"cmake.configureOnOpen": true,
|
||||||
|
"files.associations": {
|
||||||
|
"timer.h": "c",
|
||||||
|
"stdlib.h": "c",
|
||||||
|
"stdio.h": "c",
|
||||||
|
"string.h": "c",
|
||||||
|
"assert.h": "c",
|
||||||
|
"gen.h": "c",
|
||||||
|
"multicore.h": "c",
|
||||||
|
"pio.h": "c",
|
||||||
|
"freertos.h": "c",
|
||||||
|
"random": "c",
|
||||||
|
"queue.h": "c",
|
||||||
|
"string_view": "c",
|
||||||
|
"instructionformat.h": "c",
|
||||||
|
"includeglobals.h": "c",
|
||||||
|
"dacconfig.h": "c",
|
||||||
|
"freertosconfig.h": "c"
|
||||||
|
},
|
||||||
|
"cortex-debug.variableUseNaturalFormat": false,
|
||||||
|
"todo-tree.filtering.ignoreGitSubmodules": true,
|
||||||
|
"todo-tree.tree.showBadges": true,
|
||||||
|
"terminal.integrated.scrollback": 10000,
|
||||||
|
"C_Cpp.refactoring.includeHeader": "always",
|
||||||
|
}
|
||||||
171
motor-control/firmware/.vscode/tasks.json
vendored
Normal file
171
motor-control/firmware/.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,171 @@
|
|||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"type": "cmake",
|
||||||
|
"label": "CMake: build main",
|
||||||
|
"command": "build",
|
||||||
|
"targets": [
|
||||||
|
"main"
|
||||||
|
],
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceRoot}"
|
||||||
|
},
|
||||||
|
"group": "build",
|
||||||
|
"presentation": {
|
||||||
|
"echo": true,
|
||||||
|
"reveal": "always",
|
||||||
|
"focus": true,
|
||||||
|
"panel": "dedicated",
|
||||||
|
"showReuseMessage": true,
|
||||||
|
"clear": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"label": "Pico: flash main",
|
||||||
|
"command": [
|
||||||
|
"scripts/flash.exp",
|
||||||
|
"${workspaceRoot}/build/bin/main.elf"
|
||||||
|
],
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceRoot}"
|
||||||
|
},
|
||||||
|
"group": "test",
|
||||||
|
|
||||||
|
"dependsOn": ["CMake: build main"],
|
||||||
|
"presentation": {
|
||||||
|
"echo": true,
|
||||||
|
"reveal": "always",
|
||||||
|
"focus": true,
|
||||||
|
"panel": "dedicated",
|
||||||
|
"showReuseMessage": true,
|
||||||
|
"clear": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "cmake",
|
||||||
|
"label": "CMake: build usb_test",
|
||||||
|
"command": "build",
|
||||||
|
"targets": [
|
||||||
|
"usb_test"
|
||||||
|
],
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceRoot}"
|
||||||
|
},
|
||||||
|
"group": "build",
|
||||||
|
"presentation": {
|
||||||
|
"echo": true,
|
||||||
|
"reveal": "always",
|
||||||
|
"focus": true,
|
||||||
|
"panel": "dedicated",
|
||||||
|
"showReuseMessage": true,
|
||||||
|
"clear": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"label": "Pico: flash usb_test",
|
||||||
|
"command": [
|
||||||
|
"scripts/flash.exp",
|
||||||
|
"${workspaceRoot}/build/bin/usb_test.elf"
|
||||||
|
],
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceRoot}"
|
||||||
|
},
|
||||||
|
"group": "test",
|
||||||
|
|
||||||
|
"dependsOn": ["CMake: build usb_test"],
|
||||||
|
"presentation": {
|
||||||
|
"echo": true,
|
||||||
|
"reveal": "always",
|
||||||
|
"focus": true,
|
||||||
|
"panel": "dedicated",
|
||||||
|
"showReuseMessage": true,
|
||||||
|
"clear": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "cmake",
|
||||||
|
"label": "CMake: build freeRTOS_test",
|
||||||
|
"command": "build",
|
||||||
|
"targets": [
|
||||||
|
"freeRTOS_test"
|
||||||
|
],
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceRoot}"
|
||||||
|
},
|
||||||
|
"group": "build",
|
||||||
|
"presentation": {
|
||||||
|
"echo": true,
|
||||||
|
"reveal": "always",
|
||||||
|
"focus": true,
|
||||||
|
"panel": "dedicated",
|
||||||
|
"showReuseMessage": true,
|
||||||
|
"clear": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"label": "Pico: flash freeRTOS_test",
|
||||||
|
"command": [
|
||||||
|
"scripts/flash.exp",
|
||||||
|
"${workspaceRoot}/build/bin/freeRTOS_test.elf"
|
||||||
|
],
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceRoot}"
|
||||||
|
},
|
||||||
|
"group": "test",
|
||||||
|
|
||||||
|
"dependsOn": ["CMake: build freeRTOS_test"],
|
||||||
|
"presentation": {
|
||||||
|
"echo": true,
|
||||||
|
"reveal": "always",
|
||||||
|
"focus": true,
|
||||||
|
"panel": "dedicated",
|
||||||
|
"showReuseMessage": true,
|
||||||
|
"clear": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"label": "Pico: launch openocd",
|
||||||
|
"command": [
|
||||||
|
"scripts/launch_openocd.sh"
|
||||||
|
],
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceRoot}"
|
||||||
|
},
|
||||||
|
"isBackground": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cmake",
|
||||||
|
"label": "CMake: Clean",
|
||||||
|
"command": "clean"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cmake",
|
||||||
|
"label": "CMake: Clean Rebuild",
|
||||||
|
"command": "cleanRebuild"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cmake",
|
||||||
|
"label": "CMake: Configure",
|
||||||
|
"command": "configure"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"label": "Doxygen: Generate Docs",
|
||||||
|
"command": [
|
||||||
|
"doxygen ./docs/Doxyfile",
|
||||||
|
],
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceRoot}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
76
motor-control/firmware/CMakeLists.txt
Executable file
76
motor-control/firmware/CMakeLists.txt
Executable file
@@ -0,0 +1,76 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.12)
|
||||||
|
|
||||||
|
# Including the SDK (must be before project)
|
||||||
|
|
||||||
|
if (NOT "$ENV{PICO_SDK_PATH_OVERRIDE}" STREQUAL "")
|
||||||
|
SET(PICO_SDK_PATH "$ENV{PICO_SDK_PATH_OVERRIDE}")
|
||||||
|
else()
|
||||||
|
SET(PICO_SDK_PATH "${CMAKE_SOURCE_DIR}/lib/pico-sdk")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
SET(PICO_TOOLCHAIN_PATH $PICO_SDK_PATH/cmake/preload/toolchains/)
|
||||||
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "$<1:${CMAKE_BINARY_DIR}/bin>")
|
||||||
|
|
||||||
|
include(${PICO_SDK_PATH}/pico_sdk_init.cmake)
|
||||||
|
|
||||||
|
#include(pico_extras_import_optional.cmake)
|
||||||
|
|
||||||
|
project(pico_examples C CXX ASM)
|
||||||
|
set(CMAKE_C_STANDARD 23)
|
||||||
|
set(CMAKE_CXX_STANDARD 23)
|
||||||
|
|
||||||
|
if (PICO_SDK_VERSION_STRING VERSION_LESS "1.3.0")
|
||||||
|
message(FATAL_ERROR "Raspberry Pi Pico SDK version 1.3.0 (or later) required. Your version is ${PICO_SDK_VERSION_STRING}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(PICO_EXAMPLES_PATH ${PROJECT_SOURCE_DIR})
|
||||||
|
|
||||||
|
# Initialize the SDK
|
||||||
|
pico_sdk_init()
|
||||||
|
|
||||||
|
include(example_auto_set_url.cmake)
|
||||||
|
|
||||||
|
add_compile_options(-Wall
|
||||||
|
-Wno-format # int != int32_t as far as the compiler is concerned because gcc has int32_t as long int
|
||||||
|
-Wno-unused-function # we have some for the docs that aren't called
|
||||||
|
)
|
||||||
|
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||||
|
add_compile_options(-Wno-maybe-uninitialized)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# adding sources files & includes
|
||||||
|
add_executable(main
|
||||||
|
src/main.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
target_include_directories(main PUBLIC
|
||||||
|
include/
|
||||||
|
)
|
||||||
|
|
||||||
|
# Add FreeRTOS
|
||||||
|
include(freeRTOS.cmake)
|
||||||
|
|
||||||
|
target_include_directories(FreeRTOS PUBLIC
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
# Adding PIO
|
||||||
|
#pico_generate_pio_header(main ${CMAKE_CURRENT_LIST_DIR}/src/dac/dac.pio)
|
||||||
|
|
||||||
|
# pull in common dependencies
|
||||||
|
target_link_libraries(main
|
||||||
|
pico_stdlib
|
||||||
|
pico_multicore
|
||||||
|
hardware_pio
|
||||||
|
hardware_dma
|
||||||
|
hardware_timer
|
||||||
|
FreeRTOS
|
||||||
|
EEPROMDriver
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# create map/bin/hex file etc.
|
||||||
|
pico_add_extra_outputs(main)
|
||||||
|
|
||||||
|
# add url via pico_set_program_url
|
||||||
|
example_auto_set_url(main)
|
||||||
100
motor-control/firmware/FreeRTOSConfig.h
Normal file
100
motor-control/firmware/FreeRTOSConfig.h
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
#define FREERTOS_CONFIG_H
|
||||||
|
|
||||||
|
|
||||||
|
#define configUSE_PREEMPTION 1
|
||||||
|
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
|
||||||
|
#define configUSE_TICKLESS_IDLE 0
|
||||||
|
#define configCPU_CLOCK_HZ 133000000
|
||||||
|
#define configSYSTICK_CLOCK_HZ 1000000
|
||||||
|
#define configTICK_RATE_HZ 1000
|
||||||
|
#define configMAX_PRIORITIES 4
|
||||||
|
#define configMINIMAL_STACK_SIZE 256
|
||||||
|
#define configMAX_TASK_NAME_LEN 16
|
||||||
|
#define configUSE_16_BIT_TICKS 0
|
||||||
|
#define configIDLE_SHOULD_YIELD 1
|
||||||
|
#define configUSE_TASK_NOTIFICATIONS 1
|
||||||
|
#define configTASK_NOTIFICATION_ARRAY_ENTRIES 3
|
||||||
|
#define configUSE_MUTEXES 0
|
||||||
|
#define configUSE_RECURSIVE_MUTEXES 0
|
||||||
|
#define configUSE_COUNTING_SEMAPHORES 1
|
||||||
|
#define configUSE_ALTERNATIVE_API 0 /* Deprecated! */
|
||||||
|
#define configQUEUE_REGISTRY_SIZE 10
|
||||||
|
#define configUSE_QUEUE_SETS 0
|
||||||
|
#define configUSE_TIME_SLICING 1
|
||||||
|
#define configUSE_NEWLIB_REENTRANT 0
|
||||||
|
#define configENABLE_BACKWARD_COMPATIBILITY 0
|
||||||
|
#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 5
|
||||||
|
#define configSTACK_DEPTH_TYPE uint16_t
|
||||||
|
#define configMESSAGE_BUFFER_LENGTH_TYPE size_t
|
||||||
|
|
||||||
|
/* Memory allocation related definitions. */
|
||||||
|
#define configSUPPORT_STATIC_ALLOCATION 0
|
||||||
|
#define configSUPPORT_DYNAMIC_ALLOCATION 1
|
||||||
|
#define configTOTAL_HEAP_SIZE 50000
|
||||||
|
#define configAPPLICATION_ALLOCATED_HEAP 0
|
||||||
|
|
||||||
|
/* Hook function related definitions. */
|
||||||
|
#define configUSE_IDLE_HOOK 0
|
||||||
|
#define configUSE_TICK_HOOK 0
|
||||||
|
#define configCHECK_FOR_STACK_OVERFLOW 0
|
||||||
|
#define configUSE_MALLOC_FAILED_HOOK 0
|
||||||
|
#define configUSE_DAEMON_TASK_STARTUP_HOOK 0
|
||||||
|
|
||||||
|
/* Run time and task stats gathering related definitions. */
|
||||||
|
#define configGENERATE_RUN_TIME_STATS 0
|
||||||
|
#define configUSE_TRACE_FACILITY 0
|
||||||
|
#define configUSE_STATS_FORMATTING_FUNCTIONS 0
|
||||||
|
|
||||||
|
/* Co-routine related definitions. */
|
||||||
|
#define configUSE_CO_ROUTINES 0
|
||||||
|
#define configMAX_CO_ROUTINE_PRIORITIES 1
|
||||||
|
|
||||||
|
/* Software timer related definitions. */
|
||||||
|
#define configUSE_TIMERS 1
|
||||||
|
#define configTIMER_TASK_PRIORITY 3
|
||||||
|
#define configTIMER_QUEUE_LENGTH 10
|
||||||
|
#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE
|
||||||
|
|
||||||
|
/* Interrupt nesting behaviour configuration. */
|
||||||
|
#define configKERNEL_INTERRUPT_PRIORITY [dependent of processor]
|
||||||
|
#define configMAX_SYSCALL_INTERRUPT_PRIORITY [dependent on processor and application]
|
||||||
|
#define configMAX_API_CALL_INTERRUPT_PRIORITY [dependent on processor and application]
|
||||||
|
|
||||||
|
/* Define to trap errors during development. */
|
||||||
|
//#define configASSERT( ( x ) ) assert()
|
||||||
|
|
||||||
|
/* FreeRTOS MPU specific definitions. */
|
||||||
|
#define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 0
|
||||||
|
#define configTOTAL_MPU_REGIONS 8 /* Default value. */
|
||||||
|
#define configTEX_S_C_B_FLASH 0x07UL /* Default value. */
|
||||||
|
#define configTEX_S_C_B_SRAM 0x07UL /* Default value. */
|
||||||
|
#define configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY 1
|
||||||
|
|
||||||
|
/* Optional functions - most linkers will remove unused functions anyway. */
|
||||||
|
#define INCLUDE_vTaskPrioritySet 1
|
||||||
|
#define INCLUDE_uxTaskPriorityGet 1
|
||||||
|
#define INCLUDE_vTaskDelete 1
|
||||||
|
#define INCLUDE_vTaskSuspend 1
|
||||||
|
#define INCLUDE_xResumeFromISR 1
|
||||||
|
#define INCLUDE_vTaskDelayUntil 1
|
||||||
|
#define INCLUDE_vTaskDelay 1
|
||||||
|
#define INCLUDE_xTaskGetSchedulerState 1
|
||||||
|
#define INCLUDE_xTaskGetCurrentTaskHandle 1
|
||||||
|
#define INCLUDE_uxTaskGetStackHighWaterMark 0
|
||||||
|
#define INCLUDE_xTaskGetIdleTaskHandle 0
|
||||||
|
#define INCLUDE_eTaskGetState 0
|
||||||
|
#define INCLUDE_xEventGroupSetBitFromISR 1
|
||||||
|
#define INCLUDE_xTimerPendFunctionCall 0
|
||||||
|
#define INCLUDE_xTaskAbortDelay 0
|
||||||
|
#define INCLUDE_xTaskGetHandle 0
|
||||||
|
#define INCLUDE_xTaskResumeFromISR 1
|
||||||
|
|
||||||
|
#define vPortSVCHandler isr_svcall
|
||||||
|
#define xPortPendSVHandler isr_pendsv
|
||||||
|
#define xPortSysTickHandler isr_systick
|
||||||
|
|
||||||
|
|
||||||
|
/* A header file that defines trace macro can be included here. */
|
||||||
|
|
||||||
|
#endif /* FREERTOS_CONFIG_H */
|
||||||
106
motor-control/firmware/Jenkinsfile
vendored
Normal file
106
motor-control/firmware/Jenkinsfile
vendored
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
pipeline {
|
||||||
|
agent none
|
||||||
|
|
||||||
|
stages {
|
||||||
|
stage('git checkout') {
|
||||||
|
agent {
|
||||||
|
label 'docker'
|
||||||
|
}
|
||||||
|
|
||||||
|
steps {
|
||||||
|
git branch: 'firmware-dev',
|
||||||
|
credentialsId: 'osci-rendering_github',
|
||||||
|
url: 'git@github.com:AlexanderHD27/oscilloscope-drawing.git'
|
||||||
|
|
||||||
|
sh 'git submodule update --init --recursive'
|
||||||
|
sh "ls -laF"
|
||||||
|
stash includes: "firmware/lib/doxygen-awesome-css/**", name: 'libs-doxygen'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('build build-container') {
|
||||||
|
agent {
|
||||||
|
label 'docker'
|
||||||
|
}
|
||||||
|
|
||||||
|
steps {
|
||||||
|
sh 'docker build -t rpi_pico_build_container firmware/docker/'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('build') {
|
||||||
|
parallel {
|
||||||
|
stage('build firmware') {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'rpi_pico_build_container'
|
||||||
|
label 'docker'
|
||||||
|
reuseNode true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
env.PICO_SDK_PATH_OVERRIDE = sh(script: 'echo $PWD/firmware/lib/pico-sdk', returnStdout: true).trim()
|
||||||
|
}
|
||||||
|
|
||||||
|
dir('firmware/build') {
|
||||||
|
sh 'echo building in $PWD'
|
||||||
|
sh 'rm -rf *'
|
||||||
|
sh 'echo PicoSDK path: $PICO_SDK_PATH_OVERRIDE'
|
||||||
|
sh 'cmake ..'
|
||||||
|
sh 'cmake --build . --config Debug'
|
||||||
|
sh 'make -j4 all'
|
||||||
|
}
|
||||||
|
|
||||||
|
stash includes: "firmware/build/bin/*", name: 'binary'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('build docs') {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'rpi_pico_build_container'
|
||||||
|
label 'docker'
|
||||||
|
reuseNode true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
steps {
|
||||||
|
unstash 'libs-doxygen'
|
||||||
|
sh "doxygen firmware/docs/Doxyfile"
|
||||||
|
stash includes: "firmware/docs/html/*", name: 'html-docs'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('publish') {
|
||||||
|
parallel {
|
||||||
|
stage('publish docs') {
|
||||||
|
agent {
|
||||||
|
label 'cdc-deploy'
|
||||||
|
}
|
||||||
|
|
||||||
|
steps {
|
||||||
|
sh 'rm -rf /www/projects/osci-rendering/docs/*'
|
||||||
|
unstash 'html-docs'
|
||||||
|
sh 'cp -r firmware/docs/html/* /www/projects/osci-rendering/docs'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('publish binary') {
|
||||||
|
agent {
|
||||||
|
label 'cdc-deploy'
|
||||||
|
}
|
||||||
|
|
||||||
|
steps {
|
||||||
|
sh 'rm -rf /www/projects/osci-rendering/bin/*'
|
||||||
|
unstash 'binary'
|
||||||
|
sh 'cp -r bin/* /www/projects/osci-rendering/bin'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
motor-control/firmware/README.md
(Stored with Git LFS)
Normal file
BIN
motor-control/firmware/README.md
(Stored with Git LFS)
Normal file
Binary file not shown.
8
motor-control/firmware/docker/Dockerfile
Normal file
8
motor-control/firmware/docker/Dockerfile
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
FROM ubuntu:22.04
|
||||||
|
|
||||||
|
RUN apt -y update
|
||||||
|
RUN apt -y install build-essential gcc-arm-none-eabi doxygen cmake python3
|
||||||
|
RUN mkdir /data
|
||||||
|
|
||||||
|
WORKDIR /data
|
||||||
|
|
||||||
3
motor-control/firmware/docker/build_docs.sh
Executable file
3
motor-control/firmware/docker/build_docs.sh
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
doxygen ./firmware/docs/Doxyfile
|
||||||
11
motor-control/firmware/docker/build_firmware.sh
Executable file
11
motor-control/firmware/docker/build_firmware.sh
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
cd ./firmware/build
|
||||||
|
rm -rf *
|
||||||
|
|
||||||
|
export PICO_SDK_PATH_OVERRIDE="/data/firmware/lib/pico-sdk"
|
||||||
|
echo $PICO_SDK_PATH_OVERRIDE
|
||||||
|
|
||||||
|
cmake ..
|
||||||
|
cmake --build . --config Debug
|
||||||
|
make -j4 all
|
||||||
2658
motor-control/firmware/docs/Doxyfile
Normal file
2658
motor-control/firmware/docs/Doxyfile
Normal file
File diff suppressed because it is too large
Load Diff
BIN
motor-control/firmware/docs/tmc2209_datasheet_rev1.09.pdf
(Stored with Git LFS)
Normal file
BIN
motor-control/firmware/docs/tmc2209_datasheet_rev1.09.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
5
motor-control/firmware/example_auto_set_url.cmake
Executable file
5
motor-control/firmware/example_auto_set_url.cmake
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
set(PICO_EXAMPLE_URL_BASE "https://github.com/raspberrypi/pico-examples/tree/HEAD")
|
||||||
|
macro(example_auto_set_url TARGET)
|
||||||
|
file(RELATIVE_PATH URL_REL_PATH "${PICO_EXAMPLES_PATH}" "${CMAKE_CURRENT_LIST_DIR}")
|
||||||
|
pico_set_program_url(${TARGET} "${PICO_EXAMPLE_URL_BASE}/${URL_REL_PATH}")
|
||||||
|
endmacro()
|
||||||
13
motor-control/firmware/freeRTOS.cmake
Normal file
13
motor-control/firmware/freeRTOS.cmake
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
SET(FreeRTOS_DIR ${CMAKE_CURRENT_LIST_DIR}/lib/FreeRTOS-Kernel)
|
||||||
|
FILE(GLOB FreeRTOS_src ${FreeRTOS_DIR}/*.c)
|
||||||
|
|
||||||
|
add_library(FreeRTOS STATIC
|
||||||
|
${FreeRTOS_src}
|
||||||
|
${FreeRTOS_DIR}/portable/GCC/ARM_CM0/port.c
|
||||||
|
${FreeRTOS_DIR}/portable/MemMang/heap_4.c
|
||||||
|
)
|
||||||
|
|
||||||
|
target_include_directories(FreeRTOS PUBLIC
|
||||||
|
${FreeRTOS_DIR}/portable/GCC/ARM_CM0/
|
||||||
|
${FreeRTOS_DIR}/include/
|
||||||
|
)
|
||||||
1
motor-control/firmware/rpiPico.code-profile
Normal file
1
motor-control/firmware/rpiPico.code-profile
Normal file
File diff suppressed because one or more lines are too long
2
motor-control/firmware/scripts/build.sh
Executable file
2
motor-control/firmware/scripts/build.sh
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
cd build
|
||||||
|
make -j10
|
||||||
8
motor-control/firmware/scripts/build_and_flash.sh
Executable file
8
motor-control/firmware/scripts/build_and_flash.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
if ! scripts/build.sh; then
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
scripts/flash.exp main.elf
|
||||||
|
fi
|
||||||
|
|
||||||
21
motor-control/firmware/scripts/flash.exp
Executable file
21
motor-control/firmware/scripts/flash.exp
Executable file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/expect
|
||||||
|
|
||||||
|
set timeout 30
|
||||||
|
|
||||||
|
set input_file [lindex $argv 0]
|
||||||
|
|
||||||
|
spawn telnet localhost 4444
|
||||||
|
expect "> "
|
||||||
|
send "program $input_file verify\n"
|
||||||
|
expect "** Programming Finished **"
|
||||||
|
|
||||||
|
send "reset halt\n"
|
||||||
|
expect "> "
|
||||||
|
|
||||||
|
send "rp2040.core1 arp_reset assert 0\n"
|
||||||
|
expect "> "
|
||||||
|
send "rp2040.core0 arp_reset assert 0\n"
|
||||||
|
expect "> "
|
||||||
|
|
||||||
|
send "exit\n"
|
||||||
|
exit
|
||||||
3
motor-control/firmware/scripts/flash_direct.sh
Executable file
3
motor-control/firmware/scripts/flash_direct.sh
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
openocd -f interface/cmsis-dap.cfg -c "adapter speed 5000" -f target/rp2040.cfg -c "program $1 verify reset exit"
|
||||||
4
motor-control/firmware/scripts/launch_openocd.sh
Executable file
4
motor-control/firmware/scripts/launch_openocd.sh
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
sudo openocd -f interface/cmsis-dap.cfg -c "adapter speed 5000" -f target/rp2040.cfg
|
||||||
|
|
||||||
2
motor-control/firmware/scripts/launch_serial_monitor.sh
Executable file
2
motor-control/firmware/scripts/launch_serial_monitor.sh
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
minicom -D $1
|
||||||
13
motor-control/firmware/scripts/reset.exp
Executable file
13
motor-control/firmware/scripts/reset.exp
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/expect
|
||||||
|
|
||||||
|
set timeout 30
|
||||||
|
|
||||||
|
set input_file [lindex $argv 0]
|
||||||
|
|
||||||
|
spawn telnet localhost 4444
|
||||||
|
|
||||||
|
expect "> "
|
||||||
|
send "reset\n"
|
||||||
|
expect "> "
|
||||||
|
send "exit\n"
|
||||||
|
exit
|
||||||
14
motor-control/firmware/src/main.cpp
Executable file
14
motor-control/firmware/src/main.cpp
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* @file main.c
|
||||||
|
* @author AlexanderHD27
|
||||||
|
* @brief Main file of the RPi Pico Firmware for the Oscilloscope-Renderer
|
||||||
|
* @version 0.1
|
||||||
|
* @date 2024-02-15
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2024
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user