@@ -9,7 +9,7 @@ use core::mem::MaybeUninit;
99
1010use self :: algo:: * ;
1111
12- fn find_func ( tag : [ u8 ; 2 ] ) -> u32 {
12+ fn find_func < T > ( tag : [ u8 ; 2 ] ) -> T {
1313 let tag = u16:: from_le_bytes ( tag) ;
1414
1515 unsafe {
@@ -23,7 +23,7 @@ fn find_func(tag: [u8; 2]) -> u32 {
2323 let entry_addr = entry. read ( ) ;
2424 entry = entry. add ( 1 ) ;
2525 if entry_tag == tag {
26- return entry_addr as u32 ;
26+ return mem :: transmute_copy ( & ( entry_addr as u32 ) ) ;
2727 }
2828 }
2929 }
@@ -42,12 +42,12 @@ impl ROMFuncs {
4242 fn load ( ) -> Self {
4343 unsafe {
4444 ROMFuncs {
45- connect_internal_flash : mem :: transmute ( find_func ( * b"IF" ) ) ,
46- flash_exit_xip : mem :: transmute ( find_func ( * b"EX" ) ) ,
47- flash_range_erase : mem :: transmute ( find_func ( * b"RE" ) ) ,
48- flash_range_program : mem :: transmute ( find_func ( * b"RP" ) ) ,
49- flash_flush_cache : mem :: transmute ( find_func ( * b"FC" ) ) ,
50- flash_enter_cmd_xip : mem :: transmute ( find_func ( * b"CX" ) ) ,
45+ connect_internal_flash : find_func ( * b"IF" ) ,
46+ flash_exit_xip : find_func ( * b"EX" ) ,
47+ flash_range_erase : find_func ( * b"RE" ) ,
48+ flash_range_program : find_func ( * b"RP" ) ,
49+ flash_flush_cache : find_func ( * b"FC" ) ,
50+ flash_enter_cmd_xip : find_func ( * b"CX" ) ,
5151 }
5252 }
5353 }
0 commit comments