-
Notifications
You must be signed in to change notification settings - Fork 3k
CMSIS: update to CMSIS 5.7.0 #12949
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
CMSIS: update to CMSIS 5.7.0 #12949
Conversation
As they were applied on the different code base (moved files), we remove them and reapply locally manually and add new sha.
(cherry picked from commit 6a6e3ac)
- TF-M v8m secure-side implements their own TZ context APIs so need to avoid building the Mbed implementation. (cherry picked from commit d3f7abd)
In case of ARM compiler, idle and timer thread stack though assigned to `.bss.os` section since not zero initialized are part of `data` section. In this commit, we are moving stacks of idle and timer thread to bss section and thereby saving ROM space.
CMSIS repo does not support pre-processor defines, hence multiple assembly files are added for secure/non-secure and floating point tools. Mbed OS tools support assembly file pre-processing, but the build system does not support multiple assembly files for each target, hence updating the assembly files. 1. Patch RTX so irq_cm4f.S files work with no FPU targets 2. Patch RTX so irq_armv8mml.S files to work with and without FPU 2. Patch RTX so irq_armv8mml.S and irq_armv8mbl.S files to work with secure and non-secure builds
cherry pick otherwise fails because the sources were moved under rtos/source. I manually resolved these patches. For the future, lets use these newer sha that should work.
This needs testing that a script will actually find new SHAs there.
I however used git patch/am to apply patches (after updating the paths in each). I don't have this "cherry picked from commit ..." in the commit messages. I can see our script uses it so might resolution might not be correct way then for the future. I'll test the script to update to another sha to see if it passes. |
(cherry picked from commit 6a6e3ac)
- TF-M v8m secure-side implements their own TZ context APIs so need to avoid building the Mbed implementation. (cherry picked from commit d3f7abd)
(cherry picked from commit 08ab8cc)
(cherry picked from commit dd21ea0)
In case of ARM compiler, idle and timer thread stack though assigned to `.bss.os` section since not zero initialized are part of `data` section. In this commit, we are moving stacks of idle and timer thread to bss section and thereby saving ROM space. (cherry picked from commit 9549fff)
CMSIS repo does not support pre-processor defines, hence multiple assembly files are added for secure/non-secure and floating point tools. Mbed OS tools support assembly file pre-processing, but the build system does not support multiple assembly files for each target, hence updating the assembly files. 1. Patch RTX so irq_cm4f.S files work with no FPU targets 2. Patch RTX so irq_armv8mml.S files to work with and without FPU 2. Patch RTX so irq_armv8mml.S and irq_armv8mbl.S files to work with secure and non-secure builds (cherry picked from commit 96e0689)
I was able to update to the latest release (my branch was older), here it is the review: https://github.com/0xc0170/mbed-os/pull/new/feature_CMSIS_5_a65b7c9a3 I can push these here and would be updated to the latest CMSIS 5 we have (I would leave both updates as one is to fix conflicts with renames and the latest one is using the updated shas). Let me know what you think |
Updated. I updated to the newer version here: the latest CMSIS 5 release. It might be confusing there are two updates but one is served as a basement after our source/ restructure and t he other one is on top of that. I could possibly just resolve to the latest but would need need to go through the conflict manual resolution for multiple files once again. Having this sequence here, we just update twice. Let me know what you think. I updated the readme as well to be more clear what it does. |
61812ff
to
d04b403
Compare
CI restarted |
Test run: FAILEDSummary: 1 of 3 test jobs failed Failed test jobs:
|
will review failures again 😞 |
This reverts commit 606ccbc.
define __PROGRAM_START so we use own startup as AD had it defined, this fixes the conflicts with CMSIS_5 update (they introduced low level init).
Don't use CMSIS low level startup
Don't use CMSIS low level startup
We need a linker script as it was. As files update in the future, should be compatible with newer CMSIS core.
CI restarted |
Test run: FAILEDSummary: 1 of 3 test jobs failed Failed test jobs:
|
ci restarted |
Test run: SUCCESSSummary: 6 of 6 test jobs passed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Summary of changes
Fixes #12568
There are couple of fixes here:
Impact of changes
Migration actions required
Documentation
Pull request type
Test results
Reviewers