SongYZZZ/moon-firmware/validation does not have a README file
pub(all) struct CortexMReleaseOptions {
flash : AddressRange
ram : Array[AddressRange]
vector_address : Int64
page_size : Int
erase_value : Byte
stack_alignment : Int
max_pages : Int
max_output_bytes : Int
} derive(Eq, Debug)fn CortexMReleaseOptions::new(flash : AddressRange, ram : AddressRange, vector_address? : Int64, page_size? : Int, erase_value? : Byte) -> CortexMReleaseOptionspub struct CortexMReleaseReport {
options : CortexMReleaseOptions
layout : LayoutReport
vectors : CortexMVectorTable?
plan : FlashPlan?
issues : Array[ReleaseIssue]
} derive(Eq, Debug)pub(all) struct FlashOptions {
page_size : Int
erase_value : Byte
max_pages : Int
max_output_bytes : Int
allowed_range : AddressRange?
} derive(Eq, Debug)pub struct FlashPage {
range : AddressRange
data : Bytes
source_ranges : Array[AddressRange]
} derive(Eq, Debug)pub struct LayoutIssue {
rule : LayoutRule
level : CheckLevel
range : AddressRange?
region : String?
message : String
} derive(Eq, Debug)pub(all) struct LayoutOptions {
regions : Array[MemoryRegion]
segment_start_alignment : Int
segment_length_alignment : Int
max_payload_bytes : Int
max_span_bytes : Int64
entry_required : CheckLevel
entry_mapped : CheckLevel
entry_executable : CheckLevel
entry_alignment : Int
clear_entry_thumb_bit : Bool
} derive(Eq, Debug)pub struct LayoutReport {
issues : Array[LayoutIssue]
payload_bytes : Int
address_span : Int64
segment_count : Int
checked_entry : Int64?
} derive(Eq, Debug)pub(all) struct MemoryRegion {
name : String
range : AddressRange
executable : Bool
} derive(Eq, Debug)fn validate_cortex_m_release(image : FirmwareImage, options : CortexMReleaseOptions) -> CortexMReleaseReport raise FirmwareErrorfn validate_layout(image : FirmwareImage, options : LayoutOptions) -> LayoutReport raise FirmwareErrorInstall
Download zipMCU firmware release validation: HEX, S-record, Cortex-M gates and flash plans
Dependencies