struct Uart {
u8 CR2,
// etc.
}
Instantiate it as 'static with some macro that defines where it lives in memory: #[mcu::loc(0x1002010)] static UART1 = Uart::new();
#[mcu::loc(0x1003010)] static UART2 = Uart::new();
And then have it bound directly to the memory locations on the MCU at compile time/link time. - 16GB -> 32GB: +$400 (+$75 retail)
- 16GB -> 64GB: +$800 (+$200 retail)
SSD: - 512GB -> 1TB: +$200 (+$40 retail)
- 512GB -> 2TB: +$600 (+$150 retail)
- 512GB -> 4TB: +$1200 (+$350 retail)
Since you can't upgrade it yourself, buyers are paying more at point of purchase, and a high end machine depreciates significantly more over time. With something like framework, you can buy a base model and upgrade it as needed, and resell value of all models is higher because they can easily be repaired and upgraded.
But in any case, what you're asking for here is a prediction of your future satisfaction with a product. It's a non-trivial problem even for the most innocuous purchases.
Will I like Lysol or Clorox wipes more? Who knows, and the reviews aren't going to beat first-hand experience in any circumstances.