Skip to content

STM32H735 yaml fixes #677

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 3 commits into from
Jul 3, 2022
Merged

Conversation

TomDeRybel
Copy link

@TomDeRybel TomDeRybel commented Dec 8, 2021

This pull request is related to issue: #670

In this pull request are a bunch of fixes for the STM32H735-family of parts. This mainly concerns the stm32h735.yaml file.

Note: This is my first time (attempting) to contribute to stm32-rs, and there are several TODO's in the code, asking questions. This pull request is likely not good enough as-is.

What it does:

  • There were about 19 missing interrupts. These were all added, though several are left commented-out because I'm uncertain on how to integrate them properly. (To find these missing interrupts, I manually compared the entire interrupt vector table (Table 140) in RM0468 to what I could find in the mod.rs for the device.)
  • There were several naming discrepancies. These were aligned to RM0468.
  • Entire peripherals were missing. I have added CORDIC and FMAC (as I'll be using those in the future, and will thus be able to test properly). There are more to be done, as well as variants on others (such as I2C5, UART9, USART10).
  • The USB OTG-HS interrupts are also fixed, but not satisfactory. They should be assigned under the OTG-HS block, for consistency, but I don't know how to do that properly.

I hope this can be of some use.

@github-actions
Copy link

github-actions bot commented Dec 8, 2021

Memory map comparison

@newAM newAM added the stm32h7 label Dec 8, 2021
@adamgreig
Copy link
Member

adamgreig commented Dec 10, 2021

Thanks for this PR! I'll need a bit of time to review it properly but I can give you some pointers first:

  • you might find the svd interrupts tool useful (part of svdtools), it outputs a sorted list of interrupts for a specific svd file (original or patched), and shows which are are missing in sequence order too. It also shows which peripheral an interrupt is associated with.
# TODO: The blocks that are commented-out below should either go into an existing
#       block, or have a new block made for them. It's probably better that I 
#       don't improvise...

By "block" do you mean in the YAML file or an SVD peripheral? The peripherals probably already exist in the SVD so long as you use the right name.

@TomDeRybel
Copy link
Author

Thank you for the tips and positive response. Working on these few definitions in the PR really drove home just how important this crate really is to get anything to work right with these processors, and the amount of work that has already been done to enable this.

Unfortunately, I seem to have used the word "block" to mean multiple things, depending on the context.

What I meant is that some of the peripheral modifications I included in the PR YAML file, I could not assign to a particular, pre-existing peripheral, and they were thus left commented-out. This is either because:

  • I couldn't find the correct, pre-existing name. Or was too unsure about it.
  • There was no pre-existing name, but it seemed closely related to existing peripheral family (eg: USART10, I2C5) and probably needs to be included under their umbrella somehow.

Tom De Rybel and others added 3 commits July 3, 2022 23:29
- Added many missing interrupts
- Added the CORDIC and FMAC periperals
- Resolved a number of naming discrepancies: eg: TIM_CC -> TIM1_CC
@adamgreig adamgreig force-pushed the stm32h735_yaml_fixes branch from 436a1cf to 44b241b Compare July 3, 2022 23:08
Copy link
Member

@adamgreig adamgreig left a comment

Choose a reason for hiding this comment

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

Thanks for this PR! I've gone through the changes which all look good. I rebased to fix merge conflicts with master and tidied up the yaml file a little (enabled a couple of interrupts, removed some that have since been added separately, removed trailing whitespace, etc).

bors r+

@github-actions
Copy link

github-actions bot commented Jul 3, 2022

Memory map comparison

@bors
Copy link
Contributor

bors bot commented Jul 3, 2022

Build succeeded:

@bors bors bot merged commit 140a4a8 into stm32-rs:master Jul 3, 2022
@TomDeRybel
Copy link
Author

Thank you! Happy to see that it was useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy