Mplab xc8 c compiler что это
Перейти к содержимому

Mplab xc8 c compiler что это

PIC Programming by MPLAB X

Brief Introduction

In this blog, I will discuss and explain the MPLAB CODE CONFIGURATOR (MCC) by the MICROCHIP. The MCC is a new «tools» which is used to generate the C functions for the selected peripherals for example ADC. MCC creates the function to initialize the ADC, function to convert the input signal and many others related function. Thus, MCC eases our job, it creates some codes for us and we write just a few. I do believe that, it is very simple and suitable to be used for anyone who are interested to study microcontroller programming and interfacing. The MCC is hosted by the MPLABX IDE and it generates codes which is compatible to XC8 compiler.

I would say that it is a wise decision to change to MPLAB X IDE and xc8 compiler. I started using the stuff when I involved in ILP Bukit Katil Manual Robot 3 years ago. We did compare the stuff against MPLAB IDE and c18 compiler. I remember when Izaddin reported to me that the MPLAB IDE and c18 compiler uses 4 times more memory compare to MPLABX. The difference just like Malaysian Team under 13 and Harimau Malaya. I use it for my recent project such for AGV and ASRS. Anyhow, I’m still using MPLAB IDE and c18 compiler for academic purposes. I n this blog we will use:

MPLABX IDE

The MCC is used to generate a code for the used peripheral. In this example, we will generate a code to toggle LED continuously. The LED is attached to RA0 or PORT A PIN0.

In the MPLABX IDE, under «tool’ menu, select «embedded» and click on MPLAB(R) CODE CONFIGURATOR, it is under tool menu . On the left we have the project resources and device resources menu. Device resources menu allows us to select the device to be configured. For example we are going to used PIC18F46K20.

We start by configuring the system clock, which will be set to 64MHz. Just click on «system» on project resources menu then expand CONFIG1H. Then expand oscillator selection bit and click on
HS oscillator, PLL enabled(clock frequency = 4 x FOSC1)

Enable or tick on Software PLL enabled on the top pane and set the External Clock to 16MHz. Thus system frequency will be 64MHz.

For time being all other setting are not important but ensure:
1. Watch Dog Timer (WDT) is disabled — under CONFIG2H
2. MCLR Pin is enabled — under CONFIG3H

Upon clicking on ‘Yes» of the previous step, the code will be created by the MCC. The status will be displayed on the output pane at the bottom of the MPLABX IDE.

On the «Device Resources», click on GPIO, you will see the GPIO transferred in «Project Resources». Another click on GPIO in «Project Resources» the pin assignment menu will be available at the right bottom corner, the pin direction menu will be available in the middle and Pin Manager in the right top corner.

In the pin assignment menu, the blue padlock represents the PIN is not in used, and green padlock represents the PIN is selected. It can be toggled by clicking on the padlock represent the specific PIN. Click on RA0, as the LED will be attached at this PIN. You will notice that PIN2 changes into green. Then tick on output box in PIN direction menu. The PIN can be given any custom name. Click on the corresponding box under Custom Name and write LED. Once it is being changed, the corresponding pin in the Pin Manager change too. Upon completed just click on «Generate Code(x)».

Modify the main file to suit the specification.

Once the «Generate Code(x)» is clicked in the previous step, the MCC generates the associate functions and put them under «MCC Generated Files» folder. You can click on the folder and look into pin_manager.c for instance, the file consists of initialization of i/o PINS.

For time being, we are not interested in the MCC Generated Files, as they are created by the MCC. In order to toggle the LED, we need to modify a bit the code in main.c. The file is located under «Source Files» folder. The main.c file generated will be look similar to the main.c as shown below.

I need a variable of type of long (unsigned int 16) to create a delay. So put 1 variable of type of long and name i on top of function main as shown.

Using if condition and increment operator, the variable can be used to handle some sort of delay as shown. In this example if condition is only TRUE when i is bigger than 300,000.

You can check on the function related to LED which created by the MCC previously. Just type L and press <space bar> while hold <ctrl>.

Once <space bar> is pressed while <ctrl> is held, the system prompts number of available choice related to the character.

Double click on LED_Toggle and add open and close bracket with semicolon «();» as shown

Compiling and downloading.

Compile the project by clicking on «hammer & brush». Don’t forget to verify the output status.

The executable file is in ProjectName\dist\default\production\ProjectName.hex.

In ISIS Proteus, right click on the device, upload the executable file in the «program file» menu available.

Экосистема и средства разработки от Microchip

В статье приведен обзор экосистемы Microchip и ее основных программных составляющих, таких как MPLAB X IDE, MPLAB Code Configurator, MPLAB Harmony и т. д., предназначенных для упрощения процесса разработки встраиваемых решений

Вебинар «Решения MORNSUN для промышленных применений: от микросхем до ИП на DIN-рейку» (02.11.2022)

Когда речь заходит об электронной промышленности, конкурентоспособность того или иного производителя во многом определяется скоростью вывода на рынок новых решений или обновления функционала уже существующих продуктов. Оба фактора зависят от сложности самого решения, а также применяемых при его построении аппаратных и программных средств. Использование продуктов от разных производителей может значительно усложнить процесс и отнять время и силы у ценных сотрудников, которые будут вынуждены прибегать к различным хитростям и «костылям» для интеграции новых компонентов в проект и их последующей настройки. Выходом из ситуации является использование продуктов, совместимость которых не вызывает сомнений еще на этапе закупки. Как правило, это решения от одного производителя, который предоставляет своим клиентам не только отдельные компоненты, но и целую экосистему, призванную максимально упростить построение проектов и ускорить процесс производства. Одним из таких производителей является основанная в 1987 году американская компания Microchip (Рисунок 1).

Рисунок 1. Экосистема компании Microchip.

В данной статье рассказывается об основных составляющих экосистемы для работы с микроконтроллерами и микропроцессорами компании Microchip. Прежде всего речь пойдет о программном обеспечении; именно на этом поприще компания за последние несколько лет достигла определенных успехов и создала продукты, способные значительно ускорить процесс разработки.

Предложенные в статье программные решения позволяют создавать масштабные проекты с возможностью установки плагинов и отладки в реальном времени (MPLAB X IDE), генерировать и редактировать код онлайн, без установки программы на персональный компьютер (MPLAB Xpress), настраивать работу контроллеров при помощи графического интерфейса (MPLAB Code Configurator, MPLAB Harmony), добавлять новый функционал в уже знакомые среды разработки (Microchip Studio) и многое, многое другое.

Программные средства разработки Microchip

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

На текущий момент пользователям доступны следующие решения:

  • MPLAB X IDE – полнофункциональная интегрированная среда разработки (IDE), предназначенная для разработки кода для микроконтроллеров PIC, цифровых сигнальных контроллеров (DSC) dsPIC, а также микроконтроллеров AVR и SAM. Среда построена на основе IDE NetBeans с открытым исходным кодом от Apache Software Foundation.
  • MPLAB Xpress – представляет собой бесплатную онлайн-среду разработки, которая не требует установки или настройки системы. MPLAB Xpress имеет более ограниченный функционал по сравнению с MPLAB X IDE, однако поддерживает ее наиболее популярные функции, такие как конфигуратор кода MPLAB.
  • Конфигуратор кода MPLAB (MCC) – бесплатный графический плагин для инициализации системы, который также предоставляет драйверы для работы с компонентами. MCC может использоваться для настройки широкого спектра периферийных устройств и поддерживает работу с микроконтроллерами AVR и PIC.
  • MPLAB Harmony – гибкий фреймворк, включающий в себя программные модули, которые выступают в роли строительных блоков при создании приложения. Используя MPLAB Harmony, разработчик может включить в свой проект библиотеки и программные драйверы как компании Microchip, так и сторонних производителей. MPLAB Harmony поддерживает работу с 32-битными микроконтроллерами PIC и SAM.
  • Компиляторы MPLAB XC – комплексное решение для компиляции разрабатываемого программного кода. MPLAB XC поддерживает 8-битные PIC и AVR в версии MPLAB XC8, 16-битные PIC и dsPIC DSC в MPLAB XC16 и 32-битные PIC и SAM в MPLAB XC32. Для компиляторов MPLAB XC доступны два вида лицензии: бесплатная – включает базовые функции оптимизации и PRO – ориентирована на проекты, требующие максимальной оптимизации по скорости и размеру бинарного файла.
  • Microchip Studio (Atmel Studio7) – интегрированная среда разработки (IDE) для написания кода и отладки микроконтроллеров AVR и SAM.
  • Atmel START – бесплатный онлайн-инструмент для графического конфигурирования микроконтроллеров для встраиваемых приложений на базе микроконтроллеров AVR и SAM.

Как несложно заметить, те или иные программные средства подходят только для определенного типа контроллеров. В Таблице 1 приведены данные по возможности работы с программным обеспечением в зависимости от выбранного микроконтроллера или микропроцессора.

Для упрощения процесса работы, компания Microchip объединила информацию по своим продуктам в раздел Microchip Developer Help [2], в котором подробно описаны все тонкости работы с приведенными выше программными пакетами, а также приведены ссылки на продукты, дополнительные ресурсы, видеоуроки, курсы и документацию.

Стоит также учитывать возможность работы программного обеспечения на той или иной операционной системе. Например, инструменты разработки MPLAB совместимы с операционными системами Windows, Linux и macOS, а Microchip Studio (Atmel Studio 7) способна работать только под Windows.

Разберем описанные выше программные решения более подробно.

Интегрированная среда разработки MPLAB X

MPLAB X IDE представляет собой среду, которая объединяет в себе весь необходимый набор инструментов для настройки, разработки, отладки и оценки возможностей микроконтроллеров и микропроцессоров, производимых компанией Microchip (Рисунок 2). Среда построена на основе IDE NetBeans с открытым исходным кодом от Apache Software Foundation и распространяется бесплатно.

Рисунок 2. Стартовое окно MPLAB X IDE.

MPLAB X IDE обладает широкими возможностями для написания исходного кода программы, ее дальнейшей отладки и оптимизации проекта. Столь обширный функционал обеспечен благодаря наличию в MPLAB X IDE следующих модулей и возможностей (Рисунок 3):

  • Менеджер проектов (Project Manager) – служит для управления файлами рабочих групп;
  • Редактор кода (Editor) – позволяет редактировать и создавать программный код проекта;
  • Поддержка программаторов/отладчиков MPLAB ICD и MPLAB REAL ICE;
  • Симулятор MPLAB X Simulator, пошагово моделирующий работу программы;
  • Поддержка компиляторов MPLAB XC (XC8, XC16 и XC32) – преобразуют исходный код на языках С, С++, ассемблер в машинный;
  • И так далее.

MPLAB X предлагает пользователю широкий функционал, способный помочь быстро отладить проект и минимизировать время разработки. Данная IDE может рассчитать время исполнения операций (инструмент Stopwatch), открыть доступ к переменным и специальным регистрам контроллера, объединить разрозненные файлы в один проект и многое другое. В папке, где размещается MPLAB X, по пути emplatecode лежат файлы-шаблоны для проектов, с которых удобно начать работу.

Кроме того, возможности MPLAB X IDE можно расширить с помощью множества плагинов как от компании Microchip или NetBeans, так и от сторонних производителей.

Примерами доступных для MPLAB X IDE плагинов могут служить:

  • Монитор данных и контроллер интерфейсов (DMCI). DMCI позволяет разработчику изучать или изменять содержимое переменных без необходимости остановки приложения во время сеанса отладки;
  • Конфигуратор кода Microchip (MCС) – графический плагин для инициализации системы, который также предоставляет драйверы для работы с компонентами;
  • Графический интерфейс пользователя SMPS Buck (SMPSGUI) – представляет собой плагин, упрощающий работу и настройку гибридных ШИМ-контроллеров, в частности – MCP19110/11/18/19;
  • Конфигуратор дисплея Graphics Display Designer (GDD) – инструмент разработки интерфейсов, который позволяет быстро и легко создавать графический интерфейс пользователя для приложений на основе 16- или 32-разрядных микроконтроллеров PIC;
  • Программный пакет Proteus VSM Viewer, позволяющий виртуально собрать схему электронного устройства и симулировать его работу, выявляя ошибки, допущенные на стадии проектирования и трассировки;
  • Модуль отладки Segger J-Link, позволяющий работать с устройствами JTAG;
  • И так далее.

Полный список доступных и установленных плагинов можно найти в соответствующем разделе программы.

Следует отметить, что помимо положений, описанных в руководстве Microchip Developer Help, которое уже упоминалось ранее, компания Microchip предоставляет своим клиентам специальный обучающий курс [3], в котором приведено подробное описание среды. По окончании курса пользователь получит основные представления о принципах работы с MPLAB X IDE, узнает, как открыть и построить проект, усвоит основные принципы отладки и загрузки кода в микроконтроллер и многое другое.

MPLAB Xpress IDE

В тех случаях, когда у клиента нет возможности установить полноценную MPLAB X IDE для работы или необходимо быстро создать/отредактировать проект, на помощь приходит среда Microchip MPLAB Xpress. MPLAB Xpress – это бесплатная интерактивная онлайн-среда разработки, которая не требует какой-либо установки или настройки системы. Для начала работы со средой достаточно перейти на страницу MPLAB Xpress [4]. MPLAB Xpress является упрощенной и усовершенствованной версией MPLAB X IDE и содержит основные ее наиболее популярные и необходимые для работы функции (Рисунок 4).

Рисунок 4. Работа с тестовым проектом в среде MPLAB Xpress.

MPLAB Xpress станет прекрасным выбором для тех, кто только начинает знакомство с продукцией компании Microchip. Когда же дело дойдет до серьезной разработки и возможностей MPLAB Xpress окажется недостаточно, пользователь сможет без труда перенести существующий проект в MPLAB X IDE.

MPLAB Xpress включает в себя последнюю версию MPLAB Code Configurator и совместима с оценочными платами MPLAB Xpress, платами Curiosity, Explorer 16/32 и программатором/отладчиком PICkit 4. В MPLAB Xpress разработчику также доступна программная симуляция проекта и его аппаратная отладка на подключенной к персональному компьютеру отладочной плате (Рисунок 5).

Рисунок 5. Установка подключения к отладочной плате для работы в MPLAB Xpress.

Также стоит отметить внушительный объем хранилища (10 Гбайт) для хранения файлов проектов и репозиторий, где пользователь может делиться своими идеями с другими пользователями или черпать вдохновение из уже существующих решений. Вся доступная информация по работе со средой, как и в случае с MPLAB X, располагается в разделе Microchip Developer Help [5].

MPLAB Code Configurator

MPLAB Code Configurator (MCC) – бесплатный графический плагин для инициализации системы, который также предоставляет драйверы для работы с компонентами. MCC имеет интуитивно понятный интерфейс и содержит в себе богатый набор периферийных устройств и функций.

К ключевым особенностям MPLAB Code Configurator можно отнести:

  • Инициализация в графической форме системных регистров, портов ввода/вывода и независимой от ядра периферии;
  • Отображение списка доступных и выбранных периферийных модулей для конкретного микроконтроллера;
  • Система оповещений, предупреждающая о возможных ошибках конфигурирования;
  • Может использоваться для настройки и генерации библиотек.

MPLAB Code Configurator поддерживает микроконтроллеры PIC и AVR и позволяет создавать рабочий код всего за несколько кликов мышкой, что значительно ускоряет процесс разработки, особенно когда дело касается прототипов (Рисунок 6).

Рисунок 6. Пример работы в MPLAB Code Configurator.

Существует 3 варианта начала работы с MPLAB Code Configurator:

  1. Использование облачной IDE MPLAB Xpress. MPLAB Xpress уже включает в себя предустановленный MPLAB Code Configurator и все, что требуется пользователю для начала работы, – это создать новый или открыть существующий проект и выбрать соответствующий раздел в шапке меню. Открытие проекта необходимо для того, чтобы MCC мог получить имя используемого контроллера и подгрузить необходимые данные, касающиеся регистров и битов конфигурации, а также настроить графический интерфейс.
  2. Установить плагин MCC в MPLAB X IDE. Если у вас установлена MPLAB X IDE, все, что вам нужно сделать, чтобы начать работу с MCC, – это загрузить его из библиотеки плагинов через вкладку «Plugins».
  3. Ручная установка плагина MCC в MPLAB X IDE. В тех случаях, когда пользователю необходимо использовать предыдущие версии MCC, он может установить требуемую версию плагина вручную, предварительно скачав соответствующий файл с сайта компании.

MPLAB Harmony v3

MPLAB Harmony представляет собой фреймворк для разработки встроенного программного обеспечения на базе 32-разрядных микроконтроллеров и микропроцессоров. MPLAB Harmony предоставляет пользователю гибкие и функционально совместимые программные модули, которые выступают в роли строительных блоков при создании приложения и упрощают процесс разработки и, как следствие, способствуют сокращению времени вывода продукта на рынок (Рисунок 7).

Рисунок 7. Пример настройки проекта в MPLAB Harmony.

Модули в MPLAB Harmony делятся на четыре категории:

  • Библиотеки периферии;
  • Драйверы устройств;
  • Системные службы;
  • Промежуточное программное обеспечение (middleware).

Библиотеки периферии (PLIB) обеспечивают низкоуровневый интерфейс с периферийными модулями, позволяя разработчику не задумываться о том, что происходит на уровне регистров, чем облегчают написание драйверов для микроконтроллеров семейства PIC. Однако библиотеки не предназначены для применения непосредственно в приложении, поскольку при использовании нескольких библиотек очень высока вероятность конфликта, возникающего при распределении ресурсов. Драйверы устройства являются надстройкой над библиотеками и обеспечивают простое и высокоабстрактное взаимодействие с периферийными модулями с помощью определенных функций. Применение драйверов также позволяет избежать конфликтов между библиотеками. Middleware-модули необходимы для организации работы периферийных блоков со сложными протоколами, например, стеков TCP/IP, USB. За тем, чтобы драйверы или middleware-модули не конфликтовали между собой из-за каких-либо общих ресурсов, следят системные службы.

Исходя из всего вышесказанного, к ключевым преимуществам MPLAB Harmony можно отнести:

  • Независимая от ядра реализация, поддерживает архитектуры MIPS и Cortex Arm;
  • Переносимость кода даже в пределах разных семейств контроллеров;
  • Простой процесс настройки и работы благодаря графическому интерфейсу и конфигуратору MPLAB Harmony Configurator (MHC), который позволяет проводить конфигурацию и генерацию начального кода, периферийных библиотек и промежуточного программного обеспечения (USB, TCP / IP и т. д.);
  • Многоуровневая модульная структура, соответствующая стандартам MIRSA-C: 2012;
  • Более 1000 примеров приложений;
  • Возможность работы с 32-разрядными семействами PIC (на базе MIPS) и SAM (на базе Cortex Arm);
  • Возможность работы со сторонними решениями, такими как FreeRTOS и Micrium, возможность импортировать проекты, созданные в IAR Embedded Workbench

MPLAB Harmony доступна для загрузки из репозитория Harmony GitHub [6]. Также она может установлена в MPLAB X IDE через раздел плагинов.

Компиляторы MPLAB XC

Компиляторы MPLAB XC – это, пожалуй, то, без чего сложно представить работу основных программных средств компании, таких как MPLAB X и MPLAB Xpress.

Подобрать подходящий компилятор для конкретного проекта достаточно просто, все зависит от выбранного микроконтроллера (Таблица 2).

Компиляторы MPLAB XC обеспечивают высокую степень оптимизации кода и могут сократить конечный размер файла до 70%. Бесплатные версии MPLAB XC предлагают пользователю следующие уровни оптимизации:

  • O0 – код находится в исходном состоянии,
  • O1 – позволяет провести оптимизацию кода без влияния на процесс отладки,
  • O2 – позволяет провести сбалансированную оптимизацию скорости и размера кода.

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

  • Os – позволяет произвести максимальное сокращение размера кода;
  • O3 – позволяет провести лучшую оптимизацию с точки зрения скорости выполнения и работы кода;
  • mpa (процедурная абстракция) – еще больше уменьшает размер кода

Лицензия PRO, как правило, применяется в проектах, требующих максимального сокращения кода и максимальной производительности. Для ознакомления с возможностями MPLAB XC PRO пользователь может получить бесплатную 60-дневную пробную версию лицензии и продлить или отказаться от нее по истечении пробного периода.

MPLAB XC PRO поддерживает несколько типов лицензии:

  • Лицензия для рабочей станции;
  • Лицензия по подписке;
  • Лицензия сайта;
  • Лицензия сервера;
  • Лицензия виртуальной машины;
  • Лицензия на электронном ключе.

Дополнительно пользователю также доступна подписка High Priority Access (HPA), которая может быть активирована бесплатно на 12 месяцев при приобретении MPLAB XC PRO. HPA дает пользователю приоритет в получении технической поддержки по запросам, связанным с компилятором.

Помимо лицензии MPLAB XC PRO, компания Microchip также предлагает своим клиентам версии компиляторов для приложений, критических к отказам. Эти версии сертифицированы немецкой экспертной организацией TÜV SÜD в соответствии с современными стандартами безопасности ISO 26262, IEC 61508, IEC 62304 и IEC 60730.

Microchip Studio (Atmel Studio 7)

Все, кто хоть раз имел дело с разработкой программного кода для микроконтроллеров, наверняка слышали о среде Atmel Studio. После того как Microchip завершила сделку по покупке компании Atmel в 2016 году, все права на среду разработки (как и на сами микроконтроллеры) перешли к новому правообладателю, а сама IDP стала носить гордое название Microchip Studio.

Microchip Studio представляет собой интегрированную платформу разработки (IDP) для создания и отладки приложений на базе микроконтроллеров AVR и SAM. Atmel Studio влилась в широкое портфолио средств разработки от Microchip и предлагает пользователям простой в использовании функционал для написания, сборки и отладки приложений, написанных на языках C/C++ или ассемблере (Рисунок 8).

Рисунок 8. Пример работы с проектом в среде Microchip Studio.

Несмотря на то, что среда получила новое название и слегка измененный внешний вид, пользователи по-прежнему могут свободно использовать документацию, курсы и видеоуроки, созданные для Atmel Studio. То же касается и аппаратной части, в частности программаторов AVR и SAM.

Microchip Studio устанавливается вместе с компиляторами avr-gcc, avr32-gcc и arm-none-eabi-gcc, в дополнение к которым был также добавлен MPLAB XC8. Его расширенная версия MPLAB XC8 PRO включает в себя улучшенную степень оптимизации, уменьшенный размер кода и успешно конкурирует с более дорогими представленными на рынке решениями.

Ключевые особенности среды Microchip Studio:

  • Поддержка более 500 устройств AVR и SAM;
  • Встроенный компилятор MPLAB XC8;
  • Более 1600 примеров проектов с исходными кодами, доступными через Advanced Software Framework (ASF);
  • Расширение возможностей IDE через Microchip Gallery – онлайн-магазин инструментов разработки и встроенного программного обеспечения от Microchip и сторонних производителей;
  • QTouch Composer – набор инструментов для разработки и настройки емкостных сенсорных устройств, проверки производительности системы, мониторинга энергопотребления с возможностью работы в режиме реального времени;
  • Wireless Composer набор инструментов для разработки и настройки беспроводных устройств;
  • Расширенные функции отладки, включая степпинг и точки останова, поддержку трассировки (SAM3 и SAM4), статистическое профилирование кода, отслеживание/мониторинг прерываний, отслеживание значений переменных в режиме реального времени и многое другое;
  • Встроенный редактор кода, менеджер проектов, виртуальный симулятор, модуль внутрисхемной отладки и интерфейс командной строки;
  • Возможность написания кода и моделирования прерываний, работы периферийных устройств и других внешних воздействий для конкретной модели контроллера;
  • Возможность создания дизайна приложений с низким энергопотреблением;
  • Отслеживание данных о потребляемой мощности во время отладки программы при помощи Power Debugger.

Еще одной особенностью является возможность импорта в Microchip Studio проектов Arduino, что позволяет значительно упростить и ускорить процесс перехода от создания прототипа к организации полноценного производства. Microchip Studio поддерживает работу с Arduino Zero и платами расширения Arduino Shield.

Atmel START

Atmel START представляет собой онлайн-инструмент для конфигурирования и настройки проектов встраиваемого программного обеспечения при помощи графического интерфейса. Atmel START основан на последнем поколении Advanced Software Framework и дает возможность разработчику выбирать и настраивать программные компоненты, драйверы и промежуточное ПО, а также подбирать примеры проектов, специально адаптированных под потребности создаваемого решения. При работе в Atmel START пользователь может просматривать зависимости между программными компонентами, предотвращая тем самым конфликты и аппаратные ограничения. В случае возникновения конфликта Atmel START автоматически предложит решения, подходящие для данной конкретной конфигурации.

Начиная работу с Atmel START, пользователь может создать новый проект или начать работу с уже существующим примером. После завершения конфигурирования программного обеспечения пользователь может загрузить сгенерированный проект и открыть его в IDE, установленной на персональном компьютере, например, Microchip Studio 7, IAR Embedded Workbench, Keil µVision (Рисунок 9).

Рисунок 9. Процесс работы с онлайн-инструментом Atmel START.

Atmel START предоставляет пользователю следующие преимущества:

  • Дает возможность найти и протестировать примеры для своего решения;
  • Позволяет сконфигурировать микроконтроллер, настроить драйверы и промежуточное ПО;
  • Позволяет настроить параметры таймеров и тактирование;
  • Дает возможность подготовить проект для работы на современной IDE;
  • И многое другое.

Отдельно следует отметить TrustZone Manager – графический интерфейс для настройки параметров безопасной (защищенной) зоны, также интегрированный в Atmel START.

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

Заключение

Инженеры и разработчики постоянно находятся в поиске новых решений, способных дать им больше возможностей, принести что-то новое в уже существующие проекты или ускорить процесс разработки. Однако интеграция в проект продукции от разных производителей может повлечь за собой проблемы, связанные с сопряжением функционала. Одним из выходов является использование продуктов, входящих в единую экосистему, такую, как предлагает своим клиентам компания Microchip. Экосистема Microchip – это не только дискретные компоненты, микроконтроллеры и отладочные комплексы, но и мощное программное обеспечение, способное удовлетворить потребности как матерых разработчиков, так и молодых инженеров, которые только начинают свой путь.

MPLAB XC Compilers

The MPLAB XC compilers are a range of compilers built by Microchip, which compile C/C++ source code for 8, 16 and 32-bit PIC microcontrollers, as well as the dsPIC DSCs.

The logo for the range of MPLAB XC compilers. Image from http://www.microchip.com/.

Licensing

The Free versions of the MPLAB XC compilers allow for limited optimisation (both in w.r.t. size and speed). The Standard and Pro versions allow for increased optimisation levels.

Build status output from the free version of the MPLAB XC compiler.

Build status output from the free version of the MPLAB XC compiler.

MPLAB X IDE Integration

The MPLAB XC compilers are designed to be used with the MPLAB X IDE, also provided by Microchip.

Delays

Delays are provided by the compiler/library through the __delay_us() and __delay_ms() functions.

A screenshot of the built-in delay functions provided in the PIC microcontroller libraries. This screenshot was taken from pic18.h.

A screenshot of the built-in delay functions provided in the PIC microcontroller libraries. This screenshot was taken from pic18.h.

Variadic Macros

Unfortunately, the XC preprocessor does not support variadic macros (well, at least XC8 doesn’t as of July 2016).

However, you can somewhat implement the same functionality by using the double-brackets technique.

The limitation with using the double-brackets technique is that you don’t have individual access to any of the parameters in the macro. The only thing you can do is pass them onto a variadic function (although the XC compiler doesn’t support variadic macros, it DOES support variadic functions). DPRINTF() as defined above is pretty useless, so let’s make a better version:

No Recursive Functions

Because of the hardware-limited stack size on the microcontrollers the XC8 compiler targets, the compiler does not support recursive functions.

“Due to limited memory and no hardware implementation of a data stack, recursion is not supported and functions are not reentrant.” – MPLAB XC8 C Compiler User’s Guide [5.2.1]

This lack in functionality (and a rather serious one at that!) is the one item that makes the XC8 compiler non-compliant with ANSI.

What are my alternatives? Function duplication (albeit with a different function name) is an “easyish” hack that may get you where you want to be. However, it is not recommended due to issues in readability and maintainability (two copies of the same code to maintain, and people might not rember to update one when they update the other!).

The XC8 compiler defines a new bit type. This is a non-standard C extension, and is added because the PIC microcontroller have hardware support for single-bit manipulation.

The bit type does actually use a single bit (as opposed to the bool_t defined in standard C, which uses a whole byte to represent just true or false).

Compiler Errors

can’t generate code for this expression

This error can occur if trying to use the bool_t inside the conditional expression for an if statement.

MPLAB XC8 Compiler – Write your First Program

MPLABX with XC8 – Getting started & your first Program: In this post, we explain that how to write your first MPLAB XC8 compiler and also demonstrates that how to write and execute our first program for pic16f877a microcontroller.

First, we will see how to create a new project in MPLAB XC8 compiler. After that, we will write an example program so that you can learn how to compile code and generate a hex file. In the end, we will learn to upload code to Pic microcontroller using MPLAB X IPE.

MPLAB XC8 Compiler getting started guide

Table of Contents

Download and Install MPLAB IDE and XC8 Compiler

Microchip provides free of cost MPLAB integrated development environment (IDE). We can use this IDE to program Pic and AVR microcontrollers. Additionally, we can use it along with XC8, XC16 and XC32 compilers to program PIC10F, PIC12F, PIC16, PIC18, PIC24, PIC32 and Dspic series of microcontrollers. In this post, we will see how to use MPLAB with XC8 compiler, but you can follow the same instructions to use this IDE with compilers.

Download MPLAB X IDE

First of all, we will download the MPLAB X IDE from the following link:

Open this link and go to the bottom of the page. You will find many options according to version and operating systems. This IDE is available for three popular operating systems such as Windows, MAC and Linux operating systems. Download the latest version according to your system. After that click on the installation file and follow the instruction to install IDE. We are not going to explain the installation process. Because it is pretty straightforward.

Download XC8 Compiler

In the last section, we only downloaded and installed IDE. MPLAB IDE by default does not include any compiler. We can use it to write assembly language programs without the need for any compiler. But if we want to write code in embedded c language, we need to install a compiler separately. Go to this link and download XC8 compiler:

Go to this link and scroll to the end of the page. Click on compilers download menu and click on the XC8 compiler to download. Again make sure to download compiler according to the operating system that you are using. After that install XC8 compiler by clicking on the installation file. Once you have completed the installation process, you don’t need to do anything. XC8 got linked with MPLAB IDE automatically.

Create New Project with MPLAB XC8 Compiler

To create a new project follow these steps:

Create a New Project

First, open MPLAB X IDE by clicking on its icon and after that from the menu, select File>>New Project. Also, you can open existing projects, close projects and import from this menu.

MPLAB XC8 Compiler Create New project

After that, this window will pop up. From categories option, pick “MicroChip Embedded” and from Projects window, select “Standalone Project”. After that click on the Next button.

MPLAB XC8 Compiler select stand alone project

Select Microcontroller

Now we will select a target microcontroller that we want to use. You must select a microcontroller that you want to use. Type the name of the pic microcontroller in the device window. For example, we will be using PIC16F877A microcontroller, we have typed PIC16F877A.

MPLAB XC8 Compiler select microcontroller

Programmer Hardware Tool

Now form select tool option, we can select the hardware tools such as programmers, debugger or other tools. For example, if you are using PICKit3 programmer to upload code to pic microcontroller then select PICKit3. Otherwise, you can select from other available options. Moreover, if you are not using any hardware and just want to use a simulator, you can select a simulator option.

MPLAB XC8 Compiler select programmer or simulator

MPLAB Compiler Selection

As we mentioned earlier, the MPLAB IDE supports many compilers. From compiler toolchains, select the compiler you want to use. Right now, it is showing only XC8 compiler and mpasm. Because we have only installed XC8 compiler and MPASM is available by default in MPLAB. But if you have installed multiple compilers all will show here. Now select the XC8 compiler and click on the next button.

MPLAB XC8 Compiler select xc8 compiler

Save Project Location MPLAB XC8 Compiler

In this last step, we will select the location where we want to store a PIC16F877A project in our system. Type a name for the project in the Project Name field. Click Browse to set the location of the project files. To differentiate the current project in the IDE (when multiple projects exist) as the main project, click “Set as the main project”.

MPLAB XC8 Compiler save projects

Now click on the finish button, it will create a new project and you will see a project window in MPLAB as shown below:

MPLAB XC8 Compiler project window

Write First Program with MPLAB XC8 Compiler

Before writing the first program with the MPLAB XC8 compiler, we need to add a source file or C file in the project. The easiest way to add source will is through a project window option. Right-click on Select New>>C Source File.

MPLAB XC8 Compiler add new c file

After you click on the main.c file, this window will open. Give this source file a useful name as we have given it a name “pic16f877aLED” and select extension ‘c’. Similarly, we can add header files also. But for header files, select extension ‘h’ from the menu.

add source file name

After that click on the “Finish” button. It will create a new source file. This file “pic16f877aled” with your specified name will also appear in the project window. The file contains this minimum code. This is a starting point of your first project with MPLAB XC8 Compiler.

#include <xc.h> this header file contains definition of all registers of PIC16F877A microcontroller. This header file microcontroller specific features.

How to Compile Code with MPLAB XC8 Compiler

After you finish writing your first program, you will need to compile the code to generate hex file and to see if there is an error in the code. To compile code, click on a building project button. If there is no error in the code, it will display a message of successfully built and generate a hex file.

How to compile code

You can upload this hex file to your microcontroller. You can read this tutorial on how to upload code to pic microcontroller using PICKit3 programmer:

If you are using proteus, you can get a hex file from your project folder and upload it to the proteus.

MPLAB XC8 Compiler Example

In this section, we will take an example code and compile this code. After that, we will upload hex file into proteus file and see how it works.

How to generate Configuration Bits File ?

First of all, we need to generate an configuration bit file with MPLAB XC8 compiler. Configuration bits file defines main features of pic microcontroller such as oscillator setting, watchdog timer, Power-on Reset, Brownout detect settings, etc. To know more about configuration bits, read this post:

To generate configuration bits file, go to window>>target memory views>>Configuration Bits and click on it.

 configuration bits setting

After that, you will see this configuration bit settings field. Click on “Generate Source Code to Output”. It will generate a file. Copy that file and add it to your project. One other possible way to add this file in the project is through a header file. Create a header file and add this file to your main code.

 generate configuration bit output file

We add this configuration file inside the main code.

We are not going to explain how this code works. Because this tutorial is getting started guide only. The purpose of this tutorial is to teach you how to create your first project and compile code with MPLAB XC8 compiler.

PIC Microcontroller LED Blinking Example

In this section, we will see an LED blinking example. For instance, we use an LED with RB0 pin of PIC16F877A microcontroller. We connect an LED with pin0 of PORTB through a current limiting resistor.

MPLAB XC8 Compiler LED Blinking Example

Now copy this code to your MPLAB project and generate a hex file.

This example code will blink an LED with a delay of half-second. LED will turn on for half second and then remain off for half-second.

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

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