## Подготовка к работе Предварительно должен быть установлен и настроен [Git for Windows 64-bit](https://git-scm.com/download/win). Также должны быть установлены 64-bit драйверы J-Link в папку `C:/Program Files/SEGGER/JLink/` * Update existing installation * Install for all users ![alt text](JLink_drivers_install.png) --- ### Установка Dev Tools Запускаем скрипт [sys/install.sh](../../sys/install.sh) Произойдет скачивание и распаковка архивов с build tools и toolchain в папку `С:/xpack-dev-tools`. Никакие переменные среды не меняются, установка полностью независима (портативная) и не затрагивает никакие другие программы. После установки Dev Tools необходимо перезапустить VSCode если он был запущен. --- ### Установка VSCode Скачиваем и устанавливаем [стабильную версию](https://code.visualstudio.com/). - Открываем папку с нашим проектом в VSCode. - Открываем расширения `Ctrl+Shift+X`. - Устанавливаем расширения рекомендованные нашим `workspace`. Они помечены текстом `This extension is recommended by users of the current workspace.` - [C/C++](vscode:extension/ms-vscode.cpptools) и [Cortex-Debug](vscode:extension/marus25.cortex-debug) обязательны к установке, остальные по желанию. Дополнительные расширения: - [Git Graph](vscode:extension/mhutchie.git-graph) - рекомендую для работы с git. - [LinkerScript](vscode:extension/ZixuanWang.linkerscript) - Linker Script files syntax. - [GNU Linker Map files](vscode:extension/trond-snekvik.gnu-mapfiles) - Linker Map files syntax. - [Intel HEX format](vscode:extension/keroc.hex-fmt) - Intel Hex files syntax. - [Hex Editor](vscode:extension/ms-vscode.hexeditor) - Hex editor for binary files. - [Arm Assembly](vscode:extension/dan-c-underwood.arm) - ARM Assembly files syntax. - [Material Icon Theme](vscode:extension/pkief.material-icon-theme) - Симпатичные иконки файлов и папок в Explorer слева. - [EditorConfig for VS Code](vscode:extension/EditorConfig.EditorConfig) - Следит за табами/пробелами/отступами/кодировкой для всех файлов проекта. - [Open in External App](vscode:extension/YuTengjing.open-in-external-app) - Позволяет открывать файлы проекта в системных приложениях прямо из VSCode. - [Task Buttons](vscode:extension/spencerwmiles.vscode-task-buttons) - Отображает кнопки для запуска тасков в статусбаре. Рекомендации всех расширений находятся в файле [.vscode/extensions.json](../../.vscode/extensions.json). --- ### Сборка проекта в консоли Сборка осуществяется с помощью `make`. В папке `settings` находятся скрипты экспорта переменных окружения: - [sys/export.sh](../../sys/export.sh) - для bash - [sys/export.bat](../../sys/export.bat) - для cmd - [sys/export.ps1](../../sys/export.ps1) - для powershell Чтобы все наши компиляторы/линкеры/утилиты да и сам `make` стали доступными, вначале необходимо запустить соответствующий скрипт экспорта. Для bash запускаем через точку `. sys/export.sh`. Для остальных достаточно просто запустить скрипт. Далее просто запускаем нужный `make` таргет. #### Команды `make` - `make -e MODEL=M2 debug` - сборка дебага M2 - `make -e MODEL=M3 debug` - сборка дебага M3 - `make -e MODEL=M2 release` - сборка релиза M2 - `make -e MODEL=M3 release` - сборка релиза M3 Релизные сборки отличаются отключеным дефайном `DEBUG` и оптимизацией кода по размеру. --- ### Сборка проекта в консоли VSCode Тут проще: - Открываем папку с нашим проектом в VSCode. - Открываем консоль `Ctrl+~`. (запустится терминал по молчанию) - Можете выбрать свой любимый терминал. Я предпочитаю `Git Bash`. - И сразу можем набирать команды `make`. В файле [.vscode/settings.json](../../.vscode/settings.json) находятся конфигурации встроенных терминалов которые автоматически подгружают скрипты экспорта при открытии. --- ### Сборка проекта с помощью VSCode Tasks. - Открываем папку с нашим проектом в VSCode. - Нажимаем `Ctrl+Shift+B` и выбираем нужный Task. Таски находятся в файле [.vscode/tasks.json](../../.vscode/tasks.json). Они автоматически загружают экспорт окружения и запускают нужные команды `make`. Если установлено расширение [Task Buttons](vscode:extension/spencerwmiles.vscode-task-buttons), то в строке статуса появятся кнопки для удобного запуска тасков `M2 Release`, `M3 Release`, `M2 Debug`, `M3 Debug`, `Clean`. --- ### Отладка VSCode В разделе `Run and Debug` слева выбираем конфигурацию отладки `Debug M2` или `Debug M3` и нажимаем зеленую стрелочку `Start Debugging` или `F5`. Проект автоматически соберется (preLaunchTask), прошьется МК и запустится отладка. Вывод логов доступен в терминале `SWO:ITM`. В дальнейшем если конфигурация ранее уже была выбрана, то для запуска компиляции и отладки достаточно просто нажимать `F5`. --- ### PowerShell (если возникает ошибка) В PowerShell по умолчанию отключено выполнение скриптов. Для исправления: - Открываем PowerShell от имени администратора. - Пишем и запускаем: `Set-ExecutionPolicy RemoteSigned` - На вопрос отвечаем: A (Да для всех) ---