Getting Started with M1750 Ada: Ada 95 Compilation System for Spacecraft Microprocessors | ||
---|---|---|
Prev | Chapter 2. Advanced Techniques | Next |
You may distribute the instructions of your program over several address states up to a maximum of 1M word on the 1750A. Calls between compilation units may then need to switch address states. The option for calls that switch address states is -mlong-calls, and you must give the option to the compiler, binder and linker. If you are using gnatmake then the option -mlong-calls must be given after -cargs and -largs.
$ m1750-coff-gnatmake -mlong-calls -f -g hello m1750-coff-gcc -c -mlong-calls -g hello.adb m1750-coff-gnatbind -x hello.ali m1750-coff-gnatlink -mlong-calls -g hello.ali
You can confirm that the expanded memory variants of the library files have been included using the linker's option -t, as follows:
$ m1750-coff-gnatmake -mlong-calls -f -g hello -largs -Wl,-t m1750-coff-gcc -c -mlong-calls -g hello.adb m1750-coff-gnatbind -x hello.ali m1750-coff-gnatlink -mlong-calls -g -t hello.ali /opt/m1750-ada-1.7/m1750-coff/bin/ld: mode coff_m1750_expanded /opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/art0.o b~hello.o ./hello.o (/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libada.a)a-except.o (/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libada.a)a-textio.o (/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libada.a)a-ioexce.o (/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libada.a)x-malloc.o (/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libada.a)s-stcosc.o (/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libc.a)open.o (/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libc.a)close.o (/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libc.a)unlink.o (/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libc.a)lseek.o (/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libc.a)read.o (/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libc.a)write.o (/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libc.a)sbrk.o