- •Глава 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. Битовые поля
Приложение A Определяемое реализацией поведение
A.20. Errno
A.22. Abort
A.23. Exit
Может ли один и тот же файл быть открытым много раз? (ISO 7.9.3)
Определяется приложением.
Как действует функция удаления на открытый файл? (ISO 7.9.4.1)
Определяется приложением.
Что произойдет, если файл с новым именем существует перед вызовом функции переименования? (ISO 7.9.4.2)
Определяется приложением.
Какая форма выхода для преобразования %p в функции fprintf? (ISO 7.9.6.1)
Шестнадцатеричное представление.
В какой форме выполняется ввод для преобразования %p в функции fscanf? (ISO |
||
7.9.6.2) |
. |
|
A |
||
В шестнадцатеричном представлении. |
Будет ли удален временный файл при аварийном завершении программы?
(ISO 7.9.4.3) |
Wilson |
|
Да. |
||
|
Какая величина установится макросом errno, при ошибке функции fgetpos или ftell?
(ISO 7.9.9.1, ISO 7.9.9.4) |
by |
|
|
Определяется приложением. |
Какой формат сообщений, создаваемых функцией perror? (ISO 7.9.10.4)
Аргумент perror, за ним двоеточие, далее текстовое описание величины errno.
Выделяется блок нулевой длины.
КакTranslatedведет себя функция calloc, malloc или realloc, если запрошенный размер нулевой? (ISO 7.10.3)
Что случается c открытыми и временными файлами при вызове функции abort? (ISO 7.10.4.1)
Ничего.
Какой статус возвращается функцией выхода, если величина аргумента отличается от нуля, EXIT SUCCESS, или EXIT_FAILURE? (ISO 7.10.4.3)
Величина аргумента.
A.24. Getenv
Какие ограничения есть на имена среды? (ISO 7.10.4.4)
Определяется приложением.
Опишите метод, использованный для изменения списка среды, полученного вызовом функции getenv. (ISO 7.10.4.4)
Определяется приложением.
© 2008 Microchip Technology Inc. |
DS51284H(ru) стр. A-9 |
16-битовый компилятор Си. Руководство
A.25. Система
Опишите формат строки, которая передается в системную функцию. (ISO 7.10.4.5)
Определяется приложением.
Какой режим выполнения реализуется системной функцией? (ISO 7.10.4.5)
Определяется приложением.
A.26. Strerror
Опишите формат сообщения об ошибке, выдаваемого функцией strerror. (ISO 7.11.6.2)
Простая символьная строка. |
. |
|
Перечислите содержание строк сообщений об ошибках, возвращаемых вызовом |
|||
функции strerror. (ISO 7.11.6.2) |
A |
||
|
|||
ТАБЛИЦА A-7. СТРОКИ СООБЩЕНИЙ ОБ ОШИБКАХ |
|||
|
|
|
|
|
Errno |
|
Сообщение |
|
|
|
|
|
0 |
no error |
|
|
EDOM |
domain error |
|
|
|
|
|
|
ERANGE |
range error |
|
|
|
|
|
|
EFPOS |
file position ng error |
|
|
|
|
|
|
EFOPEN |
file open error |
|
|
|
Wilson |
|
|
nnn |
error #nnn |
|
|
|
|
|
|
Translated |
by |
|
|
|
|
DS51284H(ru) стр. A-10 |
© 2008 Microchip Technology Inc. |