- Применение
- Схема
- Компоненты
- Микроконтроллеры
- Мониторы
- Редактор/компилятор
- Компилятор
- Файлы
- Разработка
Компилятор
SimulIDE не распространяет компиляторы.
Для использования компилятора он должен быть установлен в вашей системе и работать корректно.
Затем SimulIDE может использовать его, выполняя команду компилятора и её аргументы.
Это достигается путём настройки команды компилятора и её параметров в XML-файлах, расположенных в папках: SimulIDE/data/codeeditor/compilers/ или User_data_folder/codeeditor/compilers/
В SimulIDE уже включены некоторые настроенные компиляторы, но вам может потребоваться изменить некоторые настройки в XML-файле в соответствии со спецификациями вашего компилятора (например, изменить имя исполняемого файла или расширение для Windows).
Ознакомьтесь со структурой файлов ниже, чтобы понять, как работают эти файлы и как их редактировать или добавлять новые компиляторы.
Если у вас есть вопросы, задавайте их на нашем форуме.
Некоторые компиляторы автоматически загружаются для определённых расширений файлов, например:
.ino: Компилятор Arduino.
.gcb: Компилятор GcBasic.
.as: Скриптовый компилятор.
Если ваш файл имеет другое расширение, вам нужно выбрать компилятор для этого файла или создать новый.
Настройки:
В версии 1.0.0 откройте «Настройки компилятора» на панели инструментов, выбрав их из меню «Настройки», и выберите компилятор из списка.
В версии 1.1.0 сначала выберите компилятор в «Настройках файла», затем настройте компилятор в «Настройках компилятора».
После этого при необходимости настройте любые параметры (например, «Путь к инструменту»).
Параметры могут быть разными для каждого компилятора и будут добавлены в зависимости от полей, используемых в файле конфигурации.
Компиляция:
После настройки компилятора вы можете скомпилировать файл, нажав на кнопку компиляции на панели инструментов.
Посмотрите на нижнюю панель, чтобы увидеть результат процесса компиляции и проверить, нет ли ошибок. Если ошибок нет, вы можете загрузить сгенерированный .hex файл в микроконтроллер в схеме, нажав кнопку загрузки на панели инструментов.
Если вы нажмёте кнопку загрузки, файл сначала будет скомпилирован, а затем загружен.
Важно!
Обратите внимание, что если в схеме присутствует более одного микроконтроллера, .hex файл будет загружен в «активный» микроконтроллер, который обозначен жёлтой точкой.
Для изменения "активного" микроконтроллера, нажимите правую кнопку на нем, чтобы открыть контекстное меню и выберите "Main Mcu"
Добавление компиляторов:
Компиляторы определяются в XML-файлах, расположенных по адресам:
SimulIDE_1.x.x/data/codeeditor/compilers/compilers
SimulIDE_1.x.x/data/codeeditor/compilers/assemblers
Эти XML-файлы определяют тип компилятора, путь сборки, этапы сборки, подсветку синтаксиса и другие атрибуты, необходимые для работы компилятора.
Если нужный вам компилятор отсутствует в списке, вы можете добавить новый.
Чтобы добавить компилятор, просто создайте XML-файл в указанных выше папках.
Ваш компилятор будет добавлен в список в диалоговом окне «Настройки компилятора».
Структура файла:
Структура файла XML выглядит так:
<compiler name="anyName" type="xx" buildPath="somePath" syntax="f.syntax" >
<step
command="executable"
arguments=" arguments for executable"
argsDebug=" arguments for executable in debug mode"
/>
<step
command="executable2"
arguments=" arguments for executable2"
argsDebug=" arguments for executable2 in debug mode"
/>
</compiler>
Сначала имя компилятора, тип и другие характеристики определяются в поле "compiler".
Затем вы можете добавить так много построенных шагов, как вы хотите в поле "step".
Поле "компилятор":
<compiler name="anyName" type="anyType" buildPath="somePath" syntax="syntaxFile" >
name: Это имя будет отображаться в списке компиляторов в диалоговом окне «Настройки компилятора».
type: Определяет определённые характеристики отладчика. Вы можете закодировать некоторые характеристики в последних двух цифрах, например, когда type=“myType01”. Ключ заключается в последних двух цифрах: “01”.
Слева направо:
Первая цифра “0*” — уровень языка:
Значение может быть 0 или 1: 0 для ассемблера, 1 для языков высокого уровня.
Вторая цифра “*1” — тип файла .lst:
Значение может быть от 0 до 3:
Бит 0: используется ли “:”?
0 — не используется “:” (например, gpasm).
1 — используется “:” (например, avra, gavrasm).
Бит 1: позиция адреса флеш-памяти (0 или 1).
buildPath: Папка, используемая компилятором в качестве пути сборки.
Вы можете использовать «подстановки», например, если исходный файл:
И вы определяете buildPath как buildPath=“build_$fileName”,
то будет создана папка с именем build_myfile, которая будет использоваться как путь сборки.
Обратите внимание, что этот путь необходимо использовать в аргументах команды, если это требуется (см. пример ниже).
syntax: Файл синтаксиса, используемый для подсветки.
Файлы синтаксиса находятся по адресу: SimulIDE_1.x.x/data/codeeditor/syntax/.
Вы можете добавить свои собственные файлы синтаксиса в эту папку и использовать их в определениях компилятора.
Этапы сборки:
Вы можете добавить столько этапов сборки, сколько необходимо.
Каждый этап должен содержать как минимум «command».
<step
command="executable"
arguments=" arguments for executable"
argsDebug=" arguments for executable in debug mode"
/>
command: Команда для выполнения.
arguments: Аргументы, добавляемые к команде при компиляции.
argsDebug: Аргументы, добавляемые к команде при компиляции для отладки.
Подстановки: Вы можете использовать некоторые подстановки в аргументах команды и других значениях.
Например, $FilePath будет заменён на фактический путь к исходному файлу.
Предположим, у нас есть этот исходный файл: /home/user/myfile.asm
Затем мы можем использовать эти подстановки:
Подстановка | Пример | Заменить на |
---|---|---|
$filePath | /home/user/myfile.asm | полный путь к файлу |
$fileDir | /home/user/ | путь к папке с файлом |
$fileName | myfile | имя файла (без расширения) |
$fileExt | .asm | расширение файла (с точкой) |
$buildPath | - | путь сборки (определён в XML-файле) |
$inclPath | - | путь к включаемым файлам (определён в диалоговом окне настроек) |
$family | - | семейство устройств (определено в диалоговом окне настроек) |
$device | - | модель устройства (определена в диалоговом окне настроек) |
Пример:
Это упрощенная версия xml-файла для компилятора Avr gcc:
<compiler name="Avrgcc" type="avrgcc" buildPath="build_$fileName" useDevice="true">
<step
command="avr-gcc"
arguments=" -mmcu=$device -Os -o $buildPath$fileName.elf $filePath"
argsDebug=" -mmcu=$device -Og -o $buildPath$fileName.elf $filePath"
/>
<step
command="avr-objcopy"
arguments=" ihex $buildPath$fileName.elf $buildPath$fileName.hex"
/>
<compiler/>
Предположим, что мы компилируем файл с путём: /path/toMyproject/mycode.c
И у нас есть следующие настройки компилятора:
Путь к инструменту: /path/to/myCompiler/ Устройство: atmega8
Для первого этапа сборки будут выполнены следующие подстановки:
buildPath=“build_$fileName” изменяется на: buildPath=“/path/toMyproject/build_mycode”
-mmcu=$device изменяется на: -mmcu=atmega8
buildPath изменяется на: /path/toMyproject/build_mycode/
fileName изменяется на: mycode
Таким образом, $buildPath$fileName.elf становится:
/path/toMyproject/build_mycode/mycode.elf
$filePath изменяется на: /path/toMyproject/mycode.c
В данном случае, поскольку указан buildPath, папка сборки
/path/toMyproject/build_mycode будет создана автоматически.
Полная команда, которая будет выполнена для первого этапа сборки, следующая (всё в одной строке):
"/path/to/myCompiler/avr-gcc" -mmcu=atmega8 -Os -o /path/toMyproject/build_mycode/mycode.elf "/path/toMyproject/mycode.c"