assigning a variable using binary format - 0B causing error in ARM Keil uVision

1.3k Views Asked by At

I am workin on a project with TM4C123GH6PM micro-controller using keil uvision version 4.7. When I assign a value to a variable in binary format like the following:

unsigned char tmp = 0b11000011;

and then I build the project, the following error appears:

expected a ";"

When I change the format to hex -using 0X- or Decimal, the error disappears.

doesn't the compiler in Keil uVision support the binary format?

3

There are 3 best solutions below

1
Anakin On BEST ANSWER

ANSI C doesn't specify a syntax for binary literals. Keil compilers follow the ANSI C standard, and their manual usually record any deviations or extensions.

A previous discussion on this can be found here Why doesn't C have binary literals?

0
kkrambo On

The Keil Arm v5 (ARMCC) compiler does not support binary literals. But the Keil Arm V6 (ARMCLANG) compiler does support binary literals. The Arm v6 compiler option is available with Keil MDK v5.12 and later. You may need to port some of your code to switch compiler versions (Migration Guide).

0
NeNe On

Open the "Options for target" --> switch to "C/C++" tab --> add --gnu in "Misc Controls" textbox.

Codes like int a = 0b101010; compile with no error.

I am using MDK 5.18 and ARMCC V5.06 update1 (build 61)