Keil™, An ARM® Company

C166 User's Guide

On-Line Manuals

C166 User's Guide

C166 Introduction
Compiling Programs
Language Extensions
Preprocessor
Advanced Programming
Error Messages
Library Reference
Library Files
Source Code
Standard Types
jmp_buf
ptrdiff_t
size_t
va_list
wchar_t
Macros
HARRAY
HVAR
MARRAY
MVAR
XARRAY
XVAR
Routines By Category
Buffer Manipulation Routines
Character Routines
Data Conversion Routines
Intrinsic Routines
Math Routines
Memory Allocation Routines
Stream I/O Routines
String Routines
Variable Length Argument Routines
Miscellaneous Routines
Include Files
SFR Definitions
absacc.h
assert.h
ctype.h
float.h
intrins.h
limits.h
math.h
membox.h
setjmp.h
stdarg.h
stddef.h
stdio.h
stdlib.h
string.h
Reference
_alloc_boxf
_alloc_boxh
_alloc_boxn
_atomic_
_bfld_
_calloc_boxf
_calloc_boxh
_calloc_boxn
_chkdouble_
_chkfloat_
_crol_
_cror_
_diswdt_
_einit_
_endatomic_
_free_boxf
_free_boxh
_free_boxn
_getkey
_idle_
_init_boxf
_init_boxh
_init_boxn
_irol_
_iror_
_lrol_
_lror_
_nop_
_pop_
_prior_
_priord_
_push_
_pwrdn_
_sof_
_srvwdt_
_testclear_
_testset_
_tolower
_toupper
_trap_
abs
acos
asin
assert
atan
atan2
atof
atoi
atol
calloc
calloc_b
ceil
cos
cosh
exp
fabs
floor
fmemccpy
fmemchr
fmemcmp
fmemcpy
fmemmove
fmemset
fmod
free
free_b
fstrcat
fstrchr
fstrcmp
fstrcpy
fstrcspn
fstrlen
fstrncat
fstrncmp
fstrncpy
fstrpbrk
fstrpos
fstrrchr
fstrrpbrk
fstrrpos
fstrspn
getchar
gets
hmemcmp
hmemcpy
hstrcmp
hstrcpy
init_mempool
init_mempool_b
isalnum
isalpha
iscntrl
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit
labs
log
log10
longjmp
malloc
malloc_b
memccpy
memchr
memcmp
memcpy
memmove
memset
modf
offsetof
pow
printf
putchar
puts
rand
realloc
realloc_b
scanf
setjmp
sin
sinh
sprintf
sqrt
srand
sscanf
strcat
strchr
strcmp
strcpy
strcspn
strlen
strncat
strncmp
strncpy
strpbrk
strpos
strrchr
strrpbrk
strrpos
strspn
strstr
strtod
strtol
strtoul
tan
tanh
toascii
toint
tolower
toupper
ungetchar
va_arg
va_end
va_start
vprintf
vsprintf
xcalloc
xfree
xinit_mempool
xmalloc
xmemccpy
xmemchr
xmemcmp
xmemcpy
xmemmove
xmemset
xrealloc
xstrcmp
xstrcpy
xstrlen
xstrncpy
Appendix

Intrinsic Routines

RoutineAttributesDescription
_atomic_intrinsic, reentrantInserts an ATOMIC assembler instruction.
_bfld_intrinsic, reentrantInserts a BFLDL and/or BFLDH assembler instruction.
_chkdouble_intrinsic, reentrantChecks the status of a 64-bit floating-point number.
_chkfloat_intrinsic, reentrantChecks the status of a 32-bit floating-point number.
_crol_intrinsic, reentrantRotates an unsigned char left a specified number of bits.
_cror_intrinsic, reentrantRotates an unsigned char right a specified number of bits.
_einit_intrinsic, reentrantInserts an EINIT assembler instruction.
_endatomic_intrinsic, reentrantChecks the range of the ATOMIC instruction.
_idle_intrinsic, reentrantInserts an IDLE assembler instruction.
_irol_intrinsic, reentrantRotates an unsigned int left a specified number of bits.
_iror_intrinsic, reentrantRotates an unsigned int right a specified number of bits.
_lrol_intrinsic, reentrantRotates an unsigned long left a specified number of bits.
_lror_intrinsic, reentrantRotates an unsigned long right a specified number of bits.
_nop_intrinsic, reentrantInserts a NOP assembler instruction.
_pop_intrinsic, reentrantPops and returns a 16-bit value from the system stack using the POP assembler instruction.
_prior_intrinsic, reentrantUses the PRIOR instruction to calculate the number of single bit shifts required to normalize a 16-bit value.
_priord_intrinsic, reentrantUses the PRIOR instruction to calculate the number of single bit shifts required to normalize a 32-bit value.
_pwrdn_intrinsic, reentrantInserts a PWRDN assembler instruction.
_push_intrinsic, reentrantPushes a 16-bit value onto the system stack using the PUSH assembler instruction.
_sof_intrinsic, reentrantGenerates the segment-offset value of an address for PEC transfers.
_srvwdt_intrinsic, reentrantInserts a SRVWDT assembler instruction which services the watchdog timer.
_testclear_intrinsic, reentrantInserts a JBC instruction to test the value of a bit for 1 and clear it to 0 in a single, atomic instruction.
_testset_intrinsic, reentrantInserts a JNBS instruction to test the value of a bit for 0 and set it to 1 in a single, atomic instruction.
_trap_intrinsic, reentrantInserts a TRAP or SRST assembler instruction.

The C166 Compiler supports a number of intrinsic library routines all of which are defined in the intrins.h include file. Code is generated inline for most intrinsic routines, however, some routines are implemented as functions to save code space.

Related Knowledgebase Articles