СОВРЕМЕННАЯ ЭЛЕКТРОНИКА 2011-7
На открытой по умолчанию страни це Tool Settings раздела Settings можно произвести настройку программного инструментария, используемого при работе с проектом: компилятора C, ассемблера и компоновщика (см. рис. 16). Настройки компилятора C ( MCU C Compiler ) включают узлы пара метров, относящихся к работе предп роцессора ( Preprocessor ), заданию от носящихся к нему директив и симво лов ( Symbols ), указанию пути к место положению каталога подключаемых файлов проекта в рабочей области ( Di rectories ), заданию уровня оптимиза ции кода на языке C при компиляции ( Optimization ), уровня (глубины) от ладки ( Debugging ), перечня и характе ра генерируемых в ходе компиляции сообщений ( Warnings ), управляющих флагов для компилятора ( Miscella neous ), а также заданиюиспользуемой проектом архитектуры МК целевой системы ( Target ). Текущие заданные настройки ком пилятора C перечислены в поле All op tions : (см. рис. 16). По мнению автора, особый интерес для разработчика представляет параметр, задающий уро вень оптимизации кода на языке C при компиляции ( Optimization Level ), зна чение которого можно выбрать из не скольких возможных вариантов, как показано на рисунке 17. Напомним, что оптимизация кода при компиляции используется для ми нимизации его результирующего раз мера с целью экономии флэш памяти МК. По утверждению производителя, более высокие уровни оптимизации в общем случае будут приводить к уско рению выполнения кода приложения, но также к увеличению размера этого кода [2]. Для отладки приложения производитель рекомендует задавать минимальный уровень оптимизации (–O0), а для выгрузки (при окончатель ной записи кода вМК) – более высокие уровни оптимизации. Влияние задан ного уровня оптимизации на резуль тирующий размер его кода можно оце нить с помощьюполученных автором экспериментальных данных, представ ленных в таблице. Приведённые в таб лице значения взяты из информации, отображаемой по завершенииформи рования проекта в окне обозрения Console . Доступ к настройкам ассемблера можно получить, выбрав соответству ющий узел в дереве MCU Assembler . Те кущие настройки ассемблера будут пе речислены в поле All options открыв шегося окна; они включают параметры общего назначения, относящиеся к за данию управляющих флагов и путей к местоположениюподключаемыхфай лов ( General ), а также к заданию ис пользуемой архитектуры МК целевой системы ( Target ). В параметрах узла General можно задать такой параметр, как уровень отладки ( Debug level ), оче видно, представляющий собой степень детализации показа ассемблерных инструкций при пошаговой передаче управления в программе в ходе её от ладки/выполнения. Доступ к настройкам компоновщи ка можно получить, выбрав соответ ствующий узел в дереве MCU Linker . ПРОГРАММИРОВАНИЕ 74 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2011 Рис. 16. Страница Tool Settings раздела Settings диалогового окна Properties Рис. 17. Задание уровня оптимизации кода на C при компиляции Optimization Level *Реальный размер файла Pro_Led_led.axf значительно превышает приведённые в таблице значения, однако этот файл является входным для отладчика, но не является кодом «прошивки» флэш памяти МК Связь между уровнем оптимизации компилятора C с результирующим размером кода для проекта Pro_Led_led Уровень оптимизации (Optimization Level) Размер кода из файла Pro_Led_led.axf* text dec hex None ( O0) 2668 3192 c78 Optimize ( O1) 2516 3040 be0 Optimize more ( O2) 2404 2928 b70 Optimize most ( O3) 2372 2896 b50 © СТА-ПРЕСС
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy