Datasheet

Notes:
- Directive absolute in Rx memory space guarantees only that defined
variable will be overlapped with the given memory address.
- Addresses of all registers are RAM Space addresses. RAM Space is con-
tinuous region of RAM memory including all AVR RAM memory spaces
(RAM space = Rx Space + IO Space + SRAM Space). When using instruc-
tions dedicated to IO Space in asm blocks, IO registers should be accessed
by their RAM Space addresses. Refer to AVR memory organization for
details on RAM Space addresses.
- Currently, Boot Loader section of the flash memory is not supported by the
compiler.
- Rx space not used by the compiler may be used for user variables. So, the
size of the available Rx space is not fixed, because it depends on the
memory consumtion of the project itself. Compiler uses not less than 7 Rx
registers.
- Literal strings are stored according to the destination (Flash or RAM). If
stored in RAM, they are linked as a global and always exist by default.
There is an option for storing literal string on the function frame.
- Constants may be stored only in the first 64kb of Flash memory.
- Available RAM memory is divided on static and dynamic link. Static link
grows upwards (from lower to higher addresses). Dynamic link grows
downwards (from higher to lower addresses).
- In case of intensive cross-callings, recursions, etc. it is not guaranteed that
the dynamic link will be enough for the program execution. If this happens,
dynamic link can get out of its boundaries and overwrite static link.
ANSI STANDARD ISSUES
Divergence from the ANSI C Standard
- Tentative declarations are not supported.
C Language Exstensions
mikroC PRO for AVR has additional set of keywords that do not belong to the ANSI
standard C language keywords:
- code
- data
- io
- rx
- at
- sbit
- bit
- sfr
Related topics: Keywords, AVR Specific
98
MIKROELEKTRONIKA - SOFTWARE AND HARDWARE SOLUTIONS FOR EMBEDDED WORLD
Specifics
mikroC PRO for AVR
CHAPTER 3