SocketCAN

У меня есть USB-CAN устройство VSCom USB-CAN Plus. Помимо родных драйверов для Windows, с ним можно работать через ASCII режим slcan в Linux.

Для подключения к устройству необходимо создать устройство slcan. Можно запустить процесс не отдельно, а в этом терминале с ключом -F:

sudo slcand -o -s8 -t hw -S 3000000 /dev/ttyUSBx

Затем поднять сетевой интерфейс

sudo ip link set up slcan0

После этого можно использовать сторонние утилиты для подключения к интерфейсу slcan0, например candump для прослушивания трафика:

candump slcan0

Для корректного отключения надо убить процесс slcand:

sudo ip link set down slcan0
sudo kill slcand

Ссылки на программы:

https://github.com/robincornelius/CanOpenMonitor
http://www.emotas.de/en/produkte/canopen-device-explorer
https://github.com/CANopenNode/CANopenNode
https://github.com/CANopenNode/CANopenSocket

Сброс защиты от чтения в 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 компиляторе