This option controls outputting far jump.
[Specification format]
- | Interpretation when omitted |
The instructions in accordance with the -Xcall_jump option are generated.
[Detailed description]
- | This option generates the code that uses the jarl32 and jr32 instruction for the branch to functions (including interrupt functions described by C language) specified in far jump calling function list file file. |
- | ".fjp" is recommended as the extension of file. |
- | An error will occur if file does not exist. |
- | An error will occur if file is omitted. |
- | An error will occur during linking if the function is in the range that cannot be branched to by the jarl or jr directive (±2MB or more) when the -Xcall_jump=22 option is specified. In this case, recompile by using this option. |
- | If this option is specified more than once, the option specified last will be valid. |
- | The example of the output code is shown below. |
far_func(); /* "jarl _far_func, lp" is output by default. */
|
Remark | Cautions about are the format of the far jump calling function list file as follows. |
- | Describe with one function name per line.
If two or more function name is described, the first name will be valid. |
- | Describe the function name (label name in an assembly source) by prefixing "_" to that in C language.
However, the following formats can be specified instead of function names. |
|
|
{all_function}
|
All functions are called.
|
{all_interrupt}
|
All interrupt functions are called.
|
- | Rutime routines can be specified instead of functions.
In this case, describe the runtime routine name as-is as the function name. |
- | A space and tab can be inserted before and after function names. |
- | Only ASCII characters can be used.
After the space characters at the beginning of a line, a non-space character string until the next space character or the end of the line is treated as a function name, and the rest of the line (from the space character to the end of the line) is ignored. |
- | Comments cannot be inserted. |
- | Up to 1023 characters can be specified per line (including a space and tab). |
The example when specifying functions is shown below.
_func_led
_func_beep
_func_motor
:
_func_switch
|
[Example of use]
- | To generate the code that uses jmp directive to branch to the function specified in func.fjp, describe as: |
>ccrh -Xfar_jump=func.fjp -Xcommon=rh850 main.c
|