Skip to content
Merged
Show file tree
Hide file tree
Changes from 84 commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
384e079
feat(MdmaPacket): Implement API and base structure, lacks integration…
FoniksFox Nov 6, 2025
e57cee7
feat(MdmaPacket): Drop support for containers and add mdma instance a…
FoniksFox Nov 6, 2025
3c79d80
feat(MdmaPacket): Now can specify Mdma instance
FoniksFox Nov 6, 2025
14fe90b
feat(MdmaPacket): MDMA manages buffers, can now change mdma instance
FoniksFox Nov 6, 2025
0f96017
Fist draft of the MDMA
Cantonplas Nov 6, 2025
714eeaa
Some fixes, there are some problems with linking i think
Cantonplas Nov 6, 2025
31ac058
Second draft of the mdma, now creates linked list (I think?)
Cantonplas Nov 6, 2025
5adf7d4
Fixed some stuff :)
Cantonplas Nov 7, 2025
b1cd562
More changes, i think the api is finally done (hope so)
Cantonplas Nov 7, 2025
06fa58c
More changes, this fucking sucks
Cantonplas Nov 10, 2025
6d527ee
feat(Promises): Add Arena memory pool implementation
FoniksFox Nov 15, 2025
4d94ea3
fix(Primises): Remove move semantics from Arena class, since they can…
FoniksFox Nov 15, 2025
f676757
feat(Promises): Implement Promises with fixed-size arenas
FoniksFox Nov 15, 2025
4c40984
chore(Promises): Add Promises to HALAL.
FoniksFox Nov 15, 2025
b4df6ca
fix(Promises): Fix circular dependency and incorrect RingBuffer usage
FoniksFox Nov 15, 2025
7b775b0
fix(Promises): Fix possible race condition in destroy method
FoniksFox Nov 15, 2025
fb50fe3
fix(Promises): Fix all and any methods to check correctly for existin…
FoniksFox Nov 15, 2025
fa61a28
Merge branch 'feat/Promises' of https://github.com/HyperloopUPV-H8/ST…
FoniksFox Nov 15, 2025
56912d3
style(Promises): Double free detection in Arena is now in another if
FoniksFox Nov 15, 2025
0771a11
fix(Promises): Use atomic operations for isResolved flag
FoniksFox Nov 15, 2025
8e2297c
fix(Promises): Add critical sections and maximum updates per cycle
FoniksFox Nov 15, 2025
93e8c7a
MDMA v1.0 baby
Cantonplas Nov 15, 2025
ffa7ebc
Merge remote-tracking branch 'origin/feat/Promises' into feat/MDMA
Cantonplas Nov 15, 2025
ee32863
Merged the promises, testing on course
Cantonplas Nov 15, 2025
2749970
fix(Promises): Revert mistake change in sntp_opts.h in commit b4df6ca…
FoniksFox Nov 15, 2025
440bcec
Fixes
Cantonplas Nov 15, 2025
abd7dec
style(Promises): Make maximums overwrittable in Promises.hpp
FoniksFox Nov 15, 2025
d74809a
fix(Promises): Ensure no memroy leaks in Promise::all and Promise::any
FoniksFox Nov 15, 2025
c078faf
fix(Promises): Disable interrupts when adding to ready list
FoniksFox Nov 15, 2025
7101a17
fix(Promises): Remove Promise::update() from HALAL::start()
FoniksFox Nov 15, 2025
bc7b36f
feat(Promises): Add Stack class utility, doesn't use heap
FoniksFox Nov 15, 2025
930c31f
feat(Promises): Use Stack for Arena (better locality), and add iterat…
FoniksFox Nov 15, 2025
0fd30a8
Merge branch 'feat/Promises' of https://github.com/HyperloopUPV-H8/ST…
FoniksFox Nov 15, 2025
17de1f9
feat(Promises): Update Promises handling to avoid synchronization iss…
FoniksFox Nov 15, 2025
f86c7ab
fix(Promises): Defer release of chained promises in update method
FoniksFox Nov 15, 2025
132960d
fix(Promises): Defer chained promise cleanup to update
FoniksFox Nov 15, 2025
881d87a
Packets now work, merge_packets now on progress
Cantonplas Nov 17, 2025
9f5a3d2
Merge remote-tracking branch 'origin/feat/Promises' into feat/MDMA
Cantonplas Nov 17, 2025
9937ec5
Promises to be tested, the rest works just fine :p
Cantonplas Nov 17, 2025
3717503
Now checking if the mdma_id exists
Cantonplas Nov 17, 2025
a7f1408
Copy paste typo, oops
Cantonplas Nov 17, 2025
ea8d642
Now using array for the instances instead of unordered_maps
Cantonplas Nov 20, 2025
7009edb
feat(Promises): Improve Stack
FoniksFox Nov 21, 2025
dd26669
style(Promises): rename Arena to Pool and apply some style fixes
FoniksFox Nov 21, 2025
8415bb1
fix(Promises): Fix Pool pointer checing
FoniksFox Nov 21, 2025
bd3eb7f
feat(Promises): Fix Stack naming collision
FoniksFox Nov 21, 2025
9e3ccb7
feat(Promises): Use bitset in Pool. Not using bitmap to allow larger …
FoniksFox Nov 21, 2025
5a0bf6c
chore(Promises): Add Stack and Pool to CppUtils
FoniksFox Nov 21, 2025
45df687
fix(Promises): Change naming in Promises to acutally use Pool, instea…
FoniksFox Nov 21, 2025
7894b59
fix(Promises): Bug fixes and changes in the releasing to ensure prope…
FoniksFox Nov 23, 2025
97db984
Merge branch 'development' into feat/Promises
FoniksFox Nov 23, 2025
bfb28ad
fix(Promises): Avoid unnecessary copies of elements in Stack
FoniksFox Nov 23, 2025
bf03a1e
fix(Promises): Fix pointer arithmetic in Pool
FoniksFox Nov 23, 2025
69a0970
doc(Promises): Add some better comments in Promise
FoniksFox Nov 23, 2025
bede8e6
feat(Promises): Add null checks in Promise chaining and combinators
FoniksFox Nov 23, 2025
5f89522
fix(Promises): Fix signed and unsigned comparison in Pool
FoniksFox Nov 23, 2025
2ce52cb
feat(Promises): Add optimized bitmap iteration for Pool class when S …
FoniksFox Nov 25, 2025
52cbec9
feat(Promises): Add Promise::update() call in ST-LIB main update loop
FoniksFox Nov 25, 2025
6ebb5ab
fix(Promises): Include Promises header in HALAL.hpp whith SIM_ON
FoniksFox Nov 25, 2025
866a39c
feat(Promises): Add wait() method for easier busy-waiting, to use onl…
FoniksFox Nov 27, 2025
37acef8
Merge branch 'feat/Promises' into feat/MdmaPacket
FoniksFox Nov 27, 2025
015093a
Merge remote-tracking branch 'origin/feat/MDMA' into feat/MdmaPacket
FoniksFox Nov 27, 2025
4498203
Merge remote-tracking branch 'origin/development' into feat/MdmaPacket
FoniksFox Nov 27, 2025
4fb9c67
refactor(MdmaPacket): Make MdmaPacket inherit directly from Packet an…
FoniksFox Nov 27, 2025
38fafa4
chore(MdmaPacket): Add MdmaPacket to HALAL
FoniksFox Nov 27, 2025
adb6ccd
Merge branch 'feat/Promises' into MDMA-linked-list-proposal
FoniksFox Dec 1, 2025
644c34e
feat(MDMA)!: Make MDMA use a pool of linked list nodes managed extern…
FoniksFox Dec 1, 2025
257c199
Merge remote-tracking branch 'origin/development' into MDMA-linked-li…
FoniksFox Dec 1, 2025
e870d55
fix(MDMA): Fix bugs with instance
FoniksFox Dec 1, 2025
ef95c66
fix(MDMA): Too many linked list nodes, not enough memory
FoniksFox Dec 1, 2025
343c100
Merge branch 'feat/MdmaPacket' into MDMA-linked-list-proposal
FoniksFox Dec 2, 2025
42df50f
feat(MdmaPacket): Make MdmaPacket compatible with MDMA linked list tr…
FoniksFox Dec 3, 2025
db7596c
fix(MDMA): Fixes
FoniksFox Dec 3, 2025
25edffc
Working on making the mdma work
Cantonplas Dec 8, 2025
79bbcd5
Still not working the mdma packets
Cantonplas Dec 8, 2025
ee27a82
Esto es peor que el sida de testear
Cantonplas Dec 8, 2025
61d4f34
Work to be done, the auxilary buffer recieves data but crashes when i…
Cantonplas Dec 8, 2025
6571b3b
Oops forgot to comment a thing :p
Cantonplas Dec 8, 2025
5ab710e
Now working yipeee
Cantonplas Dec 8, 2025
922379c
mdma V2.0
Cantonplas Dec 11, 2025
be515a2
Some errors fixed
Cantonplas Dec 11, 2025
815ba89
Cosas
Cantonplas Dec 11, 2025
76f1df8
Changed Promise to bool pointer, and now working properly
Cantonplas Dec 14, 2025
7ccf5dc
Deleted promises and mdma packets from this branch
Cantonplas Dec 14, 2025
daf47b9
Now it compiles oops :p
Cantonplas Dec 14, 2025
3bae59f
Some suggested changed changes donde, ty clanker
Cantonplas Dec 14, 2025
80d49aa
Update Src/HALAL/Models/MDMA/MDMA.cpp
Cantonplas Dec 14, 2025
cd37953
Forgot to add the false condition to the data transfer
Cantonplas Dec 14, 2025
0913ba2
Damn
Cantonplas Dec 14, 2025
67f5322
Coño con los conflictos
Cantonplas Dec 14, 2025
904b815
Fix condition to check if instance.done is not null, now it generates…
Cantonplas Dec 15, 2025
6643561
MDMA packet bug fixed, now if you change the destination the bus will…
Cantonplas Dec 15, 2025
291fca4
Change MDMA node alignment and transfer settings
Cantonplas Dec 15, 2025
2188ccb
Remove NODES_MAX definition from MDMA.hpp
Cantonplas Dec 17, 2025
59cac34
Now it compiles jeje
Cantonplas Dec 23, 2025
8a3f0a0
Merge remote-tracking branch 'origin/development' into feat/MDMA2
Cantonplas Jan 16, 2026
c219b3b
Fixed pr
Cantonplas Jan 16, 2026
5818670
AL final stack lo necesito
Cantonplas Jan 16, 2026
3bb10cb
Al final stack lo necesito
Cantonplas Jan 16, 2026
0991d62
Merge branch 'feat/MDMA2' of https://github.com/Hyperloop-UPV/ST-LIB …
Cantonplas Jan 16, 2026
d427563
Que lio de commits, pero solucionado
Cantonplas Jan 16, 2026
5b75ec3
Eliminated useless hashmaps and added type adaptative nodes
Cantonplas Jan 21, 2026
cc7b102
Merge remote-tracking branch 'origin/development' into feat/MDMA2
Cantonplas Jan 21, 2026
bd6fc32
Merge remote-tracking branch 'origin/development' into feat/MDMA2
Cantonplas Jan 22, 2026
cda2f9f
Made transfer nodes D1_NC
Cantonplas Jan 22, 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
91 changes: 88 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,94 @@
"C_Cpp.clang_format_sortIncludes": true,
"C_Cpp.intelliSenseCacheSize": 0,
"files.associations": {
"mem.h": "c",
"tinydir.h": "c",
"dirent.h": "c"
"any": "cpp",
"array": "cpp",
"atomic": "cpp",
"barrier": "cpp",
"bit": "cpp",
"bitset": "cpp",
"cctype": "cpp",
"cfenv": "cpp",
"charconv": "cpp",
"chrono": "cpp",
"cinttypes": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"codecvt": "cpp",
"compare": "cpp",
"complex": "cpp",
"concepts": "cpp",
"condition_variable": "cpp",
"coroutine": "cpp",
"csetjmp": "cpp",
"csignal": "cpp",
"cstdarg": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cuchar": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"deque": "cpp",
"forward_list": "cpp",
"list": "cpp",
"map": "cpp",
"set": "cpp",
"string": "cpp",
"unordered_map": "cpp",
"unordered_set": "cpp",
"vector": "cpp",
"exception": "cpp",
"expected": "cpp",
"algorithm": "cpp",
"functional": "cpp",
"iterator": "cpp",
"memory": "cpp",
"memory_resource": "cpp",
"numeric": "cpp",
"optional": "cpp",
"random": "cpp",
"ratio": "cpp",
"regex": "cpp",
"source_location": "cpp",
"string_view": "cpp",
"system_error": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp",
"fstream": "cpp",
"future": "cpp",
"initializer_list": "cpp",
"iomanip": "cpp",
"iosfwd": "cpp",
"iostream": "cpp",
"istream": "cpp",
"latch": "cpp",
"limits": "cpp",
"mutex": "cpp",
"new": "cpp",
"numbers": "cpp",
"ostream": "cpp",
"ranges": "cpp",
"scoped_allocator": "cpp",
"semaphore": "cpp",
"shared_mutex": "cpp",
"span": "cpp",
"spanstream": "cpp",
"sstream": "cpp",
"stacktrace": "cpp",
"stdexcept": "cpp",
"stop_token": "cpp",
"streambuf": "cpp",
"syncstream": "cpp",
"thread": "cpp",
"typeindex": "cpp",
"typeinfo": "cpp",
"valarray": "cpp",
"variant": "cpp"
}
}

3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ if(CMAKE_CROSSCOMPILING)
${HAL_DRIVER_SRC_DIR}/stm32h7xx_hal_gpio.c
${HAL_DRIVER_SRC_DIR}/stm32h7xx_hal_exti.c

# MDMA
${HAL_DRIVER_SRC_DIR}/stm32h7xx_hal_mdma.c

# ADC
${HAL_DRIVER_SRC_DIR}/stm32h7xx_hal_adc.c
${HAL_DRIVER_SRC_DIR}/stm32h7xx_hal_adc_ex.c
Expand Down
2 changes: 2 additions & 0 deletions Inc/C++Utilities/CppUtils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

#include "CppImports.hpp"
#include "RingBuffer.hpp"
#include "Stack.hpp"
#include "Pool.hpp"


namespace chrono = std::chrono;
Expand Down
Loading
Loading