The FIXBFLD directive ensures that the compiler encloses
BFLDL and BFLDH instructions within ATOMIC
sequences. This is required to avoid problems documented by Infineon
in CPU.21 problem description. To use this directive in µVision, you
must enter it under Options — C166 — Misc.
The FIXBFLD directive causes the compiler to insert
ATOMIC #1 instructions before each BFLDL and
BFLDH instruction. If the BFLD instruction is used to
access ESFR registers, the EXTR sequence is not combined with other
EXTR sequences. An exception to this occurs when accessing the
SYSCON1, SYSCON2, and SYSCON3 SFR's since this is required by the
hardware for UNLOCK sequences.
The compiler does not modify the use of the _bfld_
intrinsic function within _atomic_/_endatomic_ blocks.
You must check such code blocks carefully and insert NOP's if
required (using the _nop_ intrinsic function) before the
_bfld_() intrinsic call.
Note
If you use RTX166 Tiny you must enable the FIXBFLD option in
RTX166T.A66 and rebuild the RTX166 Tiny library. This corrects the
CPU.21 problems in the kernel.
This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.
ARM websites use two types of cookie: (1) those that enable the site to function and perform as required; and (2) analytical cookies which anonymously track visitors only while using the site. If you are not happy with this use of these cookies please review our Privacy Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.