Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
09de7c7
It compiles the old version with constexpr
Cantonplas Oct 22, 2025
8962c95
Draft of the new dma class
Cantonplas Oct 22, 2025
1d158c0
Minor change on where is the instance declared on dma.hpp
Cantonplas Oct 23, 2025
ea78eb3
limpieza de funciones, enums y structs
jorgecanut Oct 25, 2025
b8df87e
feat: distintos inscribe definidos, no creo que sea lo mejor que se p…
jorgecanut Oct 25, 2025
85db060
feat: mejor enfoque, pero no se si el correcto
jorgecanut Oct 26, 2025
52ae1a5
feat: comprueba el numero de perifericos, cambios de nombre a algunas…
jorgecanut Nov 11, 2025
3dd6ae4
feat: struct constructor, better is... logic, refactor inscribe (tech…
jorgecanut Nov 11, 2025
8ca78ee
algunas cosillas para que compile. falta conseguir pasarle las variab…
jorgecanut Nov 11, 2025
3c44a60
feat: agregar static a las variables constexpr
jorgecanut Nov 12, 2025
d2005f2
me lo quiero pasar al PC solamente, luego hago bien el commit
jorgecanut Nov 22, 2025
9d2a930
feat: agregar funciones que comprueban si el stream y la instancias y…
jorgecanut Nov 23, 2025
38fd08b
fuck constexpr, todo en runtime. feat: inscribe funciona, solo quedar…
jorgecanut Nov 24, 2025
4d0e6be
repartir entre archivos las funciones y hacer el start
jorgecanut Nov 25, 2025
cca62c8
feat: start completado, mejor estructura, todos los perifericos confi…
jorgecanut Nov 25, 2025
5212ce9
hacer funciones inline para que pueda compilar
jorgecanut Nov 29, 2025
9655dea
adc inscribe_dma now working, moved dma implementations from cpp to h…
jorgecanut Nov 30, 2025
e2af8c5
Initial structure
jorgesg82 Nov 30, 2025
3eec305
no need to have an id for instance
jorgesg82 Nov 30, 2025
fa3498b
erased no longer needed code
jorgesg82 Dec 1, 2025
c338bf8
Juntar estructura propuesta de compiletime con la clase DMA
jorgecanut Dec 2, 2025
0440eb4
cambio de nombre al antiguo dma y empiezo con la nueva infraestructur…
jorgecanut Dec 2, 2025
98a34fb
añadir funciones de configuracion del handle DMA
jorgecanut Dec 3, 2025
c1966cf
Added DigitalInput and DigitalOutput Services, and added support for …
jorgesg82 Dec 2, 2025
b245442
todo lo facil hecho, queda lo dificil (handle y global_handle)
jorgecanut Dec 3, 2025
ba25865
entry, build e instances_ ahora se rigen por stream y no instancia (l…
jorgecanut Dec 10, 2025
968eee6
se me habia olvidado desreferenciar
jorgecanut Dec 10, 2025
0826a02
modificar STLIB.hpp para meter el contexto de la DMA
jorgecanut Dec 11, 2025
4c8a7f3
throws comentados, una dma menos
jorgecanut Dec 12, 2025
fb86f46
It compiles the old version with constexpr
Cantonplas Oct 22, 2025
ac4df89
Draft of the new dma class
Cantonplas Oct 22, 2025
4b9d4ba
Minor change on where is the instance declared on dma.hpp
Cantonplas Oct 23, 2025
d085938
limpieza de funciones, enums y structs
jorgecanut Oct 25, 2025
2e9252c
feat: distintos inscribe definidos, no creo que sea lo mejor que se p…
jorgecanut Oct 25, 2025
5ad8632
feat: mejor enfoque, pero no se si el correcto
jorgecanut Oct 26, 2025
d832eec
feat: comprueba el numero de perifericos, cambios de nombre a algunas…
jorgecanut Nov 11, 2025
e39e204
feat: struct constructor, better is... logic, refactor inscribe (tech…
jorgecanut Nov 11, 2025
1634bdb
algunas cosillas para que compile. falta conseguir pasarle las variab…
jorgecanut Nov 11, 2025
81fb468
feat: agregar static a las variables constexpr
jorgecanut Nov 12, 2025
5aa3106
me lo quiero pasar al PC solamente, luego hago bien el commit
jorgecanut Nov 22, 2025
d70ab88
feat: agregar funciones que comprueban si el stream y la instancias y…
jorgecanut Nov 23, 2025
6d8552f
fuck constexpr, todo en runtime. feat: inscribe funciona, solo quedar…
jorgecanut Nov 24, 2025
dc97111
repartir entre archivos las funciones y hacer el start
jorgecanut Nov 25, 2025
d70d07f
feat: start completado, mejor estructura, todos los perifericos confi…
jorgecanut Nov 25, 2025
8f496ae
hacer funciones inline para que pueda compilar
jorgecanut Nov 29, 2025
2651dc6
adc inscribe_dma now working, moved dma implementations from cpp to h…
jorgecanut Nov 30, 2025
3996ec0
Initial structure
jorgesg82 Nov 30, 2025
d7e562c
cambio de nombre al antiguo dma y empiezo con la nueva infraestructur…
jorgecanut Dec 2, 2025
c152e48
añadir funciones de configuracion del handle DMA
jorgecanut Dec 3, 2025
61d093c
Added DigitalInput and DigitalOutput Services, and added support for …
jorgesg82 Dec 2, 2025
db10f57
todo lo facil hecho, queda lo dificil (handle y global_handle)
jorgecanut Dec 3, 2025
9a029ec
entry, build e instances_ ahora se rigen por stream y no instancia (l…
jorgecanut Dec 10, 2025
2f65b23
se me habia olvidado desreferenciar
jorgecanut Dec 10, 2025
04fb46b
modificar STLIB.hpp para meter el contexto de la DMA
jorgecanut Dec 11, 2025
1503056
eliminar que reciba el handle
jorgecanut Dec 14, 2025
7974f64
eliminar que reciba el handle
jorgecanut Dec 14, 2025
38778af
sacar streams fuera del struct
jorgecanut Dec 14, 2025
54e9082
conflictos que no deberian de salir
jorgecanut Dec 16, 2025
36e5d71
el commit que se me olvido hacer para que poder testear
jorgecanut Dec 17, 2025
c61c735
resolver conflictos
jorgecanut Dec 17, 2025
10390cf
cambios para poder utilizar none y algunos errores corregidos, queda …
jorgecanut Dec 18, 2025
f908ab5
ni me acuerdo, mañana sigo
jorgecanut Dec 18, 2025
2631a37
debugging validacion
jorgecanut Dec 22, 2025
b6b2c30
cmake cambiado para que se incluya la dma2.cpp
jorgecanut Dec 22, 2025
9e4fb9e
cambios finales, prueba funciona
jorgecanut Dec 23, 2025
0cb7a11
ahora de verdad funciona
jorgecanut Dec 23, 2025
33b4942
limpieza de rama p1
jorgecanut Dec 30, 2025
3f5b436
limpieza de rama p2
jorgecanut Dec 30, 2025
550fde1
cambiar gpio para que el static assert me deje compilar
jorgecanut Dec 30, 2025
d3432a1
feat(SPI): First implementation with most of the infrastructure and h…
FoniksFox Dec 28, 2025
f5cb029
feat(SPI): Baudrate prescaler calculation
FoniksFox Dec 28, 2025
efbf9c0
feat(SPI): Add IRQ handlers and HAL callbacks
FoniksFox Dec 28, 2025
2c95ba0
fix(SPI): Fix error spi number
FoniksFox Dec 28, 2025
a2f0639
fix(SPI): Callback handling
FoniksFox Dec 28, 2025
8ca8bde
feat(SPI): Implement API for both Master and Slave
FoniksFox Dec 28, 2025
baaf149
doc(SPI): Add tooltip comments
FoniksFox Dec 28, 2025
b0e1516
fix(SPI): Typo in ErrorHandler function name
FoniksFox Dec 28, 2025
d6595a3
fix(SPI): Move spi_instances declaration
FoniksFox Dec 28, 2025
7f0e3d8
fix(SPI): General syntax errror fixes
FoniksFox Dec 28, 2025
c090b4b
feat(SPI): Add SPI domain to ST-LIB
FoniksFox Dec 28, 2025
288e5c0
fix(SPI): Remove forgotten line
FoniksFox Dec 28, 2025
4d6f8b4
fix(SPI): General fixes to make it compile
FoniksFox Dec 29, 2025
3af6613
fix(SPI): Forgot to set up max baudrate
FoniksFox Dec 29, 2025
b86ca78
Merge remote-tracking branch 'origin/feat/DMA-updated' into refactor/SPI
FoniksFox Jan 14, 2026
101d022
Merge branch 'development' into feat/DMA-updated
FoniksFox Jan 14, 2026
1bd4fc2
feat(DMA): udpate inscribe method to return indices
FoniksFox Jan 14, 2026
2f20354
Merge branch 'feat/DMA-updated' into refactor/SPI
FoniksFox Jan 15, 2026
eb72bf6
feat(SPI): Add DMA linking
FoniksFox Jan 19, 2026
980fa9c
feat(SPI): Implement configuration API + some cleanup
FoniksFox Jan 19, 2026
ba15465
fix(SPI): Update SPI in ST-LIB.hpp
FoniksFox Jan 19, 2026
a6402af
feat(SPI): Make inscribe return size_t
FoniksFox Jan 20, 2026
5cce7e4
fix(SPI): Fix compile_error
FoniksFox Jan 22, 2026
4ce57b8
Merge remote-tracking branch 'origin/development' into refactor/SPI
FoniksFox Jan 22, 2026
72f165b
fix(SPI): Fix inscribe
FoniksFox Jan 22, 2026
8404700
fix(SPI): Fix things
FoniksFox Jan 22, 2026
2a92b34
Merge remote-tracking branch 'origin/development' into refactor/SPI
FoniksFox Jan 22, 2026
6538aff
fix(SPI): Pin A15 AF were incorrect
FoniksFox Jan 22, 2026
94ae350
Merge remote-tracking branch 'origin/development' into refactor/SPI
FoniksFox Jan 22, 2026
a6cc1e3
fix(SPI): Fix instances array
FoniksFox Jan 23, 2026
ff3cf48
Merge remote-tracking branch 'origin/development' into refactor/SPI
FoniksFox Jan 25, 2026
6d49eb3
feat(SPI): Add templated functions to acccept anything
FoniksFox Jan 26, 2026
770f323
fix(SPI): Alignments and correct frame calculations
FoniksFox Jan 27, 2026
1731518
feat(SPI): Add slave software nss interface
FoniksFox Jan 27, 2026
a559017
fix(GH_Actions): Don't upload build artifacts
FoniksFox Jan 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,12 @@ jobs:
cmake --build --preset ${{ inputs.preset }}
shell: bash

- name: Upload Build
id: upload-build-artifact
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.preset }}
path: out/build/${{ inputs.preset }}/libst-lib.a
retention-days: 7
compression-level: 0
if-no-files-found: error
# - name: Upload Build
# id: upload-build-artifact
# uses: actions/upload-artifact@v4
# with:
# name: ${{ inputs.preset }}
# path: out/build/${{ inputs.preset }}/libst-lib.a
# retention-days: 7
# compression-level: 0
# if-no-files-found: error
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ list(FILTER STLIB_HIGH_CPP_NO_ETH EXCLUDE REGEX "${STLIB_HIGH_ETH_REGEX}")
# Librería STLIB_LIBRARY
# ============================
Copy link

Copilot AI Jan 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The library type was changed from STATIC to OBJECT without explanation. OBJECT libraries behave differently than STATIC libraries - they don't create an archive file and their object files are directly linked into targets that use them. This change can affect link-time optimization, symbol visibility, and how the library is consumed by other targets. Please document why this change was made and verify it doesn't break existing build configurations or downstream projects that depend on this library.

Suggested change
# ============================
# ============================
# NOTE / NOTA:
# This target is intentionally an OBJECT library instead of STATIC.
# Historically this library was built as STATIC, but it was changed to
# OBJECT so that its object files can be directly reused by multiple
# firmware / executable targets while still being selected via generator
# expressions (CMAKE_CROSSCOMPILING, USE_ETHERNET, etc.).
#
# Compatibility:
# - Downstream projects must link against the CMake target `${STLIB_LIBRARY}`
# (e.g. `target_link_libraries(<app> PRIVATE ${STLIB_LIBRARY})`) and must
# not rely on a `.a` or `.lib` archive file name.
# - Existing build configurations that referenced the CMake target itself
# continue to work: they still see the same sources and compile options,
# only the internal representation changed from a STATIC archive to an
# OBJECT library.
# - No public interface of the library target has been changed by this
# switch; only the way CMake materializes it at link time is different.
#
# If a downstream project requires a real archive file, it should create its
# own STATIC or SHARED target that links against `${STLIB_LIBRARY}` or wraps
# its object files with `$<TARGET_OBJECTS:${STLIB_LIBRARY}>`.

Copilot uses AI. Check for mistakes.

add_library(${STLIB_LIBRARY} STATIC
add_library(${STLIB_LIBRARY} OBJECT
$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${HAL_SOURCES_COMMON}>
$<$<AND:$<BOOL:${CMAKE_CROSSCOMPILING}>,$<BOOL:${USE_ETHERNET}>>:${HAL_SOURCES_ETH}>
$<$<AND:$<BOOL:${CMAKE_CROSSCOMPILING}>,$<BOOL:${USE_ETHERNET}>>:${LWIP_SOURCES}>
Expand Down
4 changes: 3 additions & 1 deletion Inc/HALAL/HALAL.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
#include "HALAL/Models/Pin.hpp"

#include "HALAL/Models/HALconfig/HALconfig.hpp"
#include "HALAL/Models/DMA/DMA.hpp"
//#include "HALAL/Models/DMA/DMA.hpp"
#include "HALAL/Models/DMA/DMA2.hpp"

#include "HALAL/Services/DigitalOutputService/DigitalOutputService.hpp"
#include "HALAL/Services/DigitalInputService/DigitalInputService.hpp"
Expand All @@ -28,6 +29,7 @@
#include "HALAL/Services/Encoder/Encoder.hpp"
#include "HALAL/Services/EXTI/EXTI.hpp"

#include "HALAL/Models/SPI/SPI2.hpp"
#include "HALAL/Services/Communication/SPI/SPI.hpp"
#include "HALAL/Services/Communication/UART/UART.hpp"
#include "HALAL/Services/Communication/I2C/I2C.hpp"
Expand Down
2 changes: 1 addition & 1 deletion Inc/HALAL/Models/DMA/DMA.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ class DMA {
private:
static vector<Stream> available_streams;
static vector<Stream> inscribed_streams;
};
};
Loading