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

Руководство пользователя по MPLAB® компилятору Си для PIC24 и dsPIC®

© 2008 Microchip Technology Inc.

DS51284H(ru)

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

Лицензионное соглашение.

Данный документ является неофициальным переводом большей части общедоступного документа

«MPLAB® C COMPILER FOR PIC24 MCUs AND dsPIC® DSCs USER’S GUIDE» (DS51284H) фирмы Microchip. По лености переводчика в перевод не включены: предисловие, приложения E-G, глоссарий, индекс и список представительств фирмы.

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

Использование. Переводчик предоставляет право некоммерческого использования, копирования и распространения данного документа в электронном и бумажном виде всем без ограничения. При публикации всего документа или фрагментов перевода ссылка на переводчика обязательна.

Ответственность. Данный документ предоставляется «как есть» и переводчик не дает никаких гарантий об отсутствии в нем ошибок. Переводчик также не несет никакой отвественности за возможные потери или ущерб, явный и косвенный, который может быть причинен из-за использования данного документа при проведении любых работ.

DS51284H(ru)

© 2008 Microchip Technology Inc.

 

 

 

 

 

Содержание

 

 

 

 

 

 

 

 

Глава 1. Сведения о компиляторе

..........................................................

 

1-1

1.1.

Введение................................................................................................................

 

 

 

1-1

1.2.

Основные вопросы................................................................................................

 

 

 

1-1

1.3. Описание компилятора и документация..............................................................

 

1-1

1.4. Компилятор и другие средства разработки.........................................................

 

1-2

1.5.

Набор возможностей компилятора......................................................................

 

 

1-3

 

1.5.1.

Стандарт ANSI Си ..................................................................................

 

 

 

1-3

 

1.5.2.

Оптимизация...........................................................................................

 

 

 

1-3

 

1.5.3.

Поддержка стандартной ANSI ......................................библиотеки

1-3

 

1.5.4.

Гибкие модели памяти

 

A

1-3

 

 

 

 

1.5.5.

Драйвер компилятора ...........................................................................

Wilson

 

1-3

 

 

 

 

 

2-1

Глава 2. Отличия 16-битового компилятора от ANSI ..........................

2.1.

Введение...............................................................................................................

 

 

 

2-1

2.2.

Основные вопросы................................................................................................

 

 

 

2-1

2.3.

Отличия ключевых слов ........................................................................................

 

 

 

2-1

 

2.3.1.

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

 

2-1

 

2.3.2.

Определение атрибутов функций........................................................

 

2-10

 

2.3.3.

Inline функции .......................................................................................

by

 

 

2-16

 

 

 

 

 

2-18

 

2.3.4. Переменные в определенных ...........................................регистрах

 

 

 

2.3.4.1. Определение глобальных ...........регистровых переменных

2-18

 

 

2.3.4.2. Определение локальных ............регистровых переменных

2-19

3.2.

2.3.5.

Комплексные числа..............................................................................

 

 

 

2-19

Основные вопросыTranslated................................................................................................

 

 

 

3-1

 

2.3.6. Целые размером в двойное .....................................................слово

 

2-20

 

2.3.7. Ссылки на тип с помощью ........................................................typeof

 

2-20

2.4.

Отличия операторов ............................................................................................

 

 

 

2-21

 

2.4.1.

Метки как значения..............................................................................

 

 

 

2-21

 

2.4.2. Условные операторы с опущенными ............................операндами

2-22

 

2.4.3.

Диапазоны case....................................................................................

 

 

 

2-22

2.5.

Отличия выражений ............................................................................................

 

 

 

2-22

 

2.5.1.

Двоичные константы ............................................................................

 

 

 

2-22

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

3-1

3.1.

Введение...............................................................................................................

 

 

 

3-1

3.3.

Обзор......................................................................................................................

 

 

 

 

3-1

3.4. Соглашение для имен файлов..............................................................................

 

 

 

3-2

3.5.

Опции......................................................................................................................

 

 

 

 

3-2

 

3.5.1. Опции, специфические для ........................................устройств dsPIC

3-2

 

3.5.2. Опции для управления типом ...........................................результатов

3-4

 

3.5.3.

Опции для управления диалектом ...................................................Cи

 

3-5

3.5.4.Опции управления предупреждениями и сообщениями об ошибках 3-5

3.5.5.

Опции для отладки ...............................................................................

3-13

3.5.6. Опции для управления оптимизацией.................................................

3-13

3.5.7.

Опции для управления препроцессором ...........................................

3-19

© 2008 Microchip Technology Inc.

DS51284H(ru) стр. i

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

 

3.5.8.

Опции для ассемблера ........................................................................

 

 

 

3-22

 

3.5.9.

Опции для компоновщика ...................................................................

 

 

 

3-23

 

3.5.10. Опции для поиска в каталогах.............................................................

 

 

3-24

 

3.5.11. Опции для соглашений по генерации кода

........................................

3-24

3.6.

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

 

 

 

 

3-27

3.7.

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

 

 

 

3-28

3.8.

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

3-29

3.9.

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

3-30

3.10. Особенные символы ...........................................................................................

 

 

 

.

3-31

Глава 4. Среда периода исполнения

A

4-1

 

 

 

4.1.

Введение

 

Wilson

 

 

4-1

 

 

 

 

4.2.

Основные вопросы................................................................................................

 

 

 

 

4-1

4.3.

Адресное пространство ........................................................................................

 

 

 

 

4-1

4.4.

Запуск и инициализация........................................................................................

 

 

 

 

4-1

4.5.

Пространства памяти ............................................................................................

 

 

 

 

4-2

4.6.

Модели памяти ......................................................................................................

 

 

 

 

4-3

 

4.6.1. Ближние и дальние данные...................................................................

 

 

 

4-4

 

4.6.2. Ближний и дальний код .........................................................................

 

 

 

4-4

4.7.

Расположение кода и данных ..............................................................................

by

 

 

 

4-5

4.8.

Программный стек

 

 

 

4-6

 

 

 

 

4.9.

Использование стека в Си....................................................................................

 

 

 

 

4-7

4.10. Использование хипа в Си .....................................................................................

 

 

 

 

4-9

4.11. Соглашения по вызову функций.........................................................................

 

 

 

4-10

 

 

 

 

 

 

4-10

 

4.11.1. Параметры функции.............................................................................

 

 

 

 

 

4.11.2. Возвращаемое значение.....................................................................

 

 

 

4-12

 

4.11.3. Сохранение регистров при вызове функции......................................

4-12

4.12. Соглашения о регистрах .....................................................................................

 

 

 

 

4-12

4.13. Двоичная инверсия и модульная адресация ....................................................

 

 

4-13

4.14. Использование видимости программного пространства (PSV) ......................

4-13

 

4.14.1. Загрузочные и защищенные константы..............................................

 

 

4-13

 

4.14.2. Строковые константы как аргументы ................................................

 

 

4-14

 

4.14.3. Переменные с квалификатором const в безопасной Flash ..............

4-14

 

4.14.4. Модель совместимости объектов.......................................................

 

 

4-14

Глава 5. Типы данных ...............................................................................

 

 

 

 

5-1

5.1.

Введение................................................................................................................

 

 

 

 

5-1

5.2.

Основные вопросы................................................................................................

 

 

 

 

5-1

5.3.

Представление данных .........................................................................................

 

 

 

 

5-1

5.4.

Целые

 

 

 

 

5-1

5.5.

С плавающей .............................................................................................точкой

 

 

 

 

5-2

5.6.

Указатели ...............................................................................................................

 

 

 

 

5-2

Глава 6. Дополнительные ....................................типы указателей Си

 

6-1

6.1.

Введение................................................................................................................

 

 

 

 

6-1

DS51284H(ru) стр. ii

© 2008 Microchip Technology Inc.

Содержание

6.2.

Управляющие PSV указатели...............................................................................

 

 

 

6-1

 

6.2.1. Определение данных для управления доступом PSV ........................

 

6-1

 

6.2.2.

Управляемый доступ PSV

.....................................................................

 

6-2

 

6.2.3.

