Merge #599
599: Update stm32-data r=Dirbaio a=Dirbaio Again! Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
This commit is contained in:
		
						commit
						f50f3f0a73
					
				| @ -1 +1 @@ | ||||
| Subproject commit 69ac5bce28972de33b57497454421c6ac862b0ed | ||||
| Subproject commit fe221f48442d4b6eef6dcfd04d9d4deec4402cce | ||||
| @ -1,5 +1,4 @@ | ||||
| use serde::Deserialize; | ||||
| use std::collections::HashMap; | ||||
| 
 | ||||
| #[derive(Debug, Eq, PartialEq, Clone, Deserialize)] | ||||
| pub struct Chip { | ||||
| @ -7,21 +6,24 @@ pub struct Chip { | ||||
|     pub family: String, | ||||
|     pub line: String, | ||||
|     pub cores: Vec<Core>, | ||||
|     pub flash: Memory, | ||||
|     pub ram: Memory, | ||||
|     pub memory: Vec<MemoryRegion>, | ||||
|     pub packages: Vec<Package>, | ||||
| } | ||||
| 
 | ||||
| #[derive(Debug, Eq, PartialEq, Clone, Deserialize)] | ||||
| pub struct Memory { | ||||
|     pub bytes: u32, | ||||
|     pub regions: HashMap<String, MemoryRegion>, | ||||
| pub struct MemoryRegion { | ||||
|     pub name: String, | ||||
|     pub kind: MemoryRegionKind, | ||||
|     pub address: u32, | ||||
|     pub size: u32, | ||||
| } | ||||
| 
 | ||||
| #[derive(Debug, Eq, PartialEq, Clone, Deserialize)] | ||||
| pub struct MemoryRegion { | ||||
|     pub base: u32, | ||||
|     pub bytes: Option<u32>, | ||||
| pub enum MemoryRegionKind { | ||||
|     #[serde(rename = "flash")] | ||||
|     Flash, | ||||
|     #[serde(rename = "ram")] | ||||
|     Ram, | ||||
| } | ||||
| 
 | ||||
| #[derive(Debug, Eq, PartialEq, Clone, Deserialize)] | ||||
|  | ||||
| @ -587,35 +587,20 @@ fn bytes_find(haystack: &[u8], needle: &[u8]) -> Option<usize> { | ||||
| fn gen_memory_x(out_dir: &PathBuf, chip: &Chip) { | ||||
|     let mut memory_x = String::new(); | ||||
| 
 | ||||
|     let flash_bytes = chip | ||||
|         .flash | ||||
|         .regions | ||||
|         .get("BANK_1") | ||||
|         .unwrap() | ||||
|         .bytes | ||||
|         .unwrap_or(chip.flash.bytes); | ||||
|     let flash_origin = chip.flash.regions.get("BANK_1").unwrap().base; | ||||
| 
 | ||||
|     let ram_bytes = chip | ||||
|         .ram | ||||
|         .regions | ||||
|         .get("SRAM") | ||||
|         .unwrap() | ||||
|         .bytes | ||||
|         .unwrap_or(chip.ram.bytes); | ||||
|     let ram_origin = chip.ram.regions.get("SRAM").unwrap().base; | ||||
|     let flash = chip.memory.iter().find(|r| r.name == "BANK_1").unwrap(); | ||||
|     let ram = chip.memory.iter().find(|r| r.name == "SRAM").unwrap(); | ||||
| 
 | ||||
|     write!(memory_x, "MEMORY\n{{\n").unwrap(); | ||||
|     write!( | ||||
|         memory_x, | ||||
|         "    FLASH : ORIGIN = 0x{:x}, LENGTH = {}\n", | ||||
|         flash_origin, flash_bytes | ||||
|         flash.address, flash.size, | ||||
|     ) | ||||
|     .unwrap(); | ||||
|     write!( | ||||
|         memory_x, | ||||
|         "    RAM : ORIGIN = 0x{:x}, LENGTH = {}\n", | ||||
|         ram_origin, ram_bytes | ||||
|         ram.address, ram.size, | ||||
|     ) | ||||
|     .unwrap(); | ||||
|     write!(memory_x, "}}").unwrap(); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user