Bluetooth в VESC

В VESC Tool есть возможность использовать модуль Bluetooth для соединения с платой. Заложен чип NRF51822. Автор использует подобные платы. Также он сделал свою прошивку в репозитории:
https://github.com/vedderb/nrf51_vesc

Я купил платы nrf51822-02, которые являются клонами вот этих. В них заработала прошивка nrf51_vesc_ble_16k_16m_rx11_tx9_led3.bin из уже прекомпилированных прошивок.

Прошил отладчиком ST-Link через openocd командой:

openocd -f openocd.cfg -c "init" -c "halt" -c "nrf51 mass_erase" -c "program nrf51_vesc_ble_16k_16m_rx11_tx9_led3.bin verify reset exit"

Сброс защиты от чтения в STM32

Чтобы сбросить защиту от чтения с помощью командной строк нужно выполнить следующую команду:

openocd -f interface/stlink-v2.cfg -f target/stm32f3x.cfg -c "init; reset halt; stm32f3x unlock 0; reset halt; exit"

После этого обязательно нужно сбросить питание!

Отладка микроконтроллеров в Qt Creator

Для работы с микроконтроллерами есть ряд специализированных IDE, которые в основном платные. Здесь я рассмотрю вариант с использованием открытой среды Qt Creator.

Читать далее Отладка микроконтроллеров в Qt Creator

Проблемы упакованных структур

Не так давно я столкнулся с проблемой: структуры, полученные от устройства через USB-VCOM, содержали не те данные, которые я ожидал. Размер структуры в программе на Qt отличался от размера встроенной программы, скомпилированной в Keil uVision. Соответственно, доступ к членам структуры, а особенно к битовым полям оказывался некорректным.

Читать далее Проблемы упакованных структур

startup.s для Cortex-M в ARM компиляторе

Попытаюсь разобраться со структурой стартового файла startup.s для процессоров Cortex-M в среде Keil MDK-ARM и понять, как запускается процессор, на примере файла инициализации для отечественных процессоров 1986ВЕ1Т, которые являются аналогом ядра Cortex-M1.

Читать далее startup.s для Cortex-M в ARM компиляторе