Рассмотрение ISR..................................................................................

 

 

 

6-2

6.3.

PMP указатели .......................................................................................................

 

 

 

6-3

 

6.3.1.

Инициализация PMP...............................................................................

 

 

 

6-3

 

6.3.2. Объявление нового пространства ...........................................памяти

 

6-4

 

6.3.3. Определение переменных .................................в пространстве PMP

 

6-5

6.4.

Внешние указатели................................................................................................

 

 

 

6-5

 

6.4.1.

Объявление нового пространства ......................................памяти

 

6-6

 

 

 

 

A

.......................6-6

 

6.4.2. Определение переменных во внешнем пространстве.

 

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

6-6

 

 

6.4.3.1. Функции чтения

Wilson

 

6-6

 

 

 

 

 

 

6.4.3.2. Функции записи .........................................................................

 

 

6-7

 

6.4.4.

Пример внешней памяти.......................................................................

 

 

6-8

Глава 7. Файлы поддержки устройства................................................

 

7-1

7.1.

Введение................................................................................................................

 

 

 

7-1

7.2.

Основные вопросы................................................................................................

 

 

 

7-1

7.3.

Файлы заголовков процессора.............................................................................

by

 

 

7-1

7.4.

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

 

 

7-2

 

 

 

7.5.

Использование SFR ..............................................................................................

 

 

 

7-2

7.6.

Использование макросов .....................................................................................

 

 

 

7-4

8.3.

7.6.1. Макросы настройки битов .............................................конфигурации

 

7-4

Написание Translatedпрограммы обработки прерывания..................................................

 

8-2

 

7.6.2. Макросы использования ассемблера .........................................inline

 

7-4

 

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

 

7-4

 

7.6.4.

Макросы объявления ISR......................................................................

 

 

7-5

7.7. Адресация EEDATA из Си - только ..............................................для dsPIC30F

 

7-5

 

7.7.1. Доступ к EEDATA через PSV ................................................................

 

7-5

 

7.7.2. Доступ к EEDATA посредством ................................команд TBLRDx

 

7-6

 

7.7.3.

Дополнительные источники .............................................информации

 

7-7

Глава 8. Прерывания.................................................................................

 

 

 

8-1

8.1.

Введение................................................................................................................

 

 

 

8-1

8.2.

Основные вопросы................................................................................................

 

 

 

8-1

 

8.3.1. Рекомендации по написанию .........................................................ISR

 

8-2

 

8.3.2.

Синтаксис ISR.........................................................................................

 

 

 

8-2

 

8.3.3.

Кодирование ISR....................................................................................

 

 

 

8-3

 

8.3.4. Использование макросов ....................для объявления простых ISR

8-3

8.4.

Запись вектора прерывания.................................................................................

 

 

 

8-3

 

8.4.1. Вектора прерываний dsPIC30F .........................................(без SMPS)

 

8-4

 

8.4.2. Вектора прерываний dsPIC30F ............................................(с SMPS)

 

8-6

 

8.4.3.

Вектора прерываний PIC24F.................................................................

 

8-7

 

8.4.4.

Вектора прерываний dsPIC33F/PIC24H .............................................

 

8-10

8.5.

Сохранение контекста в ISR...............................................................................

 

 

 

8-13

© 2008 Microchip Technology Inc.

DS51284H(ru) стр. iii

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

8.6.

Время ожидания..................................................................................................

8-13

8.7.

Вложенные прерывания .....................................................................................

8-13

8.8.

Разрешение/запрещение прерываний ..............................................................

8-14

8.9. Разделение памяти между основной программой и ISR.................................

8-15

 

8.9.1.

Разработка проблем ............................................................................

8-15

 

8.9.2.

Разработка решений............................................................................

8-17

 

8.9.3.

Пример приложения ............................................................................

8-17

8.10. Использование PSV в ISR ..................................................................................

8-18

 

 

 

 

 

.

9-1

Глава 9. Совместное использование ассемблера и Си..................................

9.1.

Введение................................................................................................................

 

 

A

 

9-1

9.2.

Основные вопросы

 

Wilson

 

9-1

 

 

 

9.3.

Смесь переменных и функций на ассемблере и Си

...........................................

9-1

9.4.

Использование ассемблера inline

........................................................................

 

9-3

Приложение A. Определяемое реализацией .............................поведение

A-1

A.1.

Введение...............................................................................................................

 

 

 

 

A-1

A.2.

Основные вопросы...............................................................................................

 

 

 

A-1

A.3.

Трансляция............................................................................................................

by

 

 

A-2

A.4.

Окружение

 

 

A-2

 

 

 

A.5.

Идентификаторы ...................................................................................................

 

 

 

A-2

A.6.

Символы................................................................................................................

Translated

 

 

 

A-3

A.20.

Errno ......................................................................................................................

 

 

 

A-9

A.7.

Целые ....................................................................................................................

 

 

 

 

A-3

A.8.

С плавающей точкой ............................................................................................

 

 

 

A-4

A.9.

Массивы и указатели............................................................................................

 

 

 

A-5

A.10. Регистры................................................................................................................

 

 

 

 

A-5

A.11. Структуры, союзы, перечисления .............................................и битовые поля

 

A-5

A.12. Квалификаторы .....................................................................................................

 

 

 

A-5

A.13. Деклараторы.........................................................................................................

 

 

 

A-6

A.14. Операторы

............................................................................................................

 

 

 

A-6

A.15. Директивы препроцессора ..................................................................................

 

 

 

A-6

A.16. Библиотечные функции ........................................................................................

 

 

 

A-7

A.17. Сигналы .................................................................................................................

 

 

 

 

A-8

A.18. Потоки и файлы.....................................................................................................

 

 

 

A-8

A.19. Временный файл (tmpfile) ....................................................................................

 

 

 

A-9

A.21. Память...................................................................................................................

 

 

 

 

A-9

A.22. Abort.......................................................................................................................

 

 

 

 

A-9

A.23. Exit .........................................................................................................................

 

 

 

 

A-9

A.24. Getenv....................................................................................................................

 

 

 

 

A-9

A.25. Система...............................................................................................................

 

 

 

 

A-10

A.26. Strerror .................................................................................................................

 

 

 

 

A-10

Приложение B. Встроенные функции .............................................................

 

B-1

B.1.

Введение...............................................................................................................

 

 

 

 

B-1

DS51284H(ru) стр. iv

© 2008 Microchip Technology Inc.

 

 

 

 

 

Содержание

 

 

 

 

 

 

 

 

 

 

 

 

B.2.

Список встроенных функций

................................................................................

 

 

B-2

Приложение C. Диагностика.............................................................................

 

 

 

C-1

C.1.

Введение...............................................................................................................

 

 

 

C-1

C.2.

Ошибки..................................................................................................................

 

 

 

C-1

C.3.

Предупреждения................................................................................................

 

 

.

C-19

 

 

 

 

D-1

Приложение D. Компиляторы Си PIC18 и PIC24/dsPIC.................................

D.1.

Введение

 

 

A

D-1

 

 

 

D.2.

Основные вопросы...............................................................................................

 

Wilson

 

D-1

D.3.

Форматы данных

 

 

D-2

 

 

 

D.4.

Указатели .............................................................................................................

 

 

 

D-2

D.5.

Классы памяти ......................................................................................................

 

 

 

D-2

D.6.

Использование стека ..........................................................................................

 

 

 

D-3

D.7.

Квалификаторы памяти ........................................................................................

 

 

 

D-3

D.8.

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

 

 

D-3

D.9.

Приведение целых................................................................................................

 

 

 

D-3

D.10. Строковые константы...........................................................................................

 

 

 

D-3

D.11. Банк доступа.........................................................................................................

by

 

 

D-3

D.12. Inline ассемблер

 

 

D-4

 

 

 

D.13. Прагмы ..................................................................................................................

 

 

 

D-4

D.14. Модели памяти .....................................................................................................

 

 

 

D-5

 

Translated

 

 

 

D-5

D.15. Соглашения о вызове...........................................................................................

 

 

 

D.16. Код запуска...........................................................................................................

 

 

 

D-5

D.17. Управляемые компилятором ресурсы ...............................................................

 

D-6

D.18. Оптимизация .........................................................................................................

 

 

 

D-6

D.19. Формат объектных модулей ................................................................................

 

 

 

D-6

D.20. Определяемое реализацией поведение.............................................................

 

D-6

D.21. Битовые поля ........................................................................................................

 

 

 

D-6

© 2008 Microchip Technology Inc.

DS51284H(ru) стр. v

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

A . Wilson by Translated

DS51284H(ru) стр. vi

© 2008 Microchip Technology Inc.

Руководство пользователя по MPLAB® компилятору Си для PIC24 и dsPIC®

Глава 1. Сведения о компиляторе

1.1.Введение

Семейство цифровых сигнальных контроллеров или DSC (dsPIC30F и dsPIC33F) объединяет в себе высокую производительность, требуемую в DSP приложениях, с возможностями стандартных микроконтроллеров, которые необходимы для

встроенных приложений. Микроконтроллеры

PIC24

идентичны

dsPIC DSC

за

 

A

сигнального

процессора

и

исключением того, что они не имеют цифрового.

соответствующего набора команд. Они представляют собой подмножество и

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

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

Эта глава дает обзор указанных инструментальных средств и знакомит с характеристиками оптимизирующего компилятора Си, включая способы работы с ассемблером и компоновщиком. Ассемблер и компоновщик подробно обсуждаются в «MPLAB® Assembler, Linker and Utilities for PIC24 MCUs and dsPIC® DSCs User’s Guide» (DS51317).

1.2.Основные вопросы

Вопросы, обсуждаемые вbyэтой главе:

Описание компилятора и документация

1.3. Описание компилятора и документация

•• КомпиляторTranslatedи другие средства разработки Набор возможностей компилятора

Есть три компилятора, которые поддерживают 16-битовые контроллеры Microchip. Первый компилятор, прежде называвшийся MPLAB C30, теперь называется:

1. MPLAB C Compiler for PIC24 MCUs and dsPIC® DSCs — поддерживает все 16-битовые устройства Два дополнительных компилятора, которые являются подмножествами первого:

2. MPLAB C Compiler for dsPIC DSCs — поддерживает устройства dsPIC30F/33F

3. MPLAB C Compiler for PIC24 MCUs — поддерживает микроконтроллеры PIC24F/H

Каждый компилятор является ANSI x3.159-1989 совместимым оптимизирующим компилятором Си. Каждый компилятор — это консольное приложение Windows, которое обеспечивает платформу для разработки кода на Си. Каждый компилятор является портированным компилятором GCC от Free Software Foundation.

Первый и второй компиляторы включают языковые расширения для встраиваемых приложений на dsPIC DSC.

Это руководство описывает первый компилятор, так как второй и третий компиляторы являются подмножествами первого. Возможности, характерные для специфические устройств, т.е. особенности компиляторов, отмечены в тексте звездой (см. Предисловие) и текстом, идентифицирующим устройства, к которым они относятся.

 

 

© 2008 Microchip Technology Inc.

DS51284H(ru) стр. 1-1

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

1.4.Компилятор и другие средства разработки

Компилятор MPLAB Си для PIC24 и dsPIC обрабатывает исходные файлы на Си, производя файлы на ассемблере. Сгенерированные компилятором файлы ассемблируются и компонуются с другими объектными файлами и библиотеками, чтобы в результате получить прикладную программу в исполняемом формате COFF или ELF файлов. Файлы COFF или ELF могут быть загружены в MPLAB IDE, для тестирования и отладки, или с помощью утилиты-конвертора могут быть преобразованы в Intel® hex формат, пригодный для загрузки в симулятор командной строки или для программирования устройства. На рис. 1-1 показаны потоки данных

в процессе разработки программы.

.

 

A

РИС. 1-1. ПОТОКИ ДАННЫХ В ПРОЦЕССЕ РАЗРАБОТКИ

Wilson

 

by

 

Translated

 

DS51284H(ru) стр. 1-2

© 2008 Microchip Technology Inc.

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