File tree Expand file tree Collapse file tree 1 file changed +26
-16
lines changed Expand file tree Collapse file tree 1 file changed +26
-16
lines changed Original file line number Diff line number Diff line change @@ -53,6 +53,12 @@ impl NorFlashError for Error {
53
53
impl Error {
54
54
fn read ( flash_bank : & BANK ) -> Option < Self > {
55
55
let sr = flash_bank. sr ( ) . read ( ) ;
56
+
57
+ #[ cfg( not( feature = "rm0455" ) ) ]
58
+ if sr. operr ( ) . bit ( ) {
59
+ return Some ( Error :: Operation ) ;
60
+ }
61
+
56
62
if sr. pgserr ( ) . bit ( ) {
57
63
Some ( Error :: ProgrammingSequence )
58
64
} else if sr. wrperr ( ) . bit ( ) {
@@ -61,8 +67,6 @@ impl Error {
61
67
Some ( Error :: Strobe )
62
68
} else if sr. incerr ( ) . bit ( ) {
63
69
Some ( Error :: Inconsistency )
64
- } else if sr. operr ( ) . bit ( ) {
65
- Some ( Error :: Operation )
66
70
} else if sr. rdperr ( ) . bit ( ) {
67
71
Some ( Error :: ReadProtection )
68
72
} else if sr. rdserr ( ) . bit ( ) {
@@ -75,22 +79,26 @@ impl Error {
75
79
}
76
80
}
77
81
fn clear_error_flags ( regs : & BANK ) {
78
- regs. sr ( ) . modify ( |_, w| {
79
- w. pgserr ( )
80
- . set_bit ( )
81
- . wrperr ( )
82
+ regs. ccr ( ) . write ( |w| {
83
+ let w = w. clr_pgserr ( )
82
84
. set_bit ( )
83
- . strberr ( )
85
+ . clr_wrperr ( )
84
86
. set_bit ( )
85
- . incerr ( )
87
+ . clr_strberr ( )
86
88
. set_bit ( )
87
- . operr ( )
89
+ . clr_incerr ( ) ;
90
+
91
+ #[ cfg( not( feature = "rm0455" ) ) ]
92
+ let w = w
88
93
. set_bit ( )
89
- . rdperr ( )
94
+ . clr_operr ( ) ;
95
+
96
+ w. set_bit ( )
97
+ . clr_rdperr ( )
90
98
. set_bit ( )
91
- . rdserr ( )
99
+ . clr_rdserr ( )
92
100
. set_bit ( )
93
- . dbeccerr ( )
101
+ . clr_dbeccerr ( )
94
102
. set_bit ( )
95
103
} ) ;
96
104
}
@@ -214,11 +222,13 @@ impl UnlockedFlashBank<'_> {
214
222
#[ rustfmt:: skip]
215
223
#[ allow( unused_unsafe) ]
216
224
self . bank . cr ( ) . modify ( |_, w| unsafe {
217
- w
225
+ #[ cfg( not( feature = "rm0455" ) ) ]
226
+ let w = w
218
227
// double-word parallelism
219
- . psize ( ) . bits ( 0b11 )
220
- // not sector erase
221
- . ser ( ) . clear_bit ( )
228
+ . psize ( ) . bits ( 0b11 ) ;
229
+
230
+ // not sector erase
231
+ w. ser ( ) . clear_bit ( )
222
232
// programming
223
233
. pg ( ) . set_bit ( )
224
234
} ) ;
You can’t perform that action at this time.
0 commit comments