The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

10.7.1 Созданий программ для uClinux

10.7.1 Созданий программ для uClinux

Предыдущая  Содержание  Следующая V*D*V

Исполняемым файлом в uClinux является двоичный файл формата "flat". Обычный файл ELF не поддерживается на uClinux. Набор инструментов для uClinux предоставляет специальную программу для преобразования файла ELF в файл bFLT. Не все файлы ELF могут быть преобразованы в BFLT. Для этого сгенерированный код должен быть позиционно независимым. uClinux имеет два варианта позиционно-независимых двоичных файлов: полностью перемещаемые двоичные файлы и двоичные файлы PIC. Список команд компилятора для создания разных форм файла bFLT, использующих набор инструментов m68k, приведён ниже.

 

Создание полностью перемещаемых двоичных файлов

 

Компилируем файл. Это создаст sample.o.
 
m68k-elf-gcc -m68000 -Os -g -fomit-frame-pointer -m68000
-fno-common -Wall -Dlinux -D__linux__ -Dunix
-D__uClinux__ -DEMBED -nostdinc
-I/home/sriramn/work/uclinux/uClinux-dist/include
-I/home/sriramn/work/uclinux/uClinux-dist/include/include
-fno-builtin -c -o sample.o sample.c
 

Компонуем и создаём файл "flt". Этот шаг создаст исполняемый файл sample и файл символов sample.gdb.
 
m68k-elf-gcc -m68000 -Os -g -fomit-frame-pointer -m68000
-fno-common -Wall -Dlinux -D__linux__ -Dunix
-D__uClinux__ -DEMBED -nostdinc
-I/home/sriramn/work/uclinux/uClinux-dist/include
-I/home/sriramn/work/uclinux/uClinux-dist/include/include
-fno-builtin -Wl,-elf2flt -Wl,-move-rodata -nostartfiles
/home/sriramn/work/uclinux/uClinux-dist/lib/crt0.o
-L/home/sriramn/work/uclinux/uClinux-dist/lib o sample
sample.o -lc

 

Создание двоичных файлов PIC

 

Компилируем файл.
 
m68k-elf-gcc -m68000 -Os -g -fomit-frame-pointer -m68000
-fno-common -Wall -Dlinux -D__linux__ -Dunix
-D__uClinux__ -DEMBED -nostdinc
-I/home/sriramn/work/uclinux/uClinux-dist/include
-I/home/sriramn/work/uclinux/uClinux-dist/include/include
-fno-builtin -msep-data -c -o sample.o sample.c
 

Компонуем и создаём файл "flt".
 
m68k-elf-gcc -m68000 -Os -g -fomit-frame-pointer -m68000
-fno-common -Wall -Dlinux -D__linux__ -Dunix
-D__uClinux__ -DEMBED -nostdinc
-I/home/sriramn/work/uclinux/uClinux-dist/include
-I/home/sriramn/work/uclinux/uClinux-dist/include/include
-fno-builtin -msep-data -Wl,-elf2flt -Wl,-move-rodata
-nostartfiles
/home/sriramn/work/uclinux/uClinux-dist/lib/crt0.o
-L/home/sriramn/work/uclinux/uClinux-dist/lib -o testhw1
sample.o -lc
 

Обратите внимание, что -msep-data заставляет выполнить -fPIC внутренне. А -elf2flt, передаваемая компоновщику, заставляет выполнить преобразование из формате ELF в bFLT. Кроме того, -msep-data включает XIP.
 

Чтобы изменить размер стека файла bFLT, используем команду
 
elf2flt –s <stack _size> test.flt
 

Чтобы сжать файл (всё кроме заголовков), используем
 
elft2flt –z –o test.flt test.elf

 

Сжатые образы не являются доступными для исполнения на месте, так как перед исполнением они должны быть распакованы в ОЗУ.

 

Предыдущая  Содержание  Следующая