mikroC
making it simple...
Linker DirectivesmikroC - C Compiler for Microchip PIC microcontrollers
mikroC uses internal algorithm to distribute objects within memory. If you need to have variable or routine at specific predefined address, use linker directives
absolute and org.
Directive absolute
Directive absolute specifies the starting address in RAM for variable. If variable is
int foo absolute 0x23;
// Variable will occupy 2 bytes at addresses 0x23 and 0x24;
Be careful when using absolute directive, as you may overlap two variables by mistake. For example:
char i absolute 0x33;
// Variable i will occupy 1 byte at address 0x33
long jjjj absolute 0x30;
//Variable will occupy 4 bytes at 0x30, 0x31, 0x32, 0x33,
//so changing i changes jjjj highest byte at the same time
Directive org
Directive org specifies the starting address of routine in ROM.
Directive org is appended to the function definition. Directives applied to non- defining declarations will be ignored, with an appropriate warning issued by link- er. Directive org cannot be applied to an interrupt routine.
Here is a simple example:
void func(char par) org 0x200 {
//Function will start at address 0x200 nop;
}
|
| page |
MikroElektronika: Development tools - Books - Compilers | 35 | |
|