-
-
Notifications
You must be signed in to change notification settings - Fork 0
Unify CMSIS to V5.9.0 In /Lib/Vendor/CMSIS
#126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Add centralized CMSIS Core 5 headers (upstream 5.9.0 evaluated) - Include ST device headers for G4 (v1.2.5), L4 (v1.7.4), U5 (v1.4.1) - Create CMSIS_5_CORE interface target in cmsis_5.cmake - Single include tree for all STM32 families - Comprehensive README documenting version matrix and usage
- STM32G474xE: HAL/LL drivers for G4 series - STM32L476xG: HAL/LL drivers for L4 series - STM32U5A9xJ: HAL/LL drivers for U5 series Reorganized from previous Drivers/stm32-hal-driver structure. Keeps HAL separate from CMSIS (now centralized).
- All platforms now link CMSIS_5_CORE instead of local CMSIS - Update HAL include paths to STM32_HAL_LL directory - Add Lib/Vendor/CMSIS_5 subdirectory in root CMakeLists.txt - Update PlatformTemplate with new structure
- Delete STM32G474xE/Drivers/CMSIS (now in Lib/Vendor/CMSIS_5) - Delete STM32L476xG/Drivers/CMSIS (now in Lib/Vendor/CMSIS_5) - Delete STM32U5A9xJ/Drivers/CMSIS (now in Lib/Vendor/CMSIS_5) - Delete per-family Drivers/stm32-hal-driver (moved to STM32_HAL_LL) Consolidates CMSIS into single vendor directory; HAL/LL drivers reorganized per-platform without CMSIS duplication.
Contributor
Author
|
@JayWango Could you please verify that |
Contributor
Author
|
A similar operation could be down for HAL/LL libraries which would help with cleaning up |
8 tasks
Signed-off-by: Daniel Hansen <105574022+dchansen06@users.noreply.github.com>
Contributor
Author
|
Everything but L4 has tested and passed so I will merge and if we come across problems we can fix then |
dchansen06
added a commit
that referenced
this pull request
Dec 2, 2025
# Demystify `Platform` ## Problem and Scope `Platform` contains HAL, LL, CMSIS, linker scripts, startup scripts, compiler flags, and linker flags. This leads to a large block of obtuse code that does not support easy modularization. ## Description Move CMSIS, HAL, and LL to `Vendor` since they are libraries and package each as appropriate as a separate CMake `INTERFACE` ## Gotchas and Limitations None, simpler to make new boards and cleaner for sub-groupings ## Testing - [x] HOOTL testing - [ ] HITL testing - [x] Human tested ### Testing Details - [x] `G4BLINKY` - [x] `G4HELLO` - [x] `U5BLINKY` - [ ] `L4BLINKY` - [x] Current version of `ECU` ## Larger Impact Makes code easier to maintain ## Additional Context and Ticket Builds off of #126, plan to merge #126 before #128 for ease of upgrade paths Resolves #127 --------- Signed-off-by: Daniel Hansen <105574022+dchansen06@users.noreply.github.com> Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
dchansen06
added a commit
that referenced
this pull request
Dec 4, 2025
# Unify CMSIS Together ## Problem and Scope Each `Lib/Platform/<CHIP>` has its own CMSIS library, which are all directly from Arm and have different versions and different behavior, and also copies upwards of 5 MiB each time It also does not scale well for including other CMSIS functionalities ## Description Implement a `CMSIS_5_CORE` vendor library that can be linked to from within a given platform that contains all of the CMSIS functionalities ## Gotchas and Limitations Cannot upgrade to CMSIS 6 due to STM support ## Testing - [x] HOOTL testing - [ ] HITL testing - [x] Human tested ### Testing Details Compiles and flashes - [x] Nucleo-G474RE projects - [x] `G4BLINKY` - [x] `G4HELLO` - [x] `ECU` - [x] STM32U5 - [x] `U5BLINKY` - [ ] STM32L4 - [ ] `L4BLINKY` ## Larger Impact Extensible and modular things are nice ## Additional Context and Ticket Resolves #115 --------- Signed-off-by: Daniel Hansen <105574022+dchansen06@users.noreply.github.com> Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
dchansen06
added a commit
that referenced
this pull request
Dec 4, 2025
# Demystify `Platform` ## Problem and Scope `Platform` contains HAL, LL, CMSIS, linker scripts, startup scripts, compiler flags, and linker flags. This leads to a large block of obtuse code that does not support easy modularization. ## Description Move CMSIS, HAL, and LL to `Vendor` since they are libraries and package each as appropriate as a separate CMake `INTERFACE` ## Gotchas and Limitations None, simpler to make new boards and cleaner for sub-groupings ## Testing - [x] HOOTL testing - [ ] HITL testing - [x] Human tested ### Testing Details - [x] `G4BLINKY` - [x] `G4HELLO` - [x] `U5BLINKY` - [ ] `L4BLINKY` - [x] Current version of `ECU` ## Larger Impact Makes code easier to maintain ## Additional Context and Ticket Builds off of #126, plan to merge #126 before #128 for ease of upgrade paths Resolves #127 --------- Signed-off-by: Daniel Hansen <105574022+dchansen06@users.noreply.github.com> Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
3 tasks
dchansen06
added a commit
that referenced
this pull request
Dec 4, 2025
# `CMAKE.md` Documentation Update ## Problem and Scope Lots of changes with #128 and #126 among others, out of date ## Description Updates the documentation ## Gotchas and Limitations None ## Testing - [ ] HOOTL testing - [ ] HITL testing - [x] Human tested ### Testing Details Renders correctly, looks accurate ## Larger Impact Provides updated documentation ## Additional Context and Ticket Not updated since the first commit ec304fe
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
2 PRIORITY
Important and a priority, but less than URGENT
Big Fry
Something that is complex and/or large
Boards
Related to or involving any physical boards
CMake
Anything related to or dealing with CMake
Documentation
Improvements or additions to documentation
Enhancement
New feature or request
Help | Review
Extra attention is needed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Unify CMSIS Together
Problem and Scope
Each
Lib/Platform/<CHIP>has its own CMSIS library, which are all directly from Arm and have different versions and different behavior, and also copies upwards of 5 MiB each timeIt also does not scale well for including other CMSIS functionalities
Description
Implement a
CMSIS_5_COREvendor library that can be linked to from within a given platform that contains all of the CMSIS functionalitiesGotchas and Limitations
Cannot upgrade to CMSIS 6 due to STM support
Testing
Testing Details
Compiles and flashes
G4BLINKYG4HELLOECUU5BLINKYL4BLINKYLarger Impact
Extensible and modular things are nice
Additional Context and Ticket
Resolves #115