STM32G43X ベアメタルRustでFLASHへのデータ保存
STM32G43X ベアメタルRustでFLASHへのデータ保存ができるようになるまでの記録
作業環境
- STM32G431C6T6
- rustc 1.68.0
- cortex-m = "0.6.0"
- cortex-m-rt = "0.6.10"
- cortex-m-semihosting = "0.3.3"
- [dependencies.stm32g4]
features = ["stm32g431", "rt"]
version = "0.14.0"
FLASHサイズは
6 = 32 Kbyte
[Datasheet - STM32G474xB STM32G474xC STM32G474xE]
FLASHサイズ32 KbyteのSTM32G431の場合のアドレス
0x0800 0000 - 0x0800 07FF 2K Page0
0x0800 0800 - 0x0800 0FFF 2K Page1
0x0800 1000 - 0x0800 17FF 2K Page2
0x0800 1800 - 0x0800 1FFF 2K Page3
0x0800 2000 - 0x0800 27FF 2K Page4
0x0800 2800 - 0x0800 2FFF 2K Page5
0x0800 3000 - 0x0800 37FF 2K Page6
0x0800 3800 - 0x0800 3FFF 2K Page7
0x0800 4000 - 0x0800 47FF 2K Page8
0x0800 4800 - 0x0800 4FFF 2K Page9
0x0800 5000 - 0x0800 57FF 2K Page10
0x0800 5800 - 0x0800 5FFF 2K Page11
0x0800 6000 - 0x0800 67FF 2K Page12
0x0800 6800 - 0x0800 6FFF 2K Page13
0x0800 7000 - 0x0800 77FF 2K Page14
0x0800 7800 - 0x0800 7FFF 2K Page15
2Kの大きさ
0 | 4 | 8 | C | |
---|---|---|---|---|
0x000 | 32bit | 32bit | 32bit | 32bit |
0x010 | 32bit | 32bit | 32bit | 32bit |
0x000-0x0F0(16個) | ... | |||
0x100 | 32bit | 32bit | 32bit | 32bit |
0x800 | 32bit | 32bit | 32bit | 32bit |
32bit * 4 * 16 * 8
= 16384bit = 2048Byte