Как я могу запрограммировать микроконтроллер ARM, используя SWD под Linux?
Я работаю с STM32 ARM Cortex MCU. Он поддерживает протокол под названием SWD (последовательная отладка по проводам). Оглядываясь в Интернете, я нашел arm-none-eabi-gcc
который кажется неплохим компилятором, но с аппаратной стороны я не нашел подходящего способа работы с ним.
Я не смог найти программиста / отладчика SWD, который официально поддерживается в Linux. Самый близкий, который я нашел, был stlink
который выглядит как плохо поддерживаемый проект. Подскажите, пожалуйста, как правильно поступить, если я хочу работать с этим MCU и хочу использовать Linux на своем компьютере?
2 ответа
OpenOCD поддерживается, надежен и работает так же хорошо на Linux и Windows. Я использую его каждый день для программирования и отладки устройств F0, F1 и F4 с использованием SWD (не JTAG).
Если вы пользователь Eclipse, то последняя версия плагина GNU ARM Eclipse даже автоматизирует командную строку OpenOCD для вас. Я написал несколько статей в надежде помочь новым пользователям в моем блоге.
С аппаратной точки зрения, если вы используете платы обнаружения, то у вас есть необходимая поддержка ST-Link на плате и больше ничего не нужно. В противном случае есть официальный ключ ST-Link/v2, а также несколько хитрых клонов на хорошо известном аукционном сайте.
Итак, texane / stlink - это правильно поддерживаемый проект, и я использую его ежедневно. Segger J-Link также поддерживает Linux. У меня есть настройка GCC ARM toolchain с eclipse в качестве моей IDE по умолчанию. Я использую JLinks и STLinks для интерфейсов JTAG и SWD. Я написал несколько статей в своем блоге некоторое время назад, и я могу опубликовать ссылки, если хотите.