Y Y QIZ@JOJU 1):ͱݺΕΔ8J'J#MVFUPPUIͷઃఆ͕อଘ͞ΕΔ YG Y GBDUPSZ ϓϩάϥϜͷόΠφϦ͕ॻ͖ࠐ·ΕΔ Y . TUPSBHF '"5ϑΝΠϧγεςϜ Y . ۭ͖ྖҬ &41ͷ'MBTIϝϞϦͷύʔςΟγϣϯςʔϒϧ ΧελϚΠζޙ ޙ΄ͲඞཁͳͷͰ͓֮͑ͯ͘
e , T y p e , S u b T y p e , O f f s e t , S i z e , F l a g s # N o t e : i f y o u h a v e i n c r e a s e d t h e b o o t l o a d e r s i z e , m a k e s u r e t o u p d a t e t h e o f f s e t s t o a v o i d o v e r l a p n v s , d a t a , n v s , 0 x 9 0 0 0 , 0 x 6 0 0 0 , p h y _ i n i t , d a t a , p h y , 0 x f 0 0 0 , 0 x 1 0 0 0 , f a c t o r y , a p p , f a c t o r y , 0 x 1 0 0 0 0 , 1 M , s t o r a g e , d a t a , f a t , , 1 M , TUPSBHFͱ͍͏.#ͷ'"5ྖҬΛՃ
o n e n t _ r e g i s t e r ( S R C S "m a i n . c " R E Q U I R E S p i c o r u b y - e s p 3 2 P R I V _ R E Q U I R E S s p i _ f l a s h I N C L U D E _ D I R S "" ) s e t ( i m a g e . . / s t o r a g e ) f a t f s _ c r e a t e _ r a w f l a s h _ i m a g e ( s t o r a g e $ { i m a g e } F L A S H _ I N _ P R O J E C T P R E S E R V E _ T I M E ) '"5ϑΝΠϧγεςϜͷΠϝʔδΛ࡞ˍॻ͖ࠐΈ 32 TUPSBHFσΟϨΫτϦΛ'"5ϑΝΠϧγεςϜͷ ΠϝʔδԽ͢ΔͨΊͷδΣωϨʔλΛ༻
A S H _ d i s k _ w r i t e ( c o n s t B Y T E * b u f f , L B A _ t s e c t o r , U I N T c o u n t ) { } ॻ͖ࠐΉσʔλ ઌ಄ͷηΫλ൪߸ ॻ͖ࠐΉηΫλ ͜͜ʹཁ݅Λຬͨ͢Α͏ͳίʔυΛॻ͘
A S H _ d i s k _ w r i t e ( c o n s t B Y T E * b u f f , L B A _ t s e c t o r , U I N T c o u n t ) { e s p _ f l a s h _ t * c h i p = e s p _ f l a s h _ d e f a u l t _ c h i p ; u i n t 3 2 _ t o f f s e t = F L A S H _ O F F S E T + ( s e c t o r * S P I _ F L A S H _ S E C _ S I Z E ) ; u i n t 3 2 _ t s i z e = c o u n t * S P I _ F L A S H _ S E C _ S I Z E ; e s p _ e r r _ t r e t = e s p _ f l a s h _ e r a s e _ r e g i o n ( c h i p , o f f s e t , s i z e ) ; i f ( r e t ! = E S P _ O K ) r e t u r n R E S _ E R R O R ; r e t = e s p _ f l a s h _ w r i t e ( c h i p , b u f f , o f f s e t , s i z e ) ; i f ( r e t ! = E S P _ O K ) r e t u r n R E S _ E R R O R ; r e t u r n R E S _ O K ; }
A S H _ d i s k _ w r i t e ( c o n s t B Y T E * b u f f , L B A _ t s e c t o r , U I N T c o u n t ) { e s p _ f l a s h _ t * c h i p = e s p _ f l a s h _ d e f a u l t _ c h i p ; u i n t 3 2 _ t o f f s e t = F L A S H _ O F F S E T + ( s e c t o r * S P I _ F L A S H _ S E C _ S I Z E ) ; u i n t 3 2 _ t s i z e = c o u n t * S P I _ F L A S H _ S E C _ S I Z E ; e s p _ e r r _ t r e t = e s p _ f l a s h _ e r a s e _ r e g i o n ( c h i p , o f f s e t , s i z e ) ; i f ( r e t ! = E S P _ O K ) r e t u r n R E S _ E R R O R ; r e t = e s p _ f l a s h _ w r i t e ( c h i p , b u f f , o f f s e t , s i z e ) ; i f ( r e t ! = E S P _ O K ) r e t u r n R E S _ E R R O R ; r e t u r n R E S _ O K ; } Y ,#
A S H _ d i s k _ w r i t e ( c o n s t B Y T E * b u f f , L B A _ t s e c t o r , U I N T c o u n t ) { e s p _ f l a s h _ t * c h i p = e s p _ f l a s h _ d e f a u l t _ c h i p ; u i n t 3 2 _ t o f f s e t = F L A S H _ O F F S E T + ( s e c t o r * S P I _ F L A S H _ S E C _ S I Z E ) ; u i n t 3 2 _ t s i z e = c o u n t * S P I _ F L A S H _ S E C _ S I Z E ; e s p _ e r r _ t r e t = e s p _ f l a s h _ e r a s e _ r e g i o n ( c h i p , o f f s e t , s i z e ) ; i f ( r e t ! = E S P _ O K ) r e t u r n R E S _ E R R O R ; r e t = e s p _ f l a s h _ w r i t e ( c h i p , b u f f , o f f s e t , s i z e ) ; i f ( r e t ! = E S P _ O K ) r e t u r n R E S _ E R R O R ; r e t u r n R E S _ O K ; } ॻ͖ࠐΈઌͷΞυϨεɾαΠζΛܭࢉ ॻ͖ࠐΈઌͷ'MBTIϝϞϦΛফڈ σʔλΛॻ͖ࠐΉ
A S H _ d i s k _ r e a d ( B Y T E * b u f f , L B A _ t s e c t o r , U I N T c o u n t ) { e s p _ f l a s h _ t * c h i p = e s p _ f l a s h _ d e f a u l t _ c h i p ; u i n t 3 2 _ t o f f s e t = F L A S H _ O F F S E T + ( s e c t o r * S P I _ F L A S H _ S E C _ S I Z E ) ; u i n t 3 2 _ t s i z e = c o u n t * S P I _ F L A S H _ S E C _ S I Z E ; e s p _ e r r _ t r e t = e s p _ f l a s h _ r e a d ( c h i p , b u f f , o f f s e t , s i z e ) ; i f ( r e t ! = E S P _ O K ) r e t u r n R E S _ E R R O R ; r e t u r n R E S _ O K ; }
A S H _ d i s k _ r e a d ( B Y T E * b u f f , L B A _ t s e c t o r , U I N T c o u n t ) { e s p _ f l a s h _ t * c h i p = e s p _ f l a s h _ d e f a u l t _ c h i p ; u i n t 3 2 _ t o f f s e t = F L A S H _ O F F S E T + ( s e c t o r * S P I _ F L A S H _ S E C _ S I Z E ) ; u i n t 3 2 _ t s i z e = c o u n t * S P I _ F L A S H _ S E C _ S I Z E ; e s p _ e r r _ t r e t = e s p _ f l a s h _ r e a d ( c h i p , b u f f , o f f s e t , s i z e ) ; i f ( r e t ! = E S P _ O K ) r e t u r n R E S _ E R R O R ; r e t u r n R E S _ O K ; } Y ,#
A S H _ d i s k _ r e a d ( B Y T E * b u f f , L B A _ t s e c t o r , U I N T c o u n t ) { e s p _ f l a s h _ t * c h i p = e s p _ f l a s h _ d e f a u l t _ c h i p ; u i n t 3 2 _ t o f f s e t = F L A S H _ O F F S E T + ( s e c t o r * S P I _ F L A S H _ S E C _ S I Z E ) ; u i n t 3 2 _ t s i z e = c o u n t * S P I _ F L A S H _ S E C _ S I Z E ; e s p _ e r r _ t r e t = e s p _ f l a s h _ r e a d ( c h i p , b u f f , o f f s e t , s i z e ) ; i f ( r e t ! = E S P _ O K ) r e t u r n R E S _ E R R O R ; r e t u r n R E S _ O K ; } ಡΈग़͠ݩͷΞυϨεɾαΠζΛܭࢉ ಡΈग़͢
L T F L A S H _ d i s k _ i o c t l ( B Y T E c m d , v o i d * b u f f ) { s w i t c h ( c m d ) { / * 省略 * / c a s e G E T _ S E C T O R _ S I Z E : * ( ( W O R D * ) b u f f ) = ( W O R D ) S P I _ F L A S H _ S E C _ S I Z E ; b r e a k ; c a s e G E T _ S E C T O R _ C O U N T : * ( ( L B A _ t * ) b u f f ) = ( L B A _ t ) ( F L A S H _ S I Z E / S P I _ F L A S H _ S E C _ S I Z E ) ; b r e a k ; d e f a u l t : r e t u r n R E S _ P A R E R R ; } r e t u r n R E S _ O K ;
L T F L A S H _ d i s k _ i o c t l ( B Y T E c m d , v o i d * b u f f ) { s w i t c h ( c m d ) { / * 省略 * / c a s e G E T _ S E C T O R _ S I Z E : * ( ( W O R D * ) b u f f ) = ( W O R D ) S P I _ F L A S H _ S E C _ S I Z E ; b r e a k ; c a s e G E T _ S E C T O R _ C O U N T : * ( ( L B A _ t * ) b u f f ) = ( L B A _ t ) ( F L A S H _ S I Z E / S P I _ F L A S H _ S E C _ S I Z E ) ; b r e a k ; d e f a u l t : r e t u r n R E S _ P A R E R R ; } r e t u r n R E S _ O K ; .# ,#
L T F L A S H _ d i s k _ i o c t l ( B Y T E c m d , v o i d * b u f f ) { s w i t c h ( c m d ) { / * 省略 * / c a s e G E T _ S E C T O R _ S I Z E : * ( ( W O R D * ) b u f f ) = ( W O R D ) S P I _ F L A S H _ S E C _ S I Z E ; b r e a k ; c a s e G E T _ S E C T O R _ C O U N T : * ( ( L B A _ t * ) b u f f ) = ( L B A _ t ) ( F L A S H _ S I Z E / S P I _ F L A S H _ S E C _ S I Z E ) ; b r e a k ; d e f a u l t : r e t u r n R E S _ P A R E R R ; } r e t u r n R E S _ O K ; ηΫλαΠζ ,# Λ֨ೲ ηΫλ .#,# Λ֨ೲ
e "s h e l l " # S e t u p f l a s h d i s k b e g i n S T D I N . e c h o = f a l s e p u t s "I n i t i a l i z i n g F L A S H d i s k a s t h e r o o t v o l u m e . . . " S h e l l . s e t u p _ r o o t _ v o l u m e ( : f l a s h , l a b e l : ' s t o r a g e ' ) S h e l l . s e t u p _ s y s t e m _ f i l e s p u t s "A v a i l a b l e " r e s c u e = > e p u t s "N o t a v a i l a b l e " p u t s "# { e . m e s s a g e } ( # { e . c l a s s } ) " e n d
e "s h e l l " # S e t u p f l a s h d i s k b e g i n S T D I N . e c h o = f a l s e p u t s "I n i t i a l i z i n g F L A S H d i s k a s t h e r o o t v o l u m e . . . " S h e l l . s e t u p _ r o o t _ v o l u m e ( : f l a s h , l a b e l : ' s t o r a g e ' ) S h e l l . s e t u p _ s y s t e m _ f i l e s p u t s "A v a i l a b l e " r e s c u e = > e p u t s "N o t a v a i l a b l e " p u t s "# { e . m e s s a g e } ( # { e . c l a s s } ) " e n d ϧʔτϘϦϡʔϜͷ࡞ॲཧ ΠϝʔδΛॻ͖ࠐΜͩ࣌ͰAA ଘࡏ͢ΔͷͰԿ͠ͳ͍
e "s h e l l " # S e t u p f l a s h d i s k b e g i n S T D I N . e c h o = f a l s e p u t s "I n i t i a l i z i n g F L A S H d i s k a s t h e r o o t v o l u m e . . . " S h e l l . s e t u p _ r o o t _ v o l u m e ( : f l a s h , l a b e l : ' s t o r a g e ' ) S h e l l . s e t u p _ s y s t e m _ f i l e s p u t s "A v a i l a b l e " r e s c u e = > e p u t s "N o t a v a i l a b l e " p u t s "# { e . m e s s a g e } ( # { e . c l a s s } ) " e n d CJOFUDJOJUEͳͲʹ ϑΝΠϧΛஔ͢Δ
Φϑηοτ αΠζ OWT ,FZ7BMVFͳ͕อଘ͞ΕΔ Y Y QIZ@JOJU 1):ͱݺΕΔ8J'J#MVFUPPUIͷઃఆ͕อଘ͞ΕΔ YG Y GBDUPSZ ϓϩάϥϜͷόΠφϦ͕ॻ͖ࠐ·ΕΔ Y . TUPSBHF '"5ϑΝΠϧγεςϜ Y . ۭ͖ྖҬ &41ͷ'MBTIϝϞϦͷύʔςΟγϣϯςʔϒϧ ΧελϚΠζޙ
Φϑηοτ αΠζ OWT ,FZ7BMVFͳ͕อଘ͞ΕΔ Y Y QIZ@JOJU 1):ͱݺΕΔ8J'J#MVFUPPUIͷઃఆ͕อଘ͞ΕΔ YG Y GBDUPSZ ϓϩάϥϜͷόΠφϦ͕ॻ͖ࠐ·ΕΔ Y . TUPSBHF '"5ϑΝΠϧγεςϜ Y . ۭ͖ྖҬ &41ͷ'MBTIϝϞϦͷύʔςΟγϣϯςʔϒϧ ΧελϚΠζޙ ΞϓϦέʔγϣϯίʔυΛࠩ͠ସ͑Δࡍ ͚ͩ͜͜ॻ͖͑ΕΑ͍