furs

enable
Login

enable

In this page FURS is used to make two new Embedded Forth Words named 'enable!' or 'disable!'

Audience - Forth programmers

A note on style: FURS uses the following styles:

enable!

This word is used to enable (or disable with "disable!") CMSIS bitfields that take only a one bit parameter, either 1 or 0. These bitfields always end in "%EN" but not every bitfield ending in "EN" has a one bit parameter, the programmer is expected to know when to use these words.

Example: RCC_AHBENR_IOPAEN enable! \ enable GPIOA for inputs
: enable! ( -- ) 1 bfs! ;
: disable! ( -- ) 1 bfc! ;

Dependencies

Two default Mecrisp-Stellaris Words:
bis!
bic!

Dissasembly

see enable!
20000C4A: 2301  movs r3 #1
20000C4C: 40B3  lsls r3 r6
20000C4E: CF40  ldmia r7 { r6 }
20000C50: 6832  ldr r2 [ r6 #0 ] r6 #0 
20000C52: 431A  orrs r2 r3
20000C54: 6032  str r2 [ r6 #0 ] r6 #0 
20000C56: CF40  ldmia r7 { r6 }
20000C58: 4770  bx lr
Bytes: 16  ok.

see disable! 20000C8C: 2301 movs r3 #1 20000C8E: 40B3 lsls r3 r6 20000C90: CF40 ldmia r7 { r6 } 20000C92: 6832 ldr r2 [ r6 #0 ] r6 #0 20000C94: 439A bics r2 r3 20000C96: 6032 str r2 [ r6 #0 ] r6 #0 20000C98: CF40 ldmia r7 { r6 } 20000C9A: 4770 bx lr Bytes: 16 ok.