use crate::mem_layout::{Access, MemoryRegion, MemoryRegionKind, MemoryRole::*, Mode::*};
pub static MEMORY: &[MemoryRegion] = &[
MemoryRegion {
name: "USR_1",
kind: MemoryRegionKind::Flash,
role: Application,
address: 0x8000000,
size: 32768,
modes: &[
Fast {
page_size: 128,
load_size: 16,
},
Standard {
erase_size: 1024,
write_size: 2,
},
],
access: Some(Access {
read: true,
write: true,
execute: true,
}),
},
MemoryRegion {
name: "SYS_1",
kind: MemoryRegionKind::Flash,
role: System,
address: 0x1ffff000,
size: 2048,
modes: &[
Fast {
page_size: 128,
load_size: 16,
},
Standard {
erase_size: 1024,
write_size: 2,
},
],
access: Some(Access {
read: true,
write: true,
execute: true,
}),
},
MemoryRegion {
name: "OPT",
kind: MemoryRegionKind::Flash,
role: OptionBytes,
address: 0x1ffff800,
size: 128,
modes: &[Standard {
erase_size: 128,
write_size: 2,
}],
access: Some(Access {
read: true,
write: true,
execute: false,
}),
},
MemoryRegion {
name: "VND",
kind: MemoryRegionKind::Flash,
role: Vendor,
address: 0x1ffff880,
size: 128,
modes: &[],
access: Some(Access {
read: true,
write: false,
execute: false,
}),
},
MemoryRegion {
name: "SYS_2",
kind: MemoryRegionKind::Flash,
role: System,
address: 0x1ffff900,
size: 1792,
modes: &[
Fast {
page_size: 128,
load_size: 16,
},
Standard {
erase_size: 1024,
write_size: 2,
},
],
access: Some(Access {
read: true,
write: true,
execute: true,
}),
},
MemoryRegion {
name: "RAM",
kind: MemoryRegionKind::Ram,
role: Ram,
address: 0x20000000,
size: 10240,
modes: &[],
access: Some(Access {
read: true,
write: true,
execute: true,
}),
},
];