Linux64 upload-reset, по-видимому, 32-битный двоичный

клавиатура
Чт, 01 июня 2017 г., 4:46 утра
При попытке через Arduino IDE используется Arduino_stm32-Master (29 мая 2017 г. Commit 920b57a) Чтобы загрузить эскиз для STM32F103C Generic Method загрузки STM32UINO загрузчик. Следующие сообщения Arduino отображаются:
Sketch uses 14228 bytes (10%) of program storage space. Maximum is 131072 bytes. Global variables use 2816 bytes of dynamic memory. /home/lubuntu/Downloads/arduino-1.8.2/hardware/Arduino_STM32/tools/linux/maple_upload: line 29: /home/lubuntu/Downloads/arduino-1.8.2/hardware/Arduino_STM32/tools/linux/upload-reset: No such file or directory 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 [email protected] No DFU capable USB device found Filter on vendor = 0x1eaf product = 0x0003 Waiting for /dev/ttyACM1 serial...Done

AG123
Чт, 01 июня 2017 г. 14:47
Загрузить сброс Linux64 есть
https: // github.com/rogerclarkmelbourne/ ... LS/Linux64

На самом деле, даже если загрузка-резит составляет 32 бит, он все равно должен работать. Однако могут быть некоторые зависимости Arduino_STM32/tools/linux64> ldd upload-reset linux-gate.so.1 (0xf76f6000) libc.so.6 => /lib/libc.so.6 (0xf74fb000) /lib/ld-linux.so.2 (0xf76f9000)

клавиатура
Чт, 01 июня 2017 г. 15:00
@AG123

Проблема не в том, если загрузка-резит находится в каталоге Linux64. Это то, что загрузка-резец-это 32-битный бинар в каталоге для 64-битных элементов, из которых все остальные двоичные файлы на самом деле 64-битные двоичные файлы. Если кто -то хочет использовать 32 -битный двоичный, то можно использовать двоичные файлы в каталоге Linux, которые составляют 32 -битные двоичные файлы. Почему 32 -битный двоичный файл был в 32 и 64 -битных двоичных файлах? Цель 64 -битного каталога - иметь 64 -битные двоичные файлы.


С уважением,

Джон Л. Мужчины
Торонто, Онтарио
Канада
01 июня 2017 г. 15:00 EDT

AG123
Чт, 01 июня 2017 г. 15:01
Я думаю, что версия на 64 бит еще не составлена, следовательно, 32 -битная версия скопирована в каталог 64 бит
Он все еще должен работать, пока в системе доступны 32 -битные динамические библиотеки ссылок.

В качестве альтернативы вы можете скомпилировать его и положить копию в свой локальный каталог Linux64.
https: // github.com/rogerclarkmelbourne/ ... нагрузка

AG123
Чт, 01 июня 2017 г. 15:14
Я только что собрал его и загрузил здесь gcc -o upload-reset upload-reset.c

AG123
Чт, 01 июня 2017 г. 15:39
Для других, которые используют Linux, протестируйте его, так как есть вероятность, что эти библиотеки динамических ссылок LIBC и т. Д. В вашей системе разные.
Тем не менее, динамическое связывание позволяет ему работать над любой системой с соответствующими версиями DLL и, возможно, предотвращает «жесткую ошибку» с вызовами в ядро.
Прокомментируйте в этой теме, работает ли это для вас или нет

Рик Кимбалл
Чт, 01 июня 2017 г., 16:03
Клавиатура написала:Проблема не в том, если загрузка-резит находится в каталоге Linux64. Это то, что загрузка-резец-это 32-битный бинар в каталоге для 64-битных элементов, из которых все остальные двоичные файлы на самом деле 64-битные двоичные файлы. Если кто -то хочет использовать 32 -битный двоичный, то можно использовать двоичные файлы в каталоге Linux, которые составляют 32 -битные двоичные файлы. Почему 32 -битный двоичный файл был в 32 и 64 -битных двоичных файлах? Цель 64 -битного каталога - иметь 64 -битные двоичные файлы.

клавиатура
Чт, 01 июня 2017 г., 16:10
Рик Кимбалл написал:Клавиатура написала:Проблема не в том, если загрузка-резит находится в каталоге Linux64. Это то, что загрузка-резец-это 32-битный бинар в каталоге для 64-битных элементов, из которых все остальные двоичные файлы на самом деле 64-битные двоичные файлы. Если кто -то хочет использовать 32 -битный двоичный, то можно использовать двоичные файлы в каталоге Linux, которые составляют 32 -битные двоичные файлы. Почему 32 -битный двоичный файл был в 32 и 64 -битных двоичных файлах? Цель 64 -битного каталога - иметь 64 -битные двоичные файлы.

AG123
Чт, 01 июня 2017 г., 16:19
По какой-то причине, что я не совсем понимаю, что фиксированный резит для загрузки, кажется, ухудшается «хуже»
Ранее это с 32-битным загрузкой 32-бил
Теперь с фиксированным 64 битами загрузки-резита, сброс казался глупым
Кажется, это не работает с определенными установленными эскизами :ржу не могу:

