3.3Компилятор Си Cx51 (C Compiler Keil Cx51)
Новые возможности компилятора Cx51 (Cx51 Highlights):
Cx51 поддерживает все разновидности 8051 и обеспечивает доступ ко всем программным компонентам;
Быстрая 32-разрядная IEEE арифметика с плавающей точкой;
Cx51 поддерживает множественные указатели данных DPTR и дополнительные арифметические устройства;
Детальные предупреждения и сообщения об ошибках, проверка синтаксиса;
Cx51 осуществляет полную регистровую оптимизацию New Code Optimizations;
Доступ на С ко всем регистрам SFR, побитно адресуемым регистрам и отдельным битам Memory and SFRs;
Очень быстрые прерывания за счет reentrant функций Interrupt Functions;
Гибкие указатели областей памяти Flexible Pointers;
Модели и селекторы памяти Memory Models and Memory Selectors;
Эффективные механизмы memory banking и отладки - расширение адресного пространства за пределы 64 KB;
Оптимизация при линковании - инструкции AJMP и ACALL;
Поддержка отладочной информации для всех эмуляторов.
Оптимизация кода (Code Optimizations)
Cx51 поддерживает эффективные механизмы оптимизации, которые генерируют программы минимального размера:
Регистровая оптимизация Dynamic Register Allocation позволяет разместить в регистрах больше переменных, уменьшить размер кода (за счет уменьшения числа команд MOV) и сократить объем оверлейных данных;
Общая оптимизация кода Common Tail Optimization комбинирует идентичные фрагменты кода в специальных блоках и сокращает размер кода.
Память и регистры специальных функций (Memory and SFRs)
Компилятор Cx51 осуществляет прямое управление банками регистров и полное их использование, побитовую адресацию данных:
Для доступа к регистрам специального назначения и их отдельным битам используются ключевые слова sfr и sbit;
В соответствие переменной может быть назначен любой сегмент адресного пространства. С помощью ключевого слова _at_ переменные могут быть размещены по фиксированному адресу памяти.
Функции обработки прерываний (Interrupt Functions)
Cx51 осуществляет эффективное управление прерываниями при написании функций прерывания на С за счет малого времени вызова/возврата в/из прерывания и переключения регистровых банков. Cx51 поддерживает reentrant функции и код, не привязанный жестко к регистровым банкам, для генерации процедур прерывания и использования в многозадачных приложениях. Рекурсивные или повторно используемые функции определяются с помощью ключевого слова reentrant. Функции, вызываемые многими задачами должны быть определены как reentrant.
Гибкие указатели (Flexible Pointers)
Линковщик поддерживает code banking, а uVision Debugger поддерживает тестирование программ размером до 16MB code и xdata. Cx51 имеет два типа указателей для различных областей памяти:
Основные указатели Generic pointers позволяют получить доступ ко всем областям памяти 8051, сохраняя информацию о типе памяти и адресе объекта в 3-х байтах;
Специальные указатели Memory-specific pointers объявляются через тип памяти и указывают на определенную область памяти 8051. Поскольку для сохранения информации об объекте требуется всего 2 байта, такие указатели позволяют сгенерировать более компактный код
Модели и селекторы памяти (Memory Models and Memory Selectors)
Модель памяти определяется с помощью default memory selector используемого для переменных. Однако всегда есть возможность вполне определенно специфицировать memory selector для любой переменной. Область размещения переменных и функций и время доступа к ним определяется моделью памяти. Выбор модели памяти зависит от требуемого размера и физического размещения: Small - 128 байт, Compact - 256 байт, Large - 64 Кбайт. Несколько типов селекторов позволяют осуществить эффективный доступ к различным областям памяти и сгенерировать компактный код (см. табл. 1).
Табл. 1. Модели и селекторы памяти
Селектор
|
Область памяти
|
data
|
128 байт во встроенной RAM – непосредственная адресация
|
bdata
|
16 байт во встроенном RAM - непосредственная битовая/байтовая адресация
|
idata
|
256 байт во встроенном RAM - косвенная адресация
|
pdata
|
256 байт в страничной внешней RAM
|
xdata
|
64 Kбайт расширенной RAM
|
code
|
64 Kбайт памяти программ
|
far
|
16 Мбайт памяти data/const, размер объекта 64 Kбайт
|
near
|
64 Kбайт непосредственно адресуемой памяти для 251
|
huge
|
16 Мбайт косвенно адресуемой памяти, объект произвольного размера
|
edata
|
96 байт расширенной побитно адресуемой памяти для 251
|
В состав Cx51 входят два компилятора: C51.exe и CX51.exe. Более подробную информацию о компиляторах можно получить в руководстве пользователя [2]. Кроме этого, в техническом описании учебно-лабораторного стенда SDK-1-1 приведён перевод с английского языка для компилятора С51.exe [3].
При работе в Keil uVision выбор компилятора (C51.exe или CX51.exe) происходит автоматически в зависимости от типа микропроцессора.
|
|
Учебное пособие к выполнению лабораторных работ по дисциплине «Микропроцессорная техника»
Разработка прикладного программного обеспечения для микропроцессорных систем на основе микроконтроллера
|
|
Учебное пособие по выполнению лабораторных работ разработано в соответствии...
Механизация и электрификация сельскохозяйственного производства: учебное пособие по выполнению лабораторных работ / И. П. Машкарева,...
|
|
Методическое пособие по выполнению лабораторных работ по дисциплине...
Изыскания и основы проектирования, автомобильных дорог. Методическое пособие по выполнению лабораторных работ по дисциплине «Основы...
|
|
Коновалов В. М. К64 Пособие к выполнению лабораторных работ по дисциплине...
К64 Пособие к выполнению лабораторных работ по дисциплине «Прикладное программное обеспечение». Выпуск М.: Мгту га, 2002 г. 36 с
|
|
Работа с субд mysql Учебное пособие по выполнению лабораторных работ
О. Н. Лучко, профессор, зав кафедрой прикладной информатики и математики Омского государственного института сервиса
|
|
Методические указания по выполнению практических и лабораторных работ...
Учебно-методическое пособие предназначенодля студентов 3 курса, обучающихся по профессии 23. 01. 03 Автомеханик. Пособие содержит...
|
|
Методические указания по выполнению лабораторных работ по дисциплине...
Методические указания по выполнению лабораторных работ рассмотрены и утверждены на заседании кафедры «Безопасность труда и инженерная...
|
|
Методические указания для студентов по выполнению лабораторных и...
Методические указания для студентов по выполнению лабораторных и практических работ
|
|
Учебное пособие соответствует дисциплине «Профессиональный английский язык»
Учебное пособие предназначено для студентов технических вузов направления подготовки 230100 «Информатика и вычислительная техника»...
|
|
Методическое пособие по выполнению курсовых работ по дисциплине «web-дизайн...
Методическое пособие по выполнению курсовых работ по дисциплине «Web-дизайн и Web-программирование» для студентов очной и заочной...
|
|
Угловые измерения в геодезии методические указания к выполнению лабораторных...
Занятия по изучению устройства теодолита, выполнению поверок и юстировок теодолита, а также по измерению горизонтальных и вертикальных...
|
|
Учебное пособие по дисциплине «Математики»
Учебное пособие по дисциплине «Математики» разработано в соответствии с требованиями федерального государственного образовательного...
|
|
Учебное пособие ппи, 2008 104 с.: ил. Учебное пособие по дисциплине...
Учебное пособие по дисциплине «Конструкторско-технологическое обеспечение производства эвм» предназначено для студентов Псковского...
|
|
Методические указания по выполнению лабораторных работ Издательство
Инженерная геодезия. Методические указания по выполнению лабораторных работ. Составители: Шешукова Л. В., Тютина Н. М., Клевцов Е....
|
|
Учебно-методическое пособие по выполнению письменных работ по учебной дисциплине Красноярск
Б 948 Преступления против общественной безопасности и общественного порядка: Учебно-методическое пособие по выполнению письменных...
|
|
Стандартное задание 7 Расширенное задание 8 Рекомендации по выполнению...
Данное методическое пособие представляет собой руководство по установке и настройке необходимого программного обеспечения и выполнению...
|