Working compilation and almost every headers detection.

This commit is contained in:
Ulysse Cura 2026-09-20 21:28:29 +02:00
parent fd84d816e6
commit 96490c28ce
8 changed files with 43 additions and 56 deletions

8
.ccls
View File

@ -1,7 +1 @@
arm-none-eabi-gcc gcc-arm-none-eabi
# Headers
-Isrc
-Isrc/wifi/headers
-Ibuild/generated/pico_base
# Flags

View File

@ -1,5 +0,0 @@
{
"nixEnvSelector.suggestion": false,
"nixEnvSelector.nixFile": "${workspaceFolder}/shell.nix",
"nixEnvSelector.useFlakes": false
}

40
.vscode/tasks.json vendored
View File

@ -1,12 +1,14 @@
{ {
"version": "2.0.0",
"tasks": [ "tasks": [
{ {
"label": "CMake & Make", "label": "Build",
"detail": "Build project",
"type": "shell", "type": "shell",
"command": "cmake -H. -Bbuild -DCMAKE_EXPORT_COMPILE_COMMANDS=YES && make -j$(nproc) -C build",
"args": [
],
"group": "build", "group": "build",
"command": "mkdir -p build && cd build && cmake ../ && make",
"presentation": { "presentation": {
"echo": true, "echo": true,
"reveal": "always", "reveal": "always",
@ -17,12 +19,31 @@
} }
}, },
{ {
"label": "CMake & Make & Flash", "label": "Clean",
"detail": "Clean build directory and executable",
"type": "shell", "type": "shell",
"command": "rm -rf build",
"args": [
],
"group": "build",
"presentation": {
"echo": false,
"reveal": "never",
"focus": false,
"panel": "shared",
"showReuseMessage": false,
"clear": true
}
},
{
"label": "Flash",
"detail": "Flash executable",
"type": "shell",
"dependsOn": "Build",
"command": "cd build && make Flash",
"args": [
],
"group": "build", "group": "build",
"command": "mkdir -p build && cd build && cmake ../ && make Flash",
"presentation": { "presentation": {
"echo": true, "echo": true,
"reveal": "always", "reveal": "always",
@ -32,6 +53,5 @@
"clear": true "clear": true
} }
} }
], ]
"version": "2.0.0"
} }

View File

@ -1,38 +1,40 @@
cmake_minimum_required(VERSION 3.13) cmake_minimum_required(VERSION 3.13)
# Définir explicitement la carte comme Pico W # Explicitely define board
set(PICO_BOARD pico_w) set(PICO_BOARD pico_w)
if(NOT DEFINED PICO_BOARD) if(NOT DEFINED PICO_BOARD)
add_definitions(-DPICO_BOARD=${PICO_BOARD}) add_definitions(-DPICO_BOARD=${PICO_BOARD})
endif() endif()
# Need to include pico-sdk cmake support. Must happen before project. # Include pico-sdk cmake support
include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake) include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake)
project(PicoW_UDP_Tests C CXX ASM) project(PicoW_UDP_Tests C CXX ASM)
set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD 17)
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
pico_sdk_init() pico_sdk_init()
# libs # Sources
add_subdirectory(PicoW_UDP)
add_executable(PicoW_UDP_Tests add_executable(PicoW_UDP_Tests
src/main.c src/main.c
) )
# Libs
add_subdirectory(PicoW_UDP)
target_link_libraries(PicoW_UDP_Tests target_link_libraries(PicoW_UDP_Tests
pico_stdlib pico_stdlib
PicoW_UDP PicoW_UDP
) )
# Configuration du stdio # Stdio configuration
pico_enable_stdio_usb(PicoW_UDP_Tests 1) pico_enable_stdio_usb(PicoW_UDP_Tests 1)
pico_enable_stdio_uart(PicoW_UDP_Tests 1) pico_enable_stdio_uart(PicoW_UDP_Tests 1)
# Output
pico_add_extra_outputs(PicoW_UDP_Tests) pico_add_extra_outputs(PicoW_UDP_Tests)
# Flash target
add_custom_target(Flash add_custom_target(Flash
DEPENDS PicoW_UDP_Tests DEPENDS PicoW_UDP_Tests
COMMAND picotool load -f ${PROJECT_BINARY_DIR}/PicoW_UDP_Tests.uf2 COMMAND picotool load -f ${PROJECT_BINARY_DIR}/PicoW_UDP_Tests.uf2

@ -1 +1 @@
Subproject commit e305fc0b4843068acbb7880f1dd2dc7cd8fb2640 Subproject commit be22ab1cf48bd53b05e7380ab248f4a2749f2870

1
compile_commands.json Symbolic link
View File

@ -0,0 +1 @@
build/compile_commands.json

View File

@ -1,24 +0,0 @@
with import <nixpkgs> {};
let
# Needs to be synced past
# https://github.com/NixOS/nixpkgs/pull/321786
local-pico-sdk = pkgs.pico-sdk.override {
withSubmodules = true;
};
in
pkgs.mkShell {
buildInputs = with pkgs; [
gcc-arm-embedded
local-pico-sdk
picotool
cmake python3 # build requirements for pico-sdk
udisks # Interact with bootloader filesystem
tio # terminal program to interface with serial
];
shellHook = ''
export PICO_SDK_PATH=${local-pico-sdk}/lib/pico-sdk
export NIX_CFLAGS_COMPILE="-isystem $(shopt -s globstar && echo $PICO_SDK_PATH/lib/**/include | sed "s/ / -isystem /g") -isystem $(shopt -s globstar && echo $PICO_SDK_PATH/src/**/include | sed "s/ / -isystem /g") -isystem $(shopt -s globstar && echo $PICO_SDK_PATH/lib/**/src | sed "s/ / -isystem /g") $NIX_CFLAGS_COMPILE"
unset TEMP TMP TEMPDIR TMPDIR
'';
}

View File

@ -1,6 +1,5 @@
// Necessary includes from the Pico SDK
#include <pico/stdio.h>
#include <stdio.h> #include <stdio.h>
#include <pico/stdio.h>
#include <pico/cyw43_arch.h> #include <pico/cyw43_arch.h>
#include <lwip/udp.h> #include <lwip/udp.h>
#include <time.h> #include <time.h>