я.эн. Это, вероятно, не имеет ничего общего с тем, является ли это 32 бита или 64 бита загрузки
скорее сброс в самом эскизе не работает постоянно. Казалось, это зависит от эскиза, установленного на устройстве

клавиатура
Чт, 01 июня 2017 г., 16:42
@ AG123

Бинарник 64 бит. Мне показалось бы лучше, чем статическая связь, двойные, предназначенные для размещения диапазонов распределений и библиотек распределения, которые могут измениться. В таком месте моего собственного кода, который необходимо охватывать различные распределения и выбросы, которые уменьшают переменные, связанные с динамическими библиотеками с различными соглашениями об именах и/или бинарных интерфейсах на уровне библиотеки.

Если кто-то делает «upload-reset /dev /maple» из CLI за пределами Arduino IDE, какое ожидаемое поведение? Например, есть какие -либо визуальные показания?

Я сделал как внутри, так и снаружи IDE. Сначала вне IDE. Я задал вопрос выше, так как, кажется, смешанное поведение.


С уважением,

Джон Л. Мужчины
Торонто, Онтарио
Канада
01 июня 2017 г. 12:41 EDT
01 июня 2017 г. 13:31 EDT Small, но важная коррекция опечатки JLM

П.С. OPPS предыдущие посты сегодня я смешал, заявив EDT, когда был UTC. Извини. JLM

AG123
Чт, 01 июня 2017 г., 17:17
Я бы предпочел не выполнять статическую связь, поскольку интерфейс между LIBC или несколькими библиотеками динамических ссылок с ядром Linux на самом деле отличается между разными версиями ядра. Выполнение статической ссылки может привести к тому, что она прерван / ошибка на любой другой платформе, интерфейс Syscall отличается, я думаю, что между ядрами V3 и V4 существует довольно много изменений. и статическое связывание приведет к тому, что двоичный файл V4 провалится на ядре V3 или двоичном файле V3, чтобы потерпеть неудачу на ядре V4 и т. Д.

В то время как для динамического связывания, это просто символы, и до тех пор, пока в системе находится правильная версия (обычно такая же или более поздняя версия), она просто работает, она просто работает. В то время как LIBC имеет дело с интерфейсом между собой и ядром, который может отличаться в разных системах

Обратите внимание, что LIBC и ядро ​​имеют плотную связь, и что LIBC и ядро ​​обычно строят довольно сложный процесс «песочницы», чтобы он заставлял конкретный LIBC работать с определенным ядром, и все другие приложения могут быть динамически связаны с LIBC (LIBC ( Обычно в основной версии). И те же самые приложения будут работать на другой версии платформы / дистрибуции / ядра, если такая же версия Libc DLL существует
https: // sourceware.org/glibc/wiki/тестирование/сборки
--------
Загрузка-резит отправляет «импульс DTR» на USB-сериал, а затем отправляет текст «1EAF»
http: // docs.Leaflabs.com/static.Leaflab ... 3-rev5-dfu IDE выполняет этот сброс автоматически, выполняя специальную последовательность изменений в серийном порту USB:
- Pulse DTR (высокий, а затем низкий, так что вы’VE создал отрицательный край)
- Писать “1 -е” в ASCII над серийной трубой.
Это приведет к сбросу Maple. Только первые 4 байта после отрицательного края DTR проверяются на эту команду, так что она’Важно вы фактически создаете негативное преимущество, а не просто гарантировать, что DTR является низким.
Следовательно, бег >./upload-reset /dev/maple

AG123
Чт, 01 июня 2017 г., 19:51
Если вы ищете решение, в ядре Libmaple:
https: // github.com/rogerclarkmelbourne/ ... л.CPP#2297 #ifdef SERIAL_USB // Got the magic sequence -> reset, presumably into the bootloader. // Return address is wait_reset, but we must set the thumb bit. uintptr_t target = (uintptr_t)wait_reset | 0x1; asm volatile("mov r0, %[stack_top] \n\t" // Reset stack "mov sp, r0 \n\t" "mov r0, #1 \n\t" "mov r1, %[target_addr] \n\t" "mov r2, %[cpsr] \n\t"

клавиатура
Чт, 01 июня 2017 г., 21:12
AG123,

Я передам динамическую и статическую связь, как вы знаете мои причины, и я знаю, почему поставщики статическая ссылка код ссылки.

Я спросил, чего ожидать, когда вы делаете «reset-reset /dev /maple» от CLI за пределами Arduino IDE, потому что у меня было смешанное поведение.

1) Впервые сделал это через CLI, и LED стал твердым.
2) После нажатия кнопки «Сбросить» на плате UC нет светодиодного света.
3) через Arduino Post (2) не очень хорошо и не светодиод.
4) После кнопки «Сбросить» на UC и USB Power Cycle IDE не было успешным и, по моему мнению, отличается от того, что требует новой темы для этой уникальной проблевой,

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

Где найти источник для загрузки?


С уважением,

Джон Л. Мужчины
Торонто, Онтарио
Канада
01 июня 2017 г. 16: 36/17: 11

AG123
Чт, 01 июня 2017 г., 22:12
Клавиатура написала: Где найти источник для загрузки?

Начало работы на OSX?