Перейти к содержанию
    

Программирование LPC4337 под Linux через DFU

Добрый день, коллеги! Может кто-нибудь подсказать рабочий вариант как запрограммировать LPC4337 через USB0 DFU под linux? Как-то забодать dfu-util не получается. Сыплет различные ошибки, либо не программирует кристалл. Информация по этой утилите раскидана по всей сети, и как иногда это случается по эту ОСЬ, не получается просто взять и запустить. Возможно, у кого-то есть рабочее решение? Будуд очень благодарен!!!

З.Ы. В Windows программирование проходит без проблем)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

STM32 программируется без проблем как-то так:

dfu-util -D file.bin -s 0x08000000:leave -a 0

А на MAC'е, например, так же версия dfu-util работает только при явном указании vid:pid.

А в вашем случае что?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, aaarrr said:

STM32 программируется без проблем как-то так:

Так и запускаю. Bin-файл после компилятора IAR, верно? Но в своём случае получаю текст ошибки. Сейчас, не на работе, не могу сказать точно ошибку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, haker_fox said:

Bin-файл после компилятора IAR, верно?

Нет, не  IAR, но какая разница? Обычный бинарный файл.

 

9 minutes ago, haker_fox said:

Но в своём случае получаю текст ошибки. Сейчас, не на работе, не могу сказать точно ошибку.

Самый простой вариант - отсутствие нужных прав.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, haker_fox сказал:

Добрый день, коллеги! Может кто-нибудь подсказать рабочий вариант как запрограммировать LPC4337 через USB0 DFU под linux? Как-то забодать dfu-util не получается. Сыплет различные ошибки, либо не программирует кристалл. Информация по этой утилите раскидана по всей сети, и как иногда это случается по эту ОСЬ, не получается просто взять и запустить.

Что за утилита?

Я брал Application note, описывающий DFU (описание нормальное), и реализовывал в своей программе загрузку. Протокол там простой. Насколько помню. Правда я прошивал внешнюю SPI-FLASH.

Помню что первым посылал файл загрузчика (программа для LPC43xx, выполнение из ОЗУ), которая стартовала в МК и дальше уже она продолжала приём (уже того образа, который нужно было писать во флешь).

Изменено пользователем jcxz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, aaarrr said:

Обычный бинарный файл.

Ну да, это я и подразумевал. Обычный.

4 hours ago, aaarrr said:

Самый простой вариант - отсутствие нужных прав

Перед запуском утилиты выполнено sudo -s

3 hours ago, jcxz said:

Что за утилита?

http://dfu-util.sourceforge.net/

3 hours ago, jcxz said:

и реализовывал в своей программе загрузку

Как бы такой вариант тоже рассматривается, но за наличием готовой, хотелось присобачить именно её.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Удачное программирование под windows проводилось так же этой утилитой? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, GenaSPB said:

Удачное программирование под windows проводилось так же этой утилитой?

Нет, другой. Оконной. Но я подумал, что раз программируется, то железо и всё прочее исправно.

Изменено пользователем haker_fox

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот пример запуска:

root@fox-pc# sudo dfu-util -D my.bin -s 0x1a000000:leave -a 0
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 1fc9:000c
Run-time device DFU version 0100
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0100
Device returned transfer size 2048
dfu-util: Could not read name, sscanf returned 0
dfu-util: Failed to parse memory layout

 

Перед этим убедился, что утилита видит DFU

 sudo dfu-util -l
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Found DFU: [1fc9:000c] ver=0100, devnum=3, cfg=1, intf=0, path="1-1", alt=0, name="DFU", serial="ABCD"

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Quote

dfu-util: Failed to parse memory layout

В имени конфигурации утилита ожидает увидеть подробности об устройстве программируемого девайса, размер страницы флешки для стирания например... Процессор такого о себе не предоставил.

Вот с таким dfu-util работает нормально:

 

dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Deducing device DFU version from functional descriptor length
Found DFU: [ffff:0750] ver=0000, devnum=2, cfg=1, intf=0, path="1-3", alt=2, name="@SRAM APPLICATION/0x20000000/32*064Kg", serial="SN:19640302_122880000_1"
Found DFU: [ffff:0750] ver=0000, devnum=2, cfg=1, intf=0, path="1-3", alt=1, name="@SPI Flash BOOTLOADER: M25Px/0x18000000/02*064Kg", serial="SN:19640302_122880000_1"
Found DFU: [ffff:0750] ver=0000, devnum=2, cfg=1, intf=0, path="1-3", alt=0, name="@SPI Flash APPLICATION: M25Px/0x18020000/30*064Kg", serial="SN:19640302_122880000_1"

STM-овские процессоры о себе рапортуют так же подробно

Изменено пользователем GenaSPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, GenaSPB said:

STM-овские процессоры о себе рапортуют так же подробно

Ага, вон оно в чём дело. Спасибо)

Нашёл такую статейку. Чуть позже попробую выполнить по ней.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выполнил всё согласно статьи, в итоге получаю это. По непонятной для меня причине загрузка прерывается на 32 %.

dfu-util -d 1fc9:000c -a 0 -D load.dfu
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: DFU suffix CRC does not match
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 1fc9:000c
Run-time device DFU version 0100
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 8
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0100
Device returned transfer size 2048
Copying data from PC to DFU device
Download        [========                 ]  32%       129024 bytesdfu-util: Error during download

 

На всякий случай, в статье говорится, что адрес линковки должен быть 0x00000000. У меня же 0x1a000000. Но даже это не должно, ИМХО, влиять на загрузку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...