- •Глава 1. Сведения о компиляторе
- •1.1.Введение
- •1.2. Основные вопросы
- •1.3. Описание компилятора и документация
- •1.4. Компилятор и другие средства разработки
- •1.5. Набор возможностей компилятора
- •1.5.1. Стандарт ANSI Си
- •1.5.2. Оптимизация
- •1.5.3. Поддержка стандартной ANSI библиотеки
- •1.5.4. Гибкие модели памяти
- •1.5.5. Драйвер компилятора
- •Глава 2. Отличия 16-битового компилятора от ANSI
- •2.1. Введение
- •2.2. Основные вопросы
- •2.3. Отличия ключевых слов
- •2.3.1. Определение атрибутов переменных
- •2.3.2. Определение атрибутов функций
- •2.3.3. Inline функции
- •2.3.4. Переменные в определенных регистрах
- •2.3.4.1. Определение глобальных регистровых переменных
- •2.3.4.2. Определение локальных регистровых переменных
- •2.3.5. Комплексные числа
- •2.3.6. Целые размером в двойное слово
- •2.3.7. Ссылки на тип с помощью typeof
- •2.4. Отличия операторов
- •2.4.1. Метки как значения
- •2.4.2. Условные операторы с опущенными операндами
- •2.4.3. Диапазоны case
- •2.5. Отличия выражений
- •2.5.1. Двоичные константы
- •Глава 3. Использование компилятора в командной строке
- •3.1. Введение
- •3.2. Основные вопросы
- •3.3. Обзор
- •3.4. Соглашение для имен файлов
- •3.5. Опции
- •3.5.1. Опции, специфические для устройств dsPIC
- •3.5.2. Опции для управления типом результатов
- •3.5.3. Опции для управления диалектом Cи
- •3.5.5. Опции для отладки
- •3.5.6. Опции для управления оптимизацией
- •3.5.7. Опции для управления препроцессором
- •3.5.8. Опции для ассемблера
- •3.5.9. Опции для компоновщика
- •3.5.10. Опции для поиска в каталогах
- •3.5.11. Опции для соглашений по генерации кода
- •3.6. Переменные окружения
- •3.7. Предопределенные имена макро
- •3.9. Компиляция нескольких файлов в командной строке
- •3.10. Особенные символы
- •Глава 4. Среда периода исполнения
- •4.1. Введение
- •4.2. Основные вопросы
- •4.3. Адресное пространство
- •4.4. Запуск и инициализация
- •4.5. Пространства памяти
- •4.6. Модели памяти
- •4.6.1. Ближние и дальние данные
- •4.6.2. Ближний и дальний код
- •4.7. Расположение кода и данных
- •4.8. Программный стек
- •4.9. Использование стека в Си
- •4.11. Соглашения по вызову функций
- •4.11.1. Параметры функции
- •4.11.2. Возвращаемое значение
- •4.12. Соглашения о регистрах
- •4.13. Двоичная инверсия и модульная адресация
- •4.14.1. Загрузочные и защищенные константы
- •4.14.2. Строковые константы как аргументы
- •4.14.3. Переменные с квалификатором const в безопасной Flash
- •4.14.4. Модель совместимости объектов
- •Глава 5. Типы данных
- •5.1. Введение
- •5.2. Основные вопросы
- •5.3. Представление данных
- •5.4. Целые
- •5.5. С плавающей точкой
- •5.6. Указатели
- •Глава 6. Дополнительные типы указателей Си
- •6.1. Введение
- •6.2. Управляющие PSV указатели
- •6.2.1. Определение данных для управления доступом PSV
- •6.2.2. Управляемый доступ PSV
- •6.2.3. Рассмотрение ISR
- •6.3. PMP указатели
- •6.3.1. Инициализация PMP
- •6.3.2. Объявление нового пространства памяти
- •6.3.3. Определение переменных в пространстве PMP
- •6.4. Внешние указатели
- •6.4.1. Объявление нового пространства памяти
- •6.4.2. Определение переменных во внешнем пространстве
- •6.4.3. Определение способа доступа к пространству памяти
- •6.4.3.2. Функции записи
- •6.4.4. Пример внешней памяти
- •Глава 7. Файлы поддержки устройства
- •7.1. Введение
- •7.2. Основные вопросы
- •7.3. Файлы заголовков процессора
- •7.4. Файлы определения регистров
- •7.5. Использование SFR
- •7.6. Использование макросов
- •7.6.1. Макросы настройки битов конфигурации
- •7.6.2. Макросы использования ассемблера inline
- •7.6.3. Макросы выделения памяти данных
- •7.6.4. Макросы объявления ISR
- •7.7. Адресация EEDATA из Си - только для dsPIC30F
- •7.7.1. Доступ к EEDATA через PSV
- •7.7.2. Доступ к EEDATA посредством команд TBLRDx
- •7.7.3. Дополнительные источники информации
- •Глава 8. Прерывания
- •8.1. Введение
- •8.2. Основные вопросы
- •8.3. Написание программы обработки прерывания
- •8.3.1. Рекомендации по написанию ISR
- •8.3.3. Кодирование ISR
- •8.3.4. Использование макросов для объявления простых ISR
- •8.4. Запись вектора прерывания
- •8.4.1. Вектора прерываний dsPIC30F (без SMPS)
- •8.4.3. Вектора прерываний PIC24F
- •8.4.4. Вектора прерываний dsPIC33F/PIC24H
- •8.5. Сохранение контекста в ISR
- •8.7. Вложенные прерывания
- •8.8. Разрешение/запрещение прерываний
- •8.9. Разделение памяти между основной программой и ISR
- •8.9.1. Разработка проблем
- •8.9.2. Разработка решений
- •8.9.3. Пример приложения
- •8.10. Использование PSV в ISR
- •Глава 9. Совместное использование ассемблера и Си
- •9.1. Введение
- •9.2. Основные вопросы
- •9.3. Смесь переменных и функций на ассемблере и Си
- •9.4. Использование ассемблера inline
- •Приложение A. Определяемое реализацией поведение
- •A.12. Квалификаторы
- •A.13. Деклараторы
- •A.14. Операторы
- •A.17. Сигналы
- •A.18. Потоки и файлы
- •A.20. Errno
- •A.22. Abort
- •A.23. Exit
- •A.24. Getenv
- •A.25. Система
- •A.26. Strerror
- •Приложение B. Встроенные функции
- •B.2. Список встроенных функций
- •Приложение C. Диагностика
- •Приложение D. Компиляторы Си PIC18 и PIC24/dsPIC
- •D.6. Использование стека
- •D.11. Банк доступа
- •D.12. Inline ассемблер
- •D.13. Прагмы
- •D.14. Модели памяти
- •D.15. Соглашения о вызове
- •D.16. Код запуска
- •D.17. Управляемые компилятором ресурсы
- •D.18. Оптимизация
- •D.20. Определяемое реализацией поведение
- •D.21. Битовые поля
Руководство пользователя по 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. |