LINUX.ORG.RU

st-flash

 


0

1

уже говорил что купил контроллер на авито. прочитал тут темы и пытаюсь запустить програмку. но когда делаю

st-flash write myfile
то появляется ошибка
error: st-flash:undefined simbol: init_chipid
на авито также был приобретен orange pi. все пытаюсь делать с него. такой выбор случился после прочтения многих тем тут. версия st-flash
 v1.7.o-98
гуглил. решение не нашел. писали что поддержка китайских поделий в этой версии решена. что делать? ответить на ваши вопросы в теме не могу так как после бана могу только создавать темы но писать комменты неполучается. поэтому напишите если знаете как решить проблему описаную выше.



Последнее исправление: Stierlitz_ (всего исправлений: 1)

Ответ на: комментарий от apt_install_lrzsz

Попробую собрать его под arm

милостевый государь так это надо было сделать сразу.

просто мёртвый

нет. просто руки кривые у некоторых.

anonymous
()
Ответ на: комментарий от anonymous

просто руки кривые у некоторых

Не кривые, а под гитару заточены.

anonymous
()
Ответ на: комментарий от apt_install_lrzsz

к тебе это не относится. спасибо находишь время для начинающих.

anonymous
()
Ответ на: комментарий от anonymous

красавчик. а ты с x86 машины все это делаешь?

не, Orange Pi Zero.

Linux orangepizero 5.10.43-sunxi #21.05.6 SMP Mon Jun 21 15:07:45 UTC 2021 armv7l GNU/Linux
anonymous
()
Ответ на: комментарий от anonymous

Кому надо? ТСу? Так он изначально и пытался собрать.

Судя по всему, какой-то soшник не подцепился.

нет. просто руки кривые у некоторых.

У китайцев, которые делают копии чипов и программаторов? С этим помочь не могу.

apt_install_lrzsz ★★★
()
Ответ на: комментарий от anonymous

st-flash 1.7.0

Возможно потому что у тебя 1.7.0, а у меня 1.7.0-103-gc758341

st-flash 1.7.0-103-gc758341
/etc/stlink/chips: No such file or directory
2021-08-15T14:06:35 INFO common.c: F1xx Medium-density: 20 KiB SRAM, 128 KiB flash in at least 1 KiB pages.
file /home/xxx/xxxx.bin md5 checksum: 3b13c7a9b78084844662c13d3770ba98, stlink checksum: 0x0012a9e9
2021-08-15T14:06:35 INFO common.c: Attempting to write 13108 (0x3334) bytes to stm32 address: 134217728 (0x8000000)
2021-08-15T14:06:35 INFO common.c: Flash page at addr: 0x08000000 erased
...
2021-08-15T14:06:37 INFO common.c: Flash written and verified! jolly good!
anonymous
()
Ответ на: комментарий от apt_install_lrzsz

Судя по всему, какой-то soшник не подцепился.

Судя по всему, у ТС-а сошник подцепился, да не тот. Возможно даже подцепился сошник от установленного из репы stlink’а. Вот поэтому и не находиться символ ‘init_chipid’

Так что китайцы в этой ситуации не виноваты.

anonymous
()
Ответ на: комментарий от apt_install_lrzsz

жизнь на orange стала бы проще. не понимаю конечно же что их тянет на эту платформу но раз уж они залезли то не мешало бы помочь им.

anonymous
()
Ответ на: комментарий от anonymous

ты как прошиваешь? скомпилировал, заходишь в директорию где скомпилировал и запускаешь от туда st-flash? я собрал, установил, и уже выполняю

#st-flash write file.bin 0x08000000
все это делаю оттуда где лежит file.bin . конкретно напиши что надо сделать? ldd выдает что нет такого файла

anonymous
()
Ответ на: комментарий от apt_install_lrzsz

Сейчас собрал на PRi4 (arm64) stlink по этой инструкции: https://github.com/stlink-org/stlink/blob/develop/doc/compiling.md

make release
sudo make install

Этот набор утилит ставится в /usr/local, поэтому при запуске может быть так:

$ st-flash
st-flash: error while loading shared libraries: libstlink.so.1: cannot open shared object file: No such file or directory

Запускать может быть потребуется так:

LD_LIBRARY_PATH=/usr/local/lib st-flash
invalid command line
command line:  ./st-flash [--debug] [--reset] блаблабла

Подключил свою плату с ST-Link v2 и STM32F407. Она опозналась:

$ LD_LIBRARY_PATH=/usr/local/lib st-info --probe
/etc/stlink/chips: No such file or directory
Found 1 stlink programmers
  version:    V2J14
  serial:    53FF72064980555751331287
  flash:      1048576 (pagesize: 16384)
  sram:      196608
  chipid:    0x0413
  descr:      F4x5/F4x7

Попробую прошить.

apt_install_lrzsz ★★★
()
Ответ на: комментарий от anonymous

вот что он хотел [code] linux-vdso.so.1 (0x0000ffffae7a2000) libstlink.so.1 => /lib/aarch64-linux-gnu/libstlink.so.1 (0x0000ffffae726000) libusb-1.0.so.0 => /lib/aarch64-linux-gnu/libusb-1.0.so.0 (0x0000ffffae6ff000) libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffae58d000) /lib/ld-linux-aarch64.so.1 (0x0000ffffae774000) libudev.so.1 => /lib/aarch64-linux-gnu/libudev.so.1 (0x0000ffffae559000) libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffae52a000) [/code]

anonymous
()
Ответ на: комментарий от anonymous
linux-vdso.so.1 (0x0000ffffae7a2000)
	libstlink.so.1 => /lib/aarch64-linux-gnu/libstlink.so.1 (0x0000ffffae726000)
	libusb-1.0.so.0 => /lib/aarch64-linux-gnu/libusb-1.0.so.0 (0x0000ffffae6ff000)
	libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffae58d000)
	/lib/ld-linux-aarch64.so.1 (0x0000ffffae774000)
	libudev.so.1 => /lib/aarch64-linux-gnu/libudev.so.1 (0x0000ffffae559000)
	libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffae52a000)
anonymous
()
Ответ на: комментарий от apt_install_lrzsz

Этот набор утилит ставится в /usr/local, поэтому при запуске может быть так

st-flash: error while loading shared libraries: libstlink.so.1: cannot open shared object file: No such file or directory 

такое у меня не выскакивает. значит все норм

anonymous
()

Сборка и инсталляция

make clean
make release
sudo make install
LD_LIBRARY_PATH=/usr/local/lib ldd $(which st-flash)

Проверка:

~/stlink$ LD_LIBRARY_PATH=/usr/local/lib ldd $(which st-flash)
        linux-vdso.so.1 (0xbebd9000)
        libstlink.so.1 => /usr/local/lib/libstlink.so.1 (0xb6ed3000)
        libusb-1.0.so.0 => /lib/arm-linux-gnueabihf/libusb-1.0.so.0 (0xb6eb2000)
        libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6db8000)
        libudev.so.1 => /lib/arm-linux-gnueabihf/libudev.so.1 (0xb6d90000)
        libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6d6b000)
        /lib/ld-linux-armhf.so.3 (0xb6f0f000)
        librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb6d55000)

особое внимание на то, что libstlink.so.1 найдена в /usr/local/lib

anonymous
()
Ответ на: комментарий от anonymous

Я не нашёл свой пример для этой платы, поэтому взял отсюда: https://github.com/libopencm3/libopencm3-examples/tree/master/examples/stm32/f4/stm32f4-discovery/fancyblink

Оно долго собиралось, блин!

Тем не менее собрал и прошил:

pi@raspberrypi:~/libopencm3-examples/examples/stm32/f4/stm32f4-discovery/fancyblink $ arm-none-eabi-objcopy -Obinary fancyblink.elf fancyblink.bin

pi@raspberrypi:~/libopencm3-examples/examples/stm32/f4/stm32f4-discovery/fancyblink $ sudo st-flash write fancyblink.bin 0x8000000
st-flash 1.7.0-105-gdb8f789
/etc/stlink/chips: No such file or directory
2021-08-15T18:55:15 INFO common.c: F4x5/F4x7: 192 KiB SRAM, 1024 KiB flash in at least 16 KiB pages.
file fancyblink.bin md5 checksum: 44adcf5eab3318872afcd5dc272f153, stlink checksum: 0x0001ed3f
2021-08-15T18:55:15 INFO common.c: Attempting to write 1728 (0x6c0) bytes to stm32 address: 134217728 (0x8000000)
EraseFlash - Sector:0x0 Size:0x4000 2021-08-15T18:55:15 INFO common.c: Flash page at addr: 0x08000000 erased
2021-08-15T18:55:15 INFO common.c: Finished erasing 1 pages of 16384 (0x4000) bytes
2021-08-15T18:55:15 INFO common.c: Starting Flash write for F2/F4/F7/L4
2021-08-15T18:55:15 INFO flash_loader.c: Successfully loaded flash loader in sram
2021-08-15T18:55:15 INFO flash_loader.c: Clear DFSR
2021-08-15T18:55:15 INFO common.c: enabling 32-bit flash writes
2021-08-15T18:55:15 INFO common.c: Starting verification of write complete
2021-08-15T18:55:16 INFO common.c: Flash written and verified! jolly good!

После переподключения плата замигала светодиодами.

Таким образом, можно сделать вывод, что stlink под arm64 собирается, запускается и шьёт эту модель МК.

У меня пока более нет идей, кок решить проблему ТСа. Надо подумать.

apt_install_lrzsz ★★★
()
Ответ на: комментарий от apt_install_lrzsz

спасибо собрал и шьется. скажите pазнести собраное чтобы можно было делать

#~ st-flash write file.bin 0x08000000
без LD_LIBRARY_PATH=/usr/local/lib st-flash

anonymous
()
Ответ на: комментарий от anonymous
2021-08-15T15:59:38 INFO common.c: F1xx Medium-density: 20 KiB SRAM, 64 KiB flash in at least 1 KiB pages.
file s.bin md5 checksum: 2796f97512e121b191db3eb96c63d89, stlink checksum: 0x00000236
2021-08-15T15:59:38 INFO common.c: Attempting to write 10 (0xa) bytes to stm32 address: 134217728 (0x8000000)
2021-08-15T15:59:38 INFO common.c: Flash page at addr: 0x08000000 erased
2021-08-15T15:59:38 INFO common.c: Finished erasing 1 pages of 1024 (0x400) bytes
2021-08-15T15:59:38 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL
2021-08-15T15:59:38 INFO flash_loader.c: Successfully loaded flash loader in sram
2021-08-15T15:59:38 INFO flash_loader.c: Clear DFSR
  1/  1 pages written
2021-08-15T15:59:38 INFO common.c: Starting verification of write complete
2021-08-15T15:59:38 INFO common.c: Flash written and verified! jolly good!
anonymous
()
Ответ на: комментарий от anonymous

как из

/usr/local/bin
все разложить по каталогам чтобы запускалась
st-flash write my.bin 0x08000000

anonymous
()
Ответ на: комментарий от anonymous

Чтобы без LD_LIBRARY_PATH, нужно добавить /usr/local/lib в пути поисков библиотек. Это можно так:

  • В /etc/ld.so.conf.d создать какой-либо файл. Например, 99-usrlocallib.conf.
  • В него прописать путь /usr/local/lib
  • Выполнить sudo ldconfig

Должно теперь стать ок. Правда, я этого всего не делал. У меня после перезапуска PRi /usr/local/lib уже оказался подцеплен. Видимо, при sudo make install стлинка были добавлены настройки.

apt_install_lrzsz ★★★
()
Ответ на: комментарий от anonymous

Ну, в общем-то да. Но с т. з. пользования системой такое копирование (да и sudo make install откровенно говоря, тоже) очень нехорошо. Захочешь удалить/обновить – не сможешь найти все нужные файлы.

Плохая практика, короче. Не стоит к ней привыкать.

Но если система временная, и тебе на неё пофиг, то можно.

apt_install_lrzsz ★★★
()
Ответ на: комментарий от apt_install_lrzsz

напишите что сделать? как скопировать? потому что создание файла и ldconfig не работают

anonymous
()

@Stierlitz_, по поводу твоей проблемы. Мы тут все выяснили, что stlink в общем случае вполне успешно собирается, устанавливается и прошивает МК на arm64 (rpi4).

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

Уточни, что за плата с МК у тебя? Blue Pill с STM32F103 или другая? Я бы blue pill себе приобрёл на всякий случай, а то про неё часто темы поднимаю. Если добуду – посмотрю, что там с записью прошивки.

apt_install_lrzsz ★★★
()

ну вот почте все решили. теперь вы точно сможете написать hello world

anonymous
()
Ответ на: комментарий от apt_install_lrzsz

ну чтобы доконца уже давайте сделаем как запускать st-flash без LD_LIBRARY_PATH=/usr/local/lib. думаю что эта тема возникнет. да и я сам вот сижу и туплю как правильно разнести все из /usr/local/bin

anonymous
()
Ответ на: комментарий от anonymous

Блин, как же хромиум на rpi лагает!

В /usr/local/lib есть такое:

pi@raspberrypi:~ $ ls -l /usr/local/lib/
итого 324
-rw-r--r-- 1 root root  168790 авг 15 18:24 libstlink.a
lrwxrwxrwx 1 root root      14 авг 15 18:25 libstlink.so -> libstlink.so.1
lrwxrwxrwx 1 root root      18 авг 15 18:25 libstlink.so.1 -> libstlink.so.1.7.0
-rw-r--r-- 1 root root  146040 авг 15 18:24 libstlink.so.1.7.0

Вот эти файлы и симлинки перенеси в /lib.

Но ещё раз оговорюсь. Это нехороший способ.

anonymous
()
Ответ на: комментарий от anonymous

это я сразу сделал. что-то непомогло. попытаюсь перезагрузиться

anonymous
()
Ответ на: комментарий от apt_install_lrzsz

что-то я не то значит сделал. зашел в

/usr/local/lib
cp -r * /lib
/cp -r * /usr/lib
на всякий случай так вот сделал. и что-то не работает. поправте что неправильно? осталось немножко только разнести

anonymous
()
Ответ на: комментарий от anonymous

Что-то мне добавить-то и нечего. Я сам не спец по настройке библиотек.

Думал, что ldconfig и копия в /lib должны сработать.

Попробуй задать вопрос в местный admin с указанием путей к библиотекам и вывода

ldd $(which st-flash)

Там конечно обосрут скорее всего, но может и дельный совет дадут.

apt_install_lrzsz ★★★
()
Последнее исправление: apt_install_lrzsz (всего исправлений: 1)
Ответ на: комментарий от apt_install_lrzsz

четно сказать не ожидал что вобще ктота чтота напишет. приятно удивлен. ну и как я прочитал

Там конечно обосрут скорее всего, но может и дельный совет дадут
заходить к ним никто не хочет поэтому взнак признательности попытаюсь задать им вопрос. хотя особо в этом не разбирась и думаю что это будет не очень грамотно. но как смогу во.щем. завтра создам тему.

Stierlitz_
() автор топика
Ответ на: комментарий от anonymous

Путаешь меня с кем-то, я не из тех, кто жалуется в спецтопик по пустякам. Я действительно хочу понять, чего ТС хочет и выяснить, что же он купил. STM32F103 – это хорошо, даже если не оригинал от ST, а китайский клон, но ТС ведь не чипы на Авито купил, а какой-то девборд, именно информацию о нём и пытаюсь узнать.

CYB3R ★★★★★
()
Ответ на: комментарий от anonymous

Собери статично! Тебе эта библиотека не нужна!

anonymous
()

Проверять не стал, но как вы шьёте мкк? Если через уарт, для чего st-flash и предназначен, но нужен бутлоадер и правильные аргументы. Если у вас есть программатор, то есть же официальный stlink консольный, вариант от texaine(могу ошибаться в названии) и openocd для всего.

nikitalol
()
Ответ на: комментарий от Stierlitz_

Нутк

Вам нужна улитка-драйвер

Все три варианта, которые я предложил, вам подойдут, а st-flash для другого

openocd легче всего интегрируется со средами разработки и им можно шить китайские платы которые не видит нормальный стлинк

Но могут быть проблемы с freertos, сам не сталкивался но кто то писал что нужно как то хитро настраивать

nikitalol
()
Последнее исправление: nikitalol (всего исправлений: 1)
13 января 2022 г.
Ответ на: комментарий от Silerus

Тут наткнулся на замечательную тему. Можете помочь? при попытке собрать openocd


+ aclocal --warnings=all
+ libtoolize --automake --copy
+ autoconf --warnings=all
+ autoheader --warnings=all
+ automake --warnings=all --gnu --add-missing --copy
Setting up submodules
fatal: not a git repository (or any of the parent directories): .git

вылетает вот это. Что я делаю не так?
git submodule update --init
делал

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.