Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессорная техника Сторожок / MPLAB_C30_Руководство пользователя.pdf
Скачиваний:
161
Добавлен:
20.02.2016
Размер:
1.26 Mб
Скачать

Глава 3. Использование компилятора в командной строке

ТАБЛИЦА 3-15. (ПРОД-Е) ОПЦИИ СОГЛАШЕНИЙ О ГЕНЕРАЦИИ КОДА

Опция

 

Описание

 

 

-fverbose-asm

Выводить дополнительные комментарии в создаваемый

-fno-verbose-asm

ассемблерный код для улучшения его читабельности.

 

Принятая по умолчанию опция -fno-verbose-asm убирает

 

всю дополнительную информацию из ассемблерного файла,

 

что полезно при сравнении двух файлов на ассемблере.

 

 

-fvolatile

Рассматривать всю память, доступную посредством

 

указателей, как непостоянную.

 

 

-fvolatile-global

Рассматривать всю память, доступную для внешних и

 

глобальных данных, как непостоянную. Использование этой

 

опции не воздействует на static данные.

 

 

.

-fvolatile-static

Рассматривать всю память, доступную для static данных,

 

как непостоянную.

A

3.6.Переменные окружения

Переменные в этой секции — необязательные, но, будучи определены, они используются компилятором. Драйвер компилятора или другая программа могут сами задать подходящие величины для некоторых из следующих переменных окружения, если они не установлены. Драйвер или другая программа пользуются преимуществом внутренних сведений об установке компилятора. До тех пор, пока структура установки остается нетронутой, со всеми подкаталогами и исполняемыми

модулями, остающимися в той же относительной позиции, драйвер или программа

 

Wilson

 

будут способны определить подходящую величину.

ТАБЛИЦА 3-16. ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ ДЛЯ КОМПИЛЯТОРА

 

 

 

Переменная

by

Описание

 

 

 

PIC30 C INCLUDE PATH

Значение этой переменной представляет собой список

 

каталогов, разделенных точками с запятой, очень похожий на

 

PATH. Когда компилятор ищет файлы заголовков, он

 

проверяет каталоги, представленные в переменной, после

 

проверки тех, что заданы опцией -I, но перед проверкой

 

стандартных директорий для файлов заголовков.

 

Если переменная окружения не задана, препроцессор

 

выбирает подходящее значение на основе стандартной

 

установки. По умолчанию, для поиска включаемых файлов

 

будут проверены следующие каталоги:

 

<install-path>\include и <install-path>\support\h

 

 

PIC30 COMPILER PATH

Значение переменной PIC30_COMPILER_PATH представляет

Translated

собой список каталогов, разделенных точками с запятой,

очень похожий на PATH. Компилятор проверяет заданные

таким образом каталоги при поиске программ. Если там

программа не найдена, используется переменная

PIC30_EXEC_PREFIX.

 

 

 

© 2008 Microchip Technology Inc.

DS51284H(ru) стр. 3-27

16-битовый компилятор Си. Руководство

ТАБЛИЦА 3-16. (ПРОД-Е) ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ ДЛЯ КОМПИЛЯТОРА

 

 

Переменная

 

 

 

 

Описание

 

 

 

 

 

 

 

 

 

 

PIC30_EXEC_PREFIX

 

 

Когда переменная PIC30_EXEC_PREFIX установлена, она

 

 

 

 

 

 

определяет префикс, используемый в именах программ,

 

 

 

 

 

 

запускаемых компилятором. При использовании префикса с

 

 

 

 

 

 

именем программы разделитель каталогов автоматически не

 

 

 

 

 

 

добавляется, поэтому вы сами должны добавлять символ

 

 

 

 

 

 

обратной косой черты в конце строки префикса, если нужно.

 

 

 

 

 

 

Если компилятор не найдет нужную программу по

 

 

 

 

 

 

местоположению, заданному префиксом, он попытается

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

искать ее, используя переменную окружения PATH.

 

 

 

 

 

 

 

 

A

 

 

 

 

 

 

Если переменная PIC30_EXEC_PREFIX не установлена или

 

 

 

 

 

 

установлена на пустое значение, драйвер компилятора

 

 

 

 

 

 

выбирает значение, соответствующее стандартной

 

 

 

 

 

 

инсталляции. Если установка не изменялась, в результате

 

 

 

 

 

 

Wilson

 

 

 

 

 

 

 

этого драйвер способен найти необходимые программы.

 

 

 

 

 

 

Другие префиксы, заданные с помощью опции командной

 

 

 

 

 

 

строки -B, имеют приоритет перед определенными

 

 

 

 

 

 

пользователем или драйвером компилятора значениями

 

 

 

 

 

 

переменной PIC30_EXEC_PREFIX.

 

 

 

 

 

 

В обычных условиях лучше всего оставлять эту переменную

 

 

 

 

 

 

неопределенной и предоставлять драйверу находить

 

 

 

 

 

 

программы самому.

 

 

 

 

 

 

 

 

 

 

PIC30_LIBRARY_PATH

 

Значение этой переменной представляет собой список

 

 

 

 

 

 

каталогов, разделенных точками с запятой, очень похожий на

 

 

 

 

 

 

PATH. Эта переменная определяет список каталогов,

 

 

 

 

 

 

передаваемый компоновщику. Драйвер по умолчанию

 

 

 

 

 

 

задает ей значение:

 

 

 

 

 

 

 

<install-path>\lib;<install-path>\support\gld

 

 

 

 

 

by

 

 

PIC30_OMF

 

Определяет формат объектного модуля (Object Module For-

 

 

компилятором.Translated

 

mat, OMF) используемого компилятором. По умолчанию

 

 

 

 

 

 

 

 

 

 

 

 

создается объектный файл COFF. Если переменная

 

 

 

 

 

 

окружения PIC30_OMF имеет значение elf, будет

 

 

 

 

 

 

создаваться объектный файл ELF.

 

 

 

 

 

 

 

 

 

 

TMPDIR

 

 

Если переменная TMPDIR задана, она определяет каталог

 

 

 

 

 

 

для временных файлов. Компилятор использует временные

 

 

 

 

 

 

файлы для хранения результатов отдельной стадии

 

 

 

 

 

 

компиляции, которые будут нужны для следующей стадии:

 

 

 

 

 

 

например выходные результаты препроцессора, которые

 

 

 

 

 

 

будут входными для собственно компилятора.

 

 

 

 

 

 

 

 

3.7.

Предопределенные имена макро

 

 

Компилятор предопределяет отдельные макросы, которые могут проверяться

 

условными директивами в исходном коде.

 

 

Используются следующие символы для препроцессоной обработки, определенные

 

 

 

 

 

 

 

 

 

 

Компилятор

 

 

Символ

 

Определяется ли опцией -ansi ?

 

 

 

 

 

 

 

 

 

 

 

16-битовый

 

С30

 

 

 

нет

 

 

компилятор

 

 

 

 

 

 

 

__С30

 

да

 

 

 

 

 

 

 

 

 

 

 

__C30__

 

да

 

 

 

 

 

 

 

 

 

ELF специфика

 

C30ELF

 

нет

 

 

 

 

 

 

 

 

 

 

 

__C30ELF

 

да

 

 

 

 

 

 

 

 

 

 

 

__C30ELF__

 

да

 

 

 

 

 

 

 

 

 

COFF специфика

 

C30COFF

 

нет

 

 

 

 

 

 

 

 

 

 

 

__C30COFF

 

да

 

 

 

 

 

 

 

 

 

 

 

__C30COFF__

 

да

 

 

 

 

 

 

 

 

 

DS51284H(ru) стр. 3-28

© 2008 Microchip Technology Inc.

Глава 3. Использование компилятора в командной строке

Следующие символы задают целевое семейство

Символ

Определяется ли опцией -ansi ?

 

 

__dsPIC30F__

да

__dsPIC33F__

да

 

 

__PIC24F__

да

 

 

__PIC24H__

да

 

 

Кроме того, компилятор на основе целевого устройства определяет символ,

устанавливаемый с помощью -mcpu=. Например, -mcpu=30F6014, что определяет

символ __dsPIC30F6014__.

A

 

Компилятор определит константу __C30_VERSION. __, давая ей числовую величину

идентификатора версии. Это может быть использовано для получения преимуществ

от новых возможностей компилятора, при том сохраняя обратную совместимость с

более старыми версиями.

 

Величина получается из старших и младших чисел версии текущей реализации.

Например, реализация версии 2.00 будет иметь __C30_VERSION__ определенную

как 200. Это макро может быть использовано вместе со стандартными операторами

сравнения препроцессора, чтобы условно включать или исключать различные

конструкции кода.

 

Текущее значение __C30_VERSION может быть обнаружено с помощью опции

командной строки --version, или из содержания файла README.html, что

поставляется вместе с реализацией.Wilson

 

3.8. Компиляция единственногоby

Приложении

E. «Осуждаемые

файла в командной

 

строке

 

 

 

компоновать

единственный файл.

 

установлен

на вашем диске c:

 

следующее:

 

c:\ProgrTranslatedm Files\Microchip\MPLAB C30\include — каталог для включаемых файлов заголовков ANSI Cи. В этом каталоге компилятор хранит

файлы заголовков стандартных системных библиотек Си. Переменная среды PIC30 C INCLUDE_PATH может указать на этот каталог. (Чтобы проверить это достаточно напечатать set из командного приглашения DOS.)

c:\Program Files\Microchip\MPLAB C30\support\dsPIC30F\h — каталог для включаемых файлов заголовков, специфических для dsPIC® устройств. Это каталог, где компилятор хранит зависящие от типа dsPIC устройства файлы заголовков.

c:\Program Files\Microchip\MPLAB C30\lib — библиотечный каталог: в этом каталоге находятся библиотеки и заранее откомпилированные объектные файлы.

c:\Program Files\Microchip\MPLAB C30\support\dsPIC30F\gld

каталог сценариев компоновщика: в этом каталоге можно найти файлы зависящих от устройств сценариев компоновки.

c:\Program Files\Microchip\MPLAB C30\bin — каталог приложений: в этом каталоге расположены программы компилятора. Переменная среды PATH должна включать этот каталог.

Далее приведена простая Си программа для сложения двух чисел.

Создайте ее с помощью любого текстового редактора и сохраните как файл ex1.c.

© 2008 Microchip Technology Inc.

DS51284H(ru) стр. 3-29

#include <p30f2010.h> int main(void);
unsigned int Add(unsigned
16-битовый компилятор Си. Руководство

int a, unsigned int b);

 

unsigned int x, y, z;

 

 

 

int

 

 

 

main(void)

 

 

 

{

 

 

 

x = 2;

 

.

 

y = 5;

 

 

z = Add(x,y);

 

 

return 0;

 

 

 

 

 

}

 

A

 

unsigned int

 

 

 

 

 

Add(unsigned int a, unsigned int b)

 

 

{

 

 

 

return(a+b);

 

 

 

}

 

 

 

Первая строка программы включает файл заголовка p30f2010.h, который

 

обеспечивает определение для всех SFR данного устройства. Более подробно о

 

файлах заголовка, см. главу 7 «Файлы поддержки устройства».

 

Компилируйте программу введя следующую команду в ответ на приглашение DOS:

 

 

Wilson

 

 

C:\> pic30-gcc -o ex1.o ex1.c

 

 

Опция командной строки -o ex1.o присваивает имя исполняемому выходному

 

файлу формата COFF (если бы опция -o не была определена, то выходной файл был

 

бы назван a.exe). Выполняемый файл COFF может быть загружен в MPLAB IDE.

 

by

 

файл, используйте

 

 

 

3.9.

Компиляция нескольких файлов в командной строке

 

 

 

продемонстрировать

unsignedTranslatedint x, y, z; будут:

int

main(void)

{

 

 

x

= 2;

y

=

5;

z

=

Add(x,y);

return 0;

}

DS51284H(ru) стр. 3-30

© 2008 Microchip Technology Inc.

Соседние файлы в папке Микропроцессорная техника Сторожок