Keil uvision 5: Events (Workshops, Shows, and Seminars) for Keil

2.5. Руководство по среде разработки Keil uVision.

Интегрированная система предназначена:

  • для проектирования программного обеспечения путем формиро­вания текстов программ на одном из языков программирования (ассемблер или Си) в специализированном текстовом редакторе:

  • компиляции с получением исполнимого кода для микроконтрол­лера:

  • формирования модели работы портов ввода — вывода, тестирова­ния программ микроконтроллера путем симуляции их выполне­ния:

  • загрузки программ из компьютера в микроконтроллерную систему через интер­фейсы различных типов:

  • обмена данными между персональными ЭВМ и микроконтрол­лерной системой в реальном времени.

Современные программные системы, ориентированные на поддержку процесса проектирования, как правило, используют концепцию проектов.

Проект — это совокупность файлов, которые составляют некоторую разработку и фактически являются элементами описания

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

Базовым понятием является также понятие модели контроллера. Мо­дель контроллера определяет совокупность аппаратных ресурсов, которые учитываются компилятором и симулятором в составе системы. Каждая мо­дель контроллера соответствует аппаратной структуре определенной моди­фикации физического микроконтроллера семейства MCS-51. Таким образом, модель микроконтроллера — это совокупность следующих параметров:

  • объемы внутренней и внешней памяти программ и данных;

  • номенклатура и количество компонентов периферии, используе­мых в данной модификации микроконтроллера:

  • конфигурационные параметры, используемые при симуляции, например, размер и скорость доступа для модели памяти EEPROM.

С каждым проектом связывается определенная модель микрокон­троллера, для которого создается программа в этом проекте. Таким образом, параметры модели непосредственно влияют на процесс компиляции про­граммы и симуляцию ее выполнения при тестировании.

Для систем с микроконтроллерами 8051 разработаны мощные инструментальные средства, позволяющие снизить до минимума время разработки и отладки программного обеспечения. Среди прочих лидирующие позиции занимают программные средства, разработанные фирмой Keil. Инструментальные средства этой фирмы включают целый ряд мощных приложений, таких как компилятор языка Cи для микроконтроллеров 8051, известный под названием Keil C51, макроассемблер A51, совместимый с ASM-51, и наконец, удобная графическая оболочка для разработки и отладки программ Keil uVision.

Среда разработки Keil uVision (в настоящее время используются версии 3 и 4) позволяет создавать сколь угодно сложные проекты, состоящие из разных модулей, написанных как на C, так и на языке ассемблера, подключать библиотеки функций и т. д. Кроме того, эта среда включает удобный отладчик (симулятор), позволяющий оценить и быстро проверить работоспособность программы. Хотя при разработке программ можно обойтись только командной строкой, откомпилировав и собрав программу вне среды Keil uVision, графическая среда разработки все же более удобна, поскольку позволяет автоматизировать сборку программ и проверить их работоспособность с помощью отладчика.

Для разработки и отладки программ в среде Keil желательно иметь установленную графическую среду Keil uVision версии 3 или 4 и компиляторы C51 и A51. Можно использовать демонстрационные версии этих программных инструментов, доступные для скачивания на сайте www.keil.com. Более того, для разработки программ на языке C в среде Keil uVision можно использовать и свободно распространяемый компилятор SDCC, который разработан в рамках открытого лицензионного соглашения GNU и не имеет ограничений по размеру исполняемого программного кода. Несмотря на некоторые отличия в синтаксисе, многие (если не большинство) из принципов программирования систем с 8051, используемые в Keil C51, работают и в SDCC.

KEIL. Настройка проекта (вкладка C/C++ (AC6) )

  • Вы здесь : 
  • RADIOWOLF
  • /KEIL. µVision IDE /
  • KEIL. Настройка проекта (вкладка C/C++ (AC6) )

20.12.2017 Автор:Oxford

Диалог настроек для ARM Compiler 6 (ARMCLANG).

Preprocessor Symbols (символы препроцессора)

Define

Устанавливает символы препроцессора которые могут быть проверены директивами #if, #ifdef и #ifndef. Имена копируются в код так же как они написаны (чувствительны к регистру). Опционально, каждое имя может получать значения.

Для примера:

 

Это идентично директиве препроцессора #define :

1
2
3
#define Check 1
#define NoExtRam 1
#define X1 1+5

 

  • Параметры поля Define переводятся в параметр командой строки
    -Doption.
  • Для определения X2 без установки значения, введите -DX2 = в поле Misc Controls.

 

 

Undefine

Очищает предыдущие определения, которые вводятся в диалоговом окне верхнего уровня Настройки для группы…


Language / Code Generation (Язык/Генерация кода)

Execute-only Code (Только исполнение кода)
Генерирует код execute-only (только исполнение) и предотвращает компилятор от генерации данных которые могут иметь доступ в секцию кода. Параметр для командной строки -mexecute-only.
Optimization (Оптимизация)
Управление оптимизацией кода генерируемый компилятором. Параметр для командной строки -Onum|string.
  • <default> — это настройка по умолчанию для uVision. Это уровень оптимизации по умолчанию или настройки uVision для таргета или родительской группы. Параметра для командной строки нет.
  • -O0 — является уровнем оптимизации по умолчанию для компилятора. Отключение большинства оптимизаций, за исключением некоторых простых изменений исходного кода. Выполняет минимальную оптимизацию для производительности скомпилированного двоичного файла. Этот параметр дает наилучшее возможное отладочное представление в окне Debug View.
  • -O1 — уровень оптимизации с ограничениями. Дает общее удовлетворительное представление отладки с хорошей плотностью кода.
  • -O2 — уровень высокой оптимизации. Отладочное представление может быть удовлетворительным, поскольку отображение объектного кода в исходный код не всегда понятен. Компилятор может выполнять оптимизацию, которая не может быть отображена с помощью отладочной информации.
  • -O3 — уровень максимальной оптимизации. Этот параметр обычно дает плохое представление отладки.
  • -Ofast — Включает все оптимизации с -O3 в комбинации с другими агрессивными оптимизациями, может нарушать строгое соблюдение языковых стандартов, включая -ffast-math.
  • -Os balanced — Сбалансированный код между скоростью и размером. По умолчанию компилятор выполняет оптимизацию для повышения производительности за счет возможного увеличения размера кода. Параметр для командной строки -Os.
  • -Oz image size — Оптимизация размера кода. По умолчанию компилятор выполняет оптимизацию для повышения производительности за счет возможного увеличения размера кода. Параметр для командной строки
    -Oz
    .
Link-Time Optimization (Оптимизация во время линковки)
Межмодульная оптимизация на стадии линковки. Параметр для командной строки -flto.
Split Load and Store Multiple
Говорит компилятору разделить LDM и STM инструкции на две или более LDM и STM инструкции для уменьшения задержки при обработке прерывания. Когда LDM/STM содержит больше 5 регистров процессора генерируются  несколько LDM / STM инструкций. Параметр для командной строки -fno-ldm-stm.
One ELF Section per Function (Один раздел ELF на функцию)
Создает один раздел ELF для каждой функции в исходном файле. Секции называются с тем же именем, что и функция, генерирующая раздел, но с использованием .text. префикса. Позволяет оптимизировать код или определять каждую функцию на отдельных адресах памяти. Если вы хотите разместить определенные элементы данных или структуры в отдельных разделах, пометьте их индивидуально __attribute __ ((section («name»))). Параметр для командной строки  -ffunction-sections. Включено по умолчанию.
Restrictions (Ограничения)
Этот параметр уменьшает возможность обмена адресами, данными и строковыми литералами между функциями. Как следствие, это может немного увеличить размер кода для некоторых функций.
Warnings (Предупреждения)
Управление генерацией диагностики со следующими настройками:
  • <unspecified> — Не добавляется строка управления компилятором.
    Поведение зависит от настроек по умолчанию компилятора или от параметров, установленных на родительских уровнях группы uVision. Параметр по умолчанию.
  • No Warnings — Диагностика не отображается. Параметр для командной строки -W.
  • All Warnings — Это настройка uVision по умолчанию. Показывает всю диагностику (-Weverything) и исключает (-Wno-xxx) те, которые перечислены в строке управления компилятора:
    -Weverything
    -Wno-reserved-id-macro
    -Wno-unused-macros
    -Wno-documentation-unknown-command
    -Wno-documentation
  • AC5-like Warnings — показывает все предупреждения которые ARM Compiler 5 может показать. Подавляет следующие предупреждения:
    -Wno-missing-variable-declarations
    -Wno-missing-prototypes
    -Wno-missing-noreturn
    -Wno-sign-conversion
    -Wnonportable-include-path
    -Wno-packed
    -Wno-reserved-id-macro
    -Wno-unused-macros
    -Wno-documentation-unknown-command
    -Wno-documentation
    -Wno-license-management
    -Wno-parentheses-equality
  • MISRA compatible — показывает все предупреждения, кроме тех, которые противоречат правилам MISRA. Добавляет управляющие строки:
    -Wno-covered-switch-default
    -Wno-unreachable-code-break
Turn Warnings into Errors (Предупреждения как ошибки)
Предупреждающие сообщения рассматриваются как ошибки. Параметр для командной строки -Werror
Plain Char is Signed (Обычный Char как Signed)
Говорит компилятору обработать все переменные char как signed char. Параметр для командной строки -funsigned-char. Отключено по умолчанию, добавив строку управления компилятором -funsigned-char
Read-Only Position Independent
Создает позиция-независимый код для доступа к константам (ROM). Параметр для командой строки -fropi.
Автоматически включает параметр -fropi-lowering. Это означает, что статическая инициализация выполняется во время выполнения тем же механизмом, который используется для вызова конструкторов статических объектов C++, которые должны выполняться перед main().
Restrictions (Ограничения)
  • Не может использоваться с C++ кодом.
Read-Write Position Independent
Создает позиция-независимый код для доступа к переменным (RAM). Параметр для командной строки -frwpi.
Автоматически включает обе опции:
-fropi-lowering — это означает, что статическая инициализация выполняется во время выполнения тем же механизмом, который используется для вызова конструкторов статических объектов C++, которые должны выполняться перед main().
-frwpi-lowering — это означает, что статическая инициализация выполняется во время выполнения с помощью механизма конструктора C++ для кода C и C++.
Language C (Язык С)
Указывает языковой стандарт для языка С. Эти настройки распространяются на зависимые группы и файлы и применяются на уровне файла во время компиляции. Тип файла определяет, какие настройки будет использовать компилятор настройки С или С++ языка.   Проверьте настройки в диалоге Свойства и *.c файла.
Дополнительную информацию о языковой поддержке и ограничениях см. в главе 1.3 LLVM component versions and language compatibility .
Добавляет командную строку -xc в дополнение к перечисленным ниже.
  • <default> — по умолчанию настраивается  uVision  родительской группы, таргета или компилятора. Нет командной строки.
  • c90 — скомпилировать C как определено в стандарте 1990 C. Является настройкой по умолчанию uVision и устанавливает строку управления -std=c90 для компилятора.
  • gnu90 — скомпилировать C, как определено стандартом 1990 C, с дополнительными расширениями GNU. Устанавливает строку управления -std=gnu90.
  • c99 — скомпилировать C, как определено стандартом C 1999 года. Устанавливает строку управления -std=c99 компилятора.
  • gnu99 — скомпилировать C, как определено стандартом 1999 C, с дополнительными расширениями GNU. Устанавливает строку управления -std=gnu99.
  • c11 — скомпилировать C, как определено стандартом C 2011 года. Устанавливает строку управления компилятором -std=c11.
  • gnu11 — компилировать C, как определено стандартом C 2011 года, с дополнительными расширениями GNU. Устанавливает строку управления -std=gnu11. Компилятор по умолчанию для файлов C.
Language C++ (Язык С++)
Указывает языковой стандарт для кода на C++. Эти настройки распространяются на зависимые группы и файлы и применяются на уровне файла во время компиляции. Ни один из приведенных ниже параметров не может быть просмотрен в поле управления компилятором на целевом или групповом уровне. Проверьте настройки в диалоговом окне Свойства файла * . cpp. Тип файла определяет, использует ли компилятор настройки языка C++ или языка C.
Добавляет строку управления -xc++ в дополнение к перечисленным ниже.
Short enums/wchar
Оптимизирует размер кода, чтобы улучшить использование памяти. Этот параметр может снизить производительность. Включено по умолчанию. Устанавливает строки управления компилятором:
-fshort-enums — устанавливает размер перечисляемого типа наименьшему типу данных, который может содержать наибольшее значение перечислителя (размер по умолчанию для типа перечисления составляет не менее 32 бит для -fno-short-enums).
-fshort-wchar — устанавливает размер wchar_t в 2 байта (размер wchar_t по умолчанию равен 4 байтам для -fno-short-wchar).
Restrictions (Ограничения)
  • ISO C ограничивает значения перечислителя диапазоном int. По умолчанию компилятор не выдаёт предупреждений о слишком больших значениях перечислителя, но когда для параметра Предупреждения установлено значение «Строго», отображается предупреждение.
  • Все связанные объекты, включая библиотеки, должны сделать тот же выбор. Также невозможно связать объектный файл, скомпилированный с -fshort-enums, с другим объектным файлом, который скомпилирован без -fshort-enums, и не связывать объектный файл, скомпилированный с -fshort-wchar, с другим объектным файлом, который компилируется без -fshort -wchar.
use RTTI (Использовать RTTI)
Поддержка управления функциями RTTI dynamic_cast и typeid в C++. Удаляет строку управления компилятора -fno-rtti, которая устанавливается по умолчанию (флажок не установлен).
No Auto Includes
Подавляет все C/C++ пути которые включены автоматически во время компиляции. Системные файлы, например, stdio.h, не зависят от настроек данного окна. Компилятор автоматически включает пути которые могут быть просмотрены в поле Compiler control string.

Include Paths (Подключаемые пути к файлам)
Позволяет добавить один или несколько (разделенных запятой) путей для поиска заголовочных файлов. Для примера, для #include «filename.h» компилятор ищет сначало  в текущей, а затем в папке исходного файла. Когда это не удается или когда #include <filename.h> используется, используются пути указанные в поле Include Paths. Когда и здесь не удается найти файл, тогда используются пути определенные в поле INC в ProjectManageProject Items.
Misc Controls (Дополнительное управление)
Укажите любую директиву, для которых нет индивидуального диалога управления. Например, чтобы изменить язык сообщений об ошибке на японский язык Show Japanese Messages.
Compiler control string
Отображает текущие директивы в командной строке компилятора. Прокрутите вниз по полю, чтобы просмотреть все настройки. Настройки языка C++ не указаны на целевом или групповом уровне. См. комментарии в разделе языка C++.
Следующие строки управления добавляются в зависимости от использования MDK:
Командная строка Описание строки
__UVISION_VERSION Основная и младшая версия μVision. Для примера: -D__UVISION_VERSION="520".
_RTE_ Установить когда RTE используется. Для примера: -D_RTE_.
__RTX Устанавливается когда используется RTX Kernel можно выбрать в   Options for Target — Target — Operation System. Не устанавливается при использовании RTE. Для примера: -D__RTX.
__MICROLIB Устанавливается когда используется Use MicroLIB может быть включен в  Options for Target — Target. Для примера: -D__MICROLIB.
__EVAL µVision работает в режиме оценки. Лицензия MDK-Lite. Для примера: -D__EVAL.
имя файла устройства
Имя файла устройства

 

Опубликовано в :  KEIL. µVision IDE

Метки : 

Функциональная безопасность

Дом /  MDK /  Функциональная безопасность

Многие продукты для таких рынков, как бытовая техника, автомобили, промышленность и здравоохранение, имеют нормативные требования для сертификации по стандартам функциональной безопасности (FuSa). Например, IEC 61508 для электрических систем, ISO 26262 для автомобильной промышленности, IEC62304 для медицинских систем и EN 50128 для железнодорожных приложений.

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


 

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

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

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


Инструменты MDK для разработки FuSa

Arm Keil MDK  снабжает разработчиков программного обеспечения профессиональными инструментами, которые поддерживают процесс разработки V-модели и упрощают создание, анализ и проверку сложных встроенных приложений.

Особенности MDK
Компилятор Arm C/C++, отвечающий требованиям безопасности0005
Статический анализ кода и проверка MISRA MDK обеспечивает встроенную интеграцию с инструментами проверки кода, такими как PC-Lint и Parasoft C/C++ test
Покрытие кода покрытие на целевом оборудовании трассировка инструкций по потоковой передаче визы
Непрерывная интеграция MDK имеет интерфейс командной строки для автоматизации тестирования и может использоваться с инструментами непрерывной интеграции (CI), такими как Jenkins
Имитационные модели MDK-Professional обеспечивает надежное регрессионное тестирование на уровне функций и модулей с использованием моделей фиксированных виртуальных платформ (FVP)
Отладка с поддержкой RTOS и оптимизация.
Временной анализ Регистратор событий предоставляет сведения о состоянии программных компонентов и включает информацию о времени.
Статистика событий показывает среднее, минимальное и максимальное время выполнения.


Система функциональной безопасности руки

Arm предлагает систему функциональной безопасности во время выполнения (FuSa RTS), набор сертифицированных компонентов для микроконтроллеров Cortex-M, который позволяет разработчикам использовать самые высокие уровни полноты безопасности (SIL) для своих конечных приложений.

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

Узнать больше о Arm FuSa RTS…



    Компилятор безопасности Arm

    Arm предлагает квалификационный комплект Arm Compiler Qualification Kit для разработки приложений функциональной безопасности и помощи клиентам в получении сертификата путем предоставления подтверждающих доказательств, которые можно использовать в качестве аргумента для обоснования цепочки инструментов.

Загрузка файлов Keil

Загрузка файлов Keil
Файлы загрузки

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

С166
Файлы и примеры для средств разработки Keil C166.

С51
Файлы и примеры для средств разработки Keil C51.

С251
Файлы и примеры для средств разработки Keil C251.

Коммунальные услуги
Утилиты и конвертеры для использования с инструментами разработки Keil.

Микровижн
Общие файлы и указания по применению для использования и расширения µVision.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *