@@ -116,7 +116,7 @@ void core_util_critical_section_exit(void)
116
116
#pragma diag_suppress 3731
117
117
#endif
118
118
119
- bool core_util_atomic_cas_u8 (uint8_t * ptr , uint8_t * expectedCurrentValue , uint8_t desiredValue )
119
+ bool core_util_atomic_cas_u8 (volatile uint8_t * ptr , uint8_t * expectedCurrentValue , uint8_t desiredValue )
120
120
{
121
121
do {
122
122
uint8_t currentValue = __LDREXB (ptr );
@@ -129,7 +129,7 @@ bool core_util_atomic_cas_u8(uint8_t *ptr, uint8_t *expectedCurrentValue, uint8_
129
129
return true;
130
130
}
131
131
132
- bool core_util_atomic_cas_u16 (uint16_t * ptr , uint16_t * expectedCurrentValue , uint16_t desiredValue )
132
+ bool core_util_atomic_cas_u16 (volatile uint16_t * ptr , uint16_t * expectedCurrentValue , uint16_t desiredValue )
133
133
{
134
134
do {
135
135
uint16_t currentValue = __LDREXH (ptr );
@@ -143,7 +143,7 @@ bool core_util_atomic_cas_u16(uint16_t *ptr, uint16_t *expectedCurrentValue, uin
143
143
}
144
144
145
145
146
- bool core_util_atomic_cas_u32 (uint32_t * ptr , uint32_t * expectedCurrentValue , uint32_t desiredValue )
146
+ bool core_util_atomic_cas_u32 (volatile uint32_t * ptr , uint32_t * expectedCurrentValue , uint32_t desiredValue )
147
147
{
148
148
do {
149
149
uint32_t currentValue = __LDREXW (ptr );
@@ -156,7 +156,7 @@ bool core_util_atomic_cas_u32(uint32_t *ptr, uint32_t *expectedCurrentValue, uin
156
156
return true;
157
157
}
158
158
159
- uint8_t core_util_atomic_incr_u8 (uint8_t * valuePtr , uint8_t delta )
159
+ uint8_t core_util_atomic_incr_u8 (volatile uint8_t * valuePtr , uint8_t delta )
160
160
{
161
161
uint8_t newValue ;
162
162
do {
@@ -165,7 +165,7 @@ uint8_t core_util_atomic_incr_u8(uint8_t *valuePtr, uint8_t delta)
165
165
return newValue ;
166
166
}
167
167
168
- uint16_t core_util_atomic_incr_u16 (uint16_t * valuePtr , uint16_t delta )
168
+ uint16_t core_util_atomic_incr_u16 (volatile uint16_t * valuePtr , uint16_t delta )
169
169
{
170
170
uint16_t newValue ;
171
171
do {
@@ -174,7 +174,7 @@ uint16_t core_util_atomic_incr_u16(uint16_t *valuePtr, uint16_t delta)
174
174
return newValue ;
175
175
}
176
176
177
- uint32_t core_util_atomic_incr_u32 (uint32_t * valuePtr , uint32_t delta )
177
+ uint32_t core_util_atomic_incr_u32 (volatile uint32_t * valuePtr , uint32_t delta )
178
178
{
179
179
uint32_t newValue ;
180
180
do {
@@ -184,7 +184,7 @@ uint32_t core_util_atomic_incr_u32(uint32_t *valuePtr, uint32_t delta)
184
184
}
185
185
186
186
187
- uint8_t core_util_atomic_decr_u8 (uint8_t * valuePtr , uint8_t delta )
187
+ uint8_t core_util_atomic_decr_u8 (volatile uint8_t * valuePtr , uint8_t delta )
188
188
{
189
189
uint8_t newValue ;
190
190
do {
@@ -193,7 +193,7 @@ uint8_t core_util_atomic_decr_u8(uint8_t *valuePtr, uint8_t delta)
193
193
return newValue ;
194
194
}
195
195
196
- uint16_t core_util_atomic_decr_u16 (uint16_t * valuePtr , uint16_t delta )
196
+ uint16_t core_util_atomic_decr_u16 (volatile uint16_t * valuePtr , uint16_t delta )
197
197
{
198
198
uint16_t newValue ;
199
199
do {
@@ -202,7 +202,7 @@ uint16_t core_util_atomic_decr_u16(uint16_t *valuePtr, uint16_t delta)
202
202
return newValue ;
203
203
}
204
204
205
- uint32_t core_util_atomic_decr_u32 (uint32_t * valuePtr , uint32_t delta )
205
+ uint32_t core_util_atomic_decr_u32 (volatile uint32_t * valuePtr , uint32_t delta )
206
206
{
207
207
uint32_t newValue ;
208
208
do {
@@ -213,7 +213,7 @@ uint32_t core_util_atomic_decr_u32(uint32_t *valuePtr, uint32_t delta)
213
213
214
214
#else
215
215
216
- bool core_util_atomic_cas_u8 (uint8_t * ptr , uint8_t * expectedCurrentValue , uint8_t desiredValue )
216
+ bool core_util_atomic_cas_u8 (volatile uint8_t * ptr , uint8_t * expectedCurrentValue , uint8_t desiredValue )
217
217
{
218
218
bool success ;
219
219
uint8_t currentValue ;
@@ -230,7 +230,7 @@ bool core_util_atomic_cas_u8(uint8_t *ptr, uint8_t *expectedCurrentValue, uint8_
230
230
return success ;
231
231
}
232
232
233
- bool core_util_atomic_cas_u16 (uint16_t * ptr , uint16_t * expectedCurrentValue , uint16_t desiredValue )
233
+ bool core_util_atomic_cas_u16 (volatile uint16_t * ptr , uint16_t * expectedCurrentValue , uint16_t desiredValue )
234
234
{
235
235
bool success ;
236
236
uint16_t currentValue ;
@@ -248,7 +248,7 @@ bool core_util_atomic_cas_u16(uint16_t *ptr, uint16_t *expectedCurrentValue, uin
248
248
}
249
249
250
250
251
- bool core_util_atomic_cas_u32 (uint32_t * ptr , uint32_t * expectedCurrentValue , uint32_t desiredValue )
251
+ bool core_util_atomic_cas_u32 (volatile uint32_t * ptr , uint32_t * expectedCurrentValue , uint32_t desiredValue )
252
252
{
253
253
bool success ;
254
254
uint32_t currentValue ;
@@ -266,7 +266,7 @@ bool core_util_atomic_cas_u32(uint32_t *ptr, uint32_t *expectedCurrentValue, uin
266
266
}
267
267
268
268
269
- uint8_t core_util_atomic_incr_u8 (uint8_t * valuePtr , uint8_t delta )
269
+ uint8_t core_util_atomic_incr_u8 (volatile uint8_t * valuePtr , uint8_t delta )
270
270
{
271
271
uint8_t newValue ;
272
272
core_util_critical_section_enter ();
@@ -276,7 +276,7 @@ uint8_t core_util_atomic_incr_u8(uint8_t *valuePtr, uint8_t delta)
276
276
return newValue ;
277
277
}
278
278
279
- uint16_t core_util_atomic_incr_u16 (uint16_t * valuePtr , uint16_t delta )
279
+ uint16_t core_util_atomic_incr_u16 (volatile uint16_t * valuePtr , uint16_t delta )
280
280
{
281
281
uint16_t newValue ;
282
282
core_util_critical_section_enter ();
@@ -286,7 +286,7 @@ uint16_t core_util_atomic_incr_u16(uint16_t *valuePtr, uint16_t delta)
286
286
return newValue ;
287
287
}
288
288
289
- uint32_t core_util_atomic_incr_u32 (uint32_t * valuePtr , uint32_t delta )
289
+ uint32_t core_util_atomic_incr_u32 (volatile uint32_t * valuePtr , uint32_t delta )
290
290
{
291
291
uint32_t newValue ;
292
292
core_util_critical_section_enter ();
@@ -297,7 +297,7 @@ uint32_t core_util_atomic_incr_u32(uint32_t *valuePtr, uint32_t delta)
297
297
}
298
298
299
299
300
- uint8_t core_util_atomic_decr_u8 (uint8_t * valuePtr , uint8_t delta )
300
+ uint8_t core_util_atomic_decr_u8 (volatile uint8_t * valuePtr , uint8_t delta )
301
301
{
302
302
uint8_t newValue ;
303
303
core_util_critical_section_enter ();
@@ -307,7 +307,7 @@ uint8_t core_util_atomic_decr_u8(uint8_t *valuePtr, uint8_t delta)
307
307
return newValue ;
308
308
}
309
309
310
- uint16_t core_util_atomic_decr_u16 (uint16_t * valuePtr , uint16_t delta )
310
+ uint16_t core_util_atomic_decr_u16 (volatile uint16_t * valuePtr , uint16_t delta )
311
311
{
312
312
uint16_t newValue ;
313
313
core_util_critical_section_enter ();
@@ -317,7 +317,7 @@ uint16_t core_util_atomic_decr_u16(uint16_t *valuePtr, uint16_t delta)
317
317
return newValue ;
318
318
}
319
319
320
- uint32_t core_util_atomic_decr_u32 (uint32_t * valuePtr , uint32_t delta )
320
+ uint32_t core_util_atomic_decr_u32 (volatile uint32_t * valuePtr , uint32_t delta )
321
321
{
322
322
uint32_t newValue ;
323
323
core_util_critical_section_enter ();
@@ -330,18 +330,18 @@ uint32_t core_util_atomic_decr_u32(uint32_t *valuePtr, uint32_t delta)
330
330
#endif
331
331
332
332
333
- bool core_util_atomic_cas_ptr (void * * ptr , void * * expectedCurrentValue , void * desiredValue ) {
333
+ bool core_util_atomic_cas_ptr (void * volatile * ptr , void * * expectedCurrentValue , void * desiredValue ) {
334
334
return core_util_atomic_cas_u32 (
335
- (uint32_t * )ptr ,
335
+ (volatile uint32_t * )ptr ,
336
336
(uint32_t * )expectedCurrentValue ,
337
337
(uint32_t )desiredValue );
338
338
}
339
339
340
- void * core_util_atomic_incr_ptr (void * * valuePtr , ptrdiff_t delta ) {
341
- return (void * )core_util_atomic_incr_u32 ((uint32_t * )valuePtr , (uint32_t )delta );
340
+ void * core_util_atomic_incr_ptr (void * volatile * valuePtr , ptrdiff_t delta ) {
341
+ return (void * )core_util_atomic_incr_u32 ((volatile uint32_t * )valuePtr , (uint32_t )delta );
342
342
}
343
343
344
- void * core_util_atomic_decr_ptr (void * * valuePtr , ptrdiff_t delta ) {
345
- return (void * )core_util_atomic_decr_u32 ((uint32_t * )valuePtr , (uint32_t )delta );
344
+ void * core_util_atomic_decr_ptr (void * volatile * valuePtr , ptrdiff_t delta ) {
345
+ return (void * )core_util_atomic_decr_u32 ((volatile uint32_t * )valuePtr , (uint32_t )delta );
346
346
}
347
347
0 commit comments