-
Notifications
You must be signed in to change notification settings - Fork 33
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
Certain sub-PAC crates build slowly #48
Comments
We're considering using DMA as part of #47, so it might make sense to tackle that crate first. |
The I'm also OK with exposing an A hypothetical IOMUXC #[repr(C)]
pub struct RegisterBlock {
sw_mux_ctl_pad_gpio_emc: [SW_MUX_CTL_PAD_GPIO_EMC; 42],
sw_mux_ctl_pad_gpio_ad_b0: [SW_MUX_CTL_PAD_GPIO_AD_B0; 16],
// Other SW_MUX_CTL registers...
sw_pad_ctl_pad_gpio_emc: [SW_PAD_CTL_PAD_GPIO_EMC; 42],
sw_pad_ctl_pad_gpio_ad_b0: [SW_PAD_CTL_PAD_GPIO_AD_B0; 16],
// Other SW_PAD_CTL registers...
} which reduces the plurality of MUX and PAD control registers. We could even simplify this further, by defining a single Might affect #46. |
Reduces the build time of `imxrt1062-dma0` from 39.1 seconds to 7.5 seconds. Also brings 108881 of code down to 21437. See #48
Just to clarify (as someone who isn't using these crates actively at the moment), do the graphs above mean that rustc takes over a minute to build a PAC for a single peripheral? |
That's right. If we take the stock iMXRT1062 SVD file and pass it through Separating each peripheral into its own crate helps. But yes, some peripherals are still taking over a minute to build. The approach proposed here is to clean-up the SVD so that #49 describes an approach that removes the |
Closing. Users should favor the imxrt-ral. |
reveals that the top 5 slowest crates to compile are...
The
iomuxc
,can3
, anddma0
sub-PACs are auto-generated from the processor SVD. There may be opportunities to reduce the amount of auto-generated code. It might lead to both faster builds and simpler PAC APIs.Propose changes to the SVD so that the three sub-PACs compile faster. Ideally, they also export a simpler API.
The text was updated successfully, but these errors were encountered: