- Применение
- Схема
- Компоненты- Микроконтроллеры
 
 
- Мониторы
- Редактор/компилятор- Компилятор
 
- Файлы
- Разработка
Компилятор
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"







