-
Notifications
You must be signed in to change notification settings - Fork 27
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
rj/itcm #322
Conversation
This file contains 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
needs newer fixed cortex-m-rt 0.6.13+unreleased relevant? https://reviews.llvm.org/D81986
6 tasks
bors bot
added a commit
to rust-embedded/cortex-m-rt
that referenced
this pull request
Apr 15, 2021
323: link.x.in: put most __[se] symbols back into sections r=adamgreig a=jordens This puts most start/end address symbols back into the sections. Only `__ebss` and `__edata` are kept outside their sections so that potential user code with external libraries can inject stuff using `INSERT AFTER .bss/.data` and profit from the .bss/.data zeroing/loading mechanism. This also leads to the `__sbss` and `__veneer_base` symbols having the right section type (bss is B not D in nm). Also the trust zone start and end address are aligned to 32 bytes as per the requirements. That section does cost up to 28 byte of padding at the end of FLASH due to that alignment even if empty. But since flash is typically a multiple of 32 bytes and since the padding is at the end, there is no downside. The .rodata start is kept free for the linker to allocate it after .text. This enables users to inject sections between .text and .rodata and removes the chance to get overlapping address errors. With this the linker will by default place .rodata after .text as before. This commit also adds and exposes a few more stable address start/end symbols (__[se]uninit, __stext, __srodata) that are usefull for debugging and hooking into. See #287 (comment) for discussion of the issues and description of this compromise solution. Tested: * [x] [stm32h7 ITCM](quartiq/stabilizer#322) * [x] [sgstubs](#323 (comment)) * [x] `INSERT AFTER` for bss/data still works (#323 (comment)) Topics: * [x] `sgstubs` moved to be the last section in FLASH to minimize the impact of the 32 byte alignment. (Padding flash to 32 byte is considered benign.) * [ ] `INSERT AFTER` with binutils ld doesn't work. But that's independent of these changes. This is the `sgstubs`-in `memory.x` use case. Currently the `sgstubs` section is kept in `link.x`. Co-authored-by: Robert Jördens <[email protected]>
bors try |
tryMerge conflict. |
* master: (70 commits) Updating JSON syntax Updating trigger Adding bors timeout dual-iir: add some mqtt parameter docs changelog: spelling update lock let bors handle hitl prepare v0.5.0 release Updating code after review Adding comment, reverting change Adding sleep to HITL run Updating ping deadline Reverting unintended change Updating dependency revision Renaming interface to avoid confusion dual-iir: use InputPin re-export, rename digital_input Updating dependency dual-iir: add enable_hold, force_hold fix bench hardware: add digital input support ...
bors try |
tryBuild failed: |
bors try |
tryBuild failed: |
bors try |
tryBuild failed: |
* origin/master: (34 commits) Simplifying unit conversions Cleaning up conversion + comments Addressing review feedback Update src/hardware/dac.rs Renaming AdcSample -> AdcCode Updating float conversion Adding adc/dac code conversion utilities Simplifying settings lock Updating after review Updating delay Fixing merge Formatting Updating dependencies Fixing clippy Finalizing merge Merging lockin app functions Fixing system timer Fixing build, formatting Adding documentation Renaming files ...
bors try |
tryBuild succeeded: |
* rj/log: refine panic handler and add some logging info hitl: kill probe-run cleanly set target-cpu=cortex-m7, MSRV 1.52.0, use probe-run README: document lockin, cleanup instructions, use probe-run CHANGELOG: update README: streamline docs a bit, add probe-run update hitl script remove rtt feature use rtt logging dsp/lowpass,lockin: const generics
* origin/master: deps: fix rtt-logger->rtt-target, cleanup, bump cortex-m build(deps): bump embedded-hal from 0.2.4 to 0.2.5 Bump rtt-target from 0.2.2 to 0.3.1 Bump serde from 1.0.125 to 1.0.126 remove unused dependencies remove unused dependencies
ryan-summers
requested changes
May 27, 2021
bors merge |
bors bot
added a commit
that referenced
this pull request
May 28, 2021
322: rj/itcm r=jordens a=jordens * close #315 * would profit from cortex-m-rtic 0.6 elevating the attributes to the actual ISR thus removing the veneer Co-authored-by: Robert Jördens <[email protected]>
bors cancel |
bors merge |
Build succeeded: |
adamgreig
pushed a commit
to rust-embedded/cortex-m
that referenced
this pull request
Jan 12, 2022
323: link.x.in: put most __[se] symbols back into sections r=adamgreig a=jordens This puts most start/end address symbols back into the sections. Only `__ebss` and `__edata` are kept outside their sections so that potential user code with external libraries can inject stuff using `INSERT AFTER .bss/.data` and profit from the .bss/.data zeroing/loading mechanism. This also leads to the `__sbss` and `__veneer_base` symbols having the right section type (bss is B not D in nm). Also the trust zone start and end address are aligned to 32 bytes as per the requirements. That section does cost up to 28 byte of padding at the end of FLASH due to that alignment even if empty. But since flash is typically a multiple of 32 bytes and since the padding is at the end, there is no downside. The .rodata start is kept free for the linker to allocate it after .text. This enables users to inject sections between .text and .rodata and removes the chance to get overlapping address errors. With this the linker will by default place .rodata after .text as before. This commit also adds and exposes a few more stable address start/end symbols (__[se]uninit, __stext, __srodata) that are usefull for debugging and hooking into. See rust-embedded/cortex-m-rt#287 (comment) for discussion of the issues and description of this compromise solution. Tested: * [x] [stm32h7 ITCM](quartiq/stabilizer#322) * [x] [sgstubs](rust-embedded/cortex-m-rt#323 (comment)) * [x] `INSERT AFTER` for bss/data still works (rust-embedded/cortex-m-rt#323 (comment)) Topics: * [x] `sgstubs` moved to be the last section in FLASH to minimize the impact of the 32 byte alignment. (Padding flash to 32 byte is considered benign.) * [ ] `INSERT AFTER` with binutils ld doesn't work. But that's independent of these changes. This is the `sgstubs`-in `memory.x` use case. Currently the `sgstubs` section is kept in `link.x`. Co-authored-by: Robert Jördens <[email protected]>
Open
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
process()
task from ITCM #315