Visual studio arm64 что это
Это даже не руководство, а небольшое описание и собственные ощущения о переходе с Keil'а на VSCode. Здесь нет рассказа от том, как настроить систему сборки, только немного о настройках самого редактора.
Небольшая заметка о том, как я решил отказаться от keil и перешел на visual studio code.
Давно я собирался это сделать, но никак не мог решиться. Больше всего в vscode привлекал удобный редактор с его плюшками, до которого keil'у, да и многим другим IDE расти и расти.
Основной проблемой было то, как настроить сборку, как выполнять загрузку и отладку. "У страха глаза велики" - это правда, на деле всё оказалось куда проще. Даже этот текст, который вы читаете, написан в vscode.
Если стало интересно - читайте дальше.
Установка VS Code и расширений
Для разработки приложений на языке Си для микроконтроллеров ARM будем использовать несколько плагинов:
Основные - это верхние три, остальные это лишь небольшие улучшения и дополнения, хотя в принципе достаточно и первых двух.
Настройка среды
Вся настройка производится в файлах json .
Файл .vscode\launch.json соделжит конфигурации запуска и отладки.
Пример моей конфигурации:
Это конфигурация для плагина Cortex-Debug, в которой указаны параметры типа ядра, путь к elf файлу, ипя конфигурации для отладки, интерфейс, тип операционной системы, тип отладчика, путь к файлу описания регистров микроконтроллера (SVD файл), его можно найти в папке с файлами поддержки семейства микроконтроллеров для STM32CubeMx, например для STM32F0 здесь
Следующий файл - .vscode\settings.json , - настройки рабочего пространства, у меня выглядят примерно так.
Указаны лишь три настройки, могут быть и другие, но эти важны для нашего проекта.
Теперь приступим к настройкам нашего проекта, а именно укажем пути к заголовочным файлам, дефайны и настройки стандарта языка, это всё нужно не для сборки проекта, а для работы системы IntelliSense. Главное быть внимательным, так как эти настройки должны быть максимально синхронны с настройками при компилировании файлов, вплоть до указания предопределенных макросов типа __GNU__ и подобных. Иначе можно получить весьма неожиданный результат, на экране будет одно, а по факту проект будет собираться уже по другом из-за вмешательства препроцессора и раскрытия макросов.
Из названия настроек всё понятно: имя конфигурации, путь к компилятору, его аргументы, пути к заголовочным файлам, опеределения макросов и указание стандарта языка. Более подробно об этих параметрах можно почитать в официальной документации.
В принципе все основные настройки готовы, осталось определелить несколько задач для сборки и загрузки прошивки в микроконтроллер. Для этого их необходимо описать в файле .vscode\tasks.json .
Первая задача Build - задача сборки, о чем намекает параметр "kind": "build" , именно её редактор будет предлагать к выбору при выборе меню Терминал -> Запустить задачу сборки. , либо при нажатии кнопок CTRL+SHIFT+B .
Команда которая будет выполняться написана в параметре command .
В первой задаче это запуск утилиты make с параметрами.
Во второй это запуск утилиты jlink для записи файла прошивки в микроконтроллер. Видно, что здесь указаны тип устройства, интерфейс и скорость соединения и скрипт прошивки. Скрипт выглядит следующим образом:
Другие команды, для чтения, очистки и сброса можно посмотреть в документации к jlink .
Ну вот и всё, Вам же осталось только написать свой код, написать Makefile и пользоваться средой.
Немного об ощущениях
- Превосходный редактор с отличным функционалом;
- Можно переходить к определнию функции по клику с нажатым CTRL ;
- куча расширений функционала редактора.
- Немного непривычная отладка: значения регистров и переменных в десятичном формате;
- Отладка без дизассемблера;
- Возможность отстрелить ногу с предопределенными компилятором макросами (то, о чем я писал выше);
- Много ручной работы по настройке проекта и системы сборки;
- GCC вместо ARM Compiler 6.
На первый взгляд кажется что минусов больше, но на самом деле удобство работы в редакторе кода компенсирует многое. А расширение функции отладки скорее всего дело будущих версий этого плагина.
Практически любой активный геймер, предпочитающий запускать более-менее современные игры, сталкивался с необходимостью установки Microsoft Visual C Redistributable. Этот программный пакет очень важен, так как большая часть игр последних лет без него просто откажутся запускаться.
Что такое Microsoft Visual C++ Redistributable?
Redistributable пакет из коробки
Как правило, с установкой никаких проблем не возникает. Все крупные сервисы цифровой дистрибуции игр, будь то Steam, Origin, Uplay и их аналоги, всегда заботятся о поддержке игроков. Например, в Steam DirectX, Microsoft Visual C++ Redistributable и другой нужный для запуска той или иной игры софт ставится автоматически при первом запуске продукта, а Ориджин предлагает в начале установки выбрать, хотите ли вы поставить программу (нужно отметить галочкой).
Однако, дружок, если ты привык качать пиратский контент с торрентов, далеко не всегда игра будет комплектоваться набором необходимых библиотек. Иногда приходится заходить на официальный сайт Microsoft и вручную загружать оттуда свежий дистрибутив.
О старых версиях C++. Нужно ли их удалять?
Если перейти по адресу Пуск – Панель управления – Установка и удаление программ, в списке можно найти с десяток наименований различных версий Microsoft Visual C++. Версии х86 и х64, версии 2005, 2008, 2010, 2017, различные численные нумерации и т.д. Пользователи вполне логично полагают, что имеющаяся версия 2017 года самая новая, а остальное можно смело удалять, также как и версии для х86 систем, если они в данный момент сидят на 64-разрядной версии операционной системы.
В общем так это не работает, нельзя рассчитывать, что более свежая версия обладает обратной совместимостью. Более старые игры используют устаревшие версии Microsoft Visual C++ Redistributable, поэтому отсутствие в системе необходимой версии программного пакета приведет к невозможности запуска. То же самое касается и различных разрядностей (х86, x64) – они также могут использоваться программами и играми.
Как вручную скачать Microsoft Visual C++ Redistributable
Практически весь перечень программных пакетов и клиентских продуктов, разрабатываемых компанией Microsoft, доступен у них на официальном сайте. Крайне нежелательно заходить на сторонние ресурсы, тыкая на первую попавшуюся ссылку в поисковой системе, так как в этом случае нельзя быть точно уверенным, что под установщик не был замаскирован какой-нибудь вирус, шпионское ПО или майнер криптовалют.
На выбор для скачивания предоставляется множество ссылок с различными разрядностями и версиями программного пакета C++. Общий вес их небольшой – много дискового пространства на винчестере они не потребуют. Поэтому имеет смысл сразу поставить весь список (2008, 2010, 2012, 2013, 2015, 2017). Одни понадобятся для уже относительно старых игр и программ, другие – для современных новинок. Сама установка интуитивно понятна.
Как переустановить библиотеки Visual C++
Пользователю может понадобиться переустановить Visual C++, например, если он столкнется с ошибкой о каком-нибудь отсутствующем .dll файле. Часто бывает так, что идущий в комплекте с игрой установщик не совсем исправен или при установке происходит сбой. Тогда игру невозможно запустить, что приводит к необходимости переустановки. Делать это нужно следующим образом:
- Удалить проблемный дистрибутив, воспользовавшись пунктом “Установка и удаление программ” в Панели управления Windows или специализированным софтом для очистки системы, где есть соответствующий функционал, например, CCleaner.
- Перезагрузиться.
- Загрузить на компьютер дистрибутив/дистрибутивы необходимых версий Microsoft Visual C++ для своей разрядности операционной системы.
- Запустить инсталлятор и провести установку согласно инструкции.
- Провести повторную перезагрузку, чтобы все установилось корректно.
Версии Microsoft Visual C++ Redistributable по годам и архитектурам
Microsoft Visual C++ Redistributable 2005
Microsoft Visual C++ Redistributable 2008
Microsoft Visual C++ Redistributable 2010
Microsoft Visual C++ Redistributable 2012
Microsoft Visual C++ Redistributable 2013
Microsoft Visual C++ Redistributable 2015
Microsoft Visual C++ Redistributable 2017
Технология эмуляции доступна в Windows 10 Insider Preview Build 21277 и может быть установлена на устройства Windows 10 с ARM-архитектурой. Компания подготовила подробные инструкции в отдельной публикации.
В программе Windows Insider запускается тестирование эмуляции 64-битных приложений для устройств Windows на ARM
Когда Windows 10 впервые запускалась на ARM в конце 2017 года, клиентам были доступны преимущественно 32-разрядные приложения x86. Поэтому команда Microsoft сосредоточила свои усилия на создании эмулятора x86, который бы позволял беспрепятственно использовать развитую экосистему приложений Windows. Со временем фокус стал смещаться в сторону 64-битных приложений x64, и пользователи все чаще запрашивали поддержку таких программ для ARM64. Новая предварительная версия эмулятора x64 как раз решает данную задачу.
Возможности эмулятора расширяются и для максимального удобства пользователей разработчикам рекомендуется поддерживать свои приложения прямо на ARM64. Приложения ARM64 полностью поддерживаются в Windows SDK и в Visual Studio 2017, поэтому разработчики могут без лишних опасений перекомпилировать свои приложения под ARM64.
В данной предварительной версии поддерживается установка приложений x64 из магазина Microsoft Store и любых других источников. Уже сейчас вы можете протестировать приложения для повышения продуктивности, например Autodesk Sketchbook, а также некоторые игры, например Rocket League. Другие приложения, такие как Chrome, которые сегодня работают на ARM64 как 32-разрядные приложения, могут запускаться как 64-разрядные с использованием новой возможности эмуляции x64. В результате им станет доступно для работы больше оперативной памяти.
Предварительная версия эмулятора x64 распространяется на канале Dev, потому что технология еще находится в разработке и со временем получит улучшения совместимости и производительности. Обратите внимание, что некоторые приложения при запуске в режиме эмуляции могут не запуститься. Microsoft призывает инсайдеров протестировать механизм эмуляции и поделиться ценной обратной связью через приложение «Центр отзывов» в подкатегории Приложения > Приложения x64 на ARM.
Для наилучшей производительности приложений установите предварительную версию графического драйвера Qualcomm Adreno для своего устройства:
Разработчики все чаще поддерживают приложения для ARM64, поэтому эмуляция приложений x64 является важным шагом в развитии экосистемы Windows 10 на ARM. Благодаря совместной работе с Qualcomm Technologies, Windows 10 на компьютерах ARM обеспечивает невероятное время автономной работы, возможности подключения к сетям 4G LTE и 5G, технологии ускорения на базе искусственного интеллекта и поддержку стилуса и сенсорного ввода. Все эти возможности способствуют продуктивной работе и учебе из дома и из других удаленных мест
Microsoft стремится прислушиваться к отзывам клиентом, чтобы предоставить им лучший пользовательский опыт на ARM-устройствах Windows 10. Экосистема данной платформы постоянно расширяется. Недавно были представлены новые устройства Windows 10 на ARM: Acer Spin 7, Lenovo Flex 5G и новый Surface Pro X. Также вышли нативные клиенты Microsoft Teams и Adobe Lightroom для ARM64, а также бета-версия Adobe Photoshop для ARM64. Кроме того, были реализованы уровни совместимости OpenGL/OpenCL и анонсирована технология совместимости через App Assure.
Подготовка Visual Studio Code
Для примера используется Visual Studio Code v1.33.1, на старых версиях могут быть небольшие отличия в плане конфигурационных json файлов.
Предполагается, что у вас уже установлена или есть портативная версия Visual Studio Code. Для работы с C\C++ и отладчиком Cortex-M нам потребуются следующие расширения:
Установить их можно прямо в VS Code, поиском по имени в окне расширений:
Настраивать особо там ничего не требуется.
Установка тулчейна, драйверов отладчика
Далее нам потребуются инструменты, которыми мы будем собирать и заливать прошивку. Cкачиваем официальный тулчейн GNU Arm Embedded Toolchain версии x32 или лучше GNU MCU Eclipse ARM Embedded GCC arm-none-eabi-gcc-xpack x64 версию, т. к. в официальной последней х32 я столкнулся с багом objcopy.exe в GNU Arm Embedded Toolchain, который выглядит во время сборки проекта вот так (более подробно по ссылке выше):
У меня это выглядит вот так:
Как можно видеть выше, у меня прописаны пути аж к Visual Studio тулчейну\инструментам (чтобы не делать две копии на ПК), и я могу тем самым делать проекты как в большой и могучей Visual Studio, так и в сторонних приложениях (как мы сейчас разбираем, Visual Studio Code). Да, GNU MCU Eclipse ARM Embedded GCC я просто распаковал взамен стокового (очень старого) тулчейна, устанавливаемого с Visual Studio.
Пути, которые я добавил (у вас будут явно другие, просто пример, до каких папок необходимо указывать):
Тестовый проект
В качестве тестового проекта возьмем любимый всеми STM32CubeMX и сгенерируем в нём для старючей STM32F4DISCOVERY (просто она есть под рукой) минимальный проект, чтобы не собирать исходники и не писать самому makefile (предполагается, что вы уже знаете уже, как это делается). В проекте задействуем кнопку и светодиоды:
Читайте также: