реклама на сайте
подробности

 
 
> stm32 DFU over USB, понравилось
klen
сообщение Feb 3 2013, 08:22
Сообщение #1


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Всем привет.
я давно знал что начиная с stm32f2 через USB интерфейс можно читать писать микросхему. но руки не доходили. наконецто мне жеско объявили что в девайсе не будет житага и уарта. серийные изделие отавалось програмить по dfu через юсб. пришлось разобратся. также мне изветно было что у стм есть утилитки которые под виндой делает этот функционал. до данного место наверно Всем колегам я нового не расказал.

далее возник вопрос а как это делать под нашим любимым линуксом. оказалось как всегда проще простого. люди уже позаботились и ежечасно и еженочно заботтся сдавая комиты в репозитории sm.gif Имется открытая тулза dfu-util (http://dfu-util.gnumonks.org/) wiki (http://www.seeedstudio.com/wiki/Dfu-util)
итак.
1. есть плата с впаяной STM32F4, PA11 PA12 подпаяны к юсб разъему. boot1 накорпус, boot0 подтянут к нулю и может быть перемычкой затянут на +3,3v
2. есть бинарник которы хочется залить. при наличие elf его генерим :
Код
arm-kgp-eabi-objcopy --strip-all  -O binary image.elf image.bin


3. втыкаем перемычку boot0 -> 3.3 заставляем грузанутся из системной памяти в корой ST-шный загрузчик
4. С помощью тулзы нарезаем страницы флеша:
Цитата
klen@klen-desktop:/opt/home/polygon/dfu-util-0.7/src$ ./dfu-util -a 0 --dfuse-address 0x08000000 -D image.bin
dfu-util 0.7

Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2012 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

Opening DFU capable USB device... ID 0483:df11
Run-time device DFU version 011a
Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/04*016Kg,01*064Kg,07*128Kg"
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
No valid DFU suffix signature
Warning: File has no DFU suffix
DfuSe interface name: "Internal Flash "
Downloading to address = 0x08000000, size = 112052
.......................................................
File downloaded successfully


5. вытягиваем джампер и ресетим. наслождаемся. в качестве джампера наверно микротактовую кнопку лучше впаять - нажал заресетил отпустил, пертыкать тогда не нада будет.

утилитка ничего особого не тянет из системы
Код
klen@klen-desktop:/opt/home/polygon/dfu-util-0.7/src$ ldd ./dfu-util
    linux-vdso.so.1 =>  (0x00007fff8bb7f000)
    libusb-1.0.so.0 => /usr/local/lib/libusb-1.0.so.0 (0x00007fba65d16000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fba6597e000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fba65775000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fba65557000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fba65f5b000)


есть еще в dfu-suffix только я еще непросек нафига оно надо.
отныне dfu-utils будет в моей сборке тулсов как вкусная и полезная витаминная добавка.

для сильно обездоленных и страждущих за иноземную веру можно процес прикрутиь к винде. не вижу проблем.
Прикрепленные файлы
Прикрепленный файл  dfu_utils_x86_64.tar.7z ( 51.38 килобайт ) Кол-во скачиваний: 36
 
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016