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)

могу только создавать темы но писать комменты неполучается

А у анонимуса наооборот. Смекаешь?

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

судя по тому что написал, писать теперь можно.

Stierlitz_
() автор топика

Возможно, не хватает динамических библиотек. Утилиту как устанавливал?

Вот что у меня:

> ldd /usr/bin/st-flash 
	linux-vdso.so.1 (0x00007ffeb71b0000)
	libstlink.so.1 => /lib/libstlink.so.1 (0x00007fa328776000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa328584000)
	libusb-1.0.so.0 => /lib/x86_64-linux-gnu/libusb-1.0.so.0 (0x00007fa328568000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fa3287b9000)
	libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007fa32853b000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa328518000)
apt_install_lrzsz ★★★
()
Ответ на: комментарий от apt_install_lrzsz

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

cmake .
make
make install
напишите как правильно собрать st-flash чтобы работало на arm64 плате. что успел то прочитал. но я в линуксе неособо разбираюсь. а еще много кто пишет что st-flash даже из репозитория не работает с китайским программатором. чтобы не гадать я написал вопрос сюда. тут разработчики и точно знать

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

Я его сам не собирал (либо собирал очень давно и уже ничего не помню).

Ставил пакетом. И ты возьми да поставь пакетом. Вот тут https://github.com/stlink-org/stlink#installation есть ссылки на разные сборки.

Как установить локальный пакет в твоём дистрибутиве, знаешь?

За китайский программатор не скажу – никогда ими не пользовался. Читай отзывы на него, где покупал.

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

ну так благодаря его темам и купил контроллер.

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

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

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

У тебя микроконтроллер на уровне cortex-A# способный запускать полноценную операционку, а не просто работать в режиме bare bones?

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

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

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

Я пытался выяснить что у тебя за микроконтроллер, что ты на него образ какой-то накатываешь. Если мы говорим о чем-нибудь вроде малинки, бананки, orangePi - т.е те платы, на которых можно развернуть полноценную ОС - это одно, если мы говорим stm32fxxx, atmega ()- на которых нельзя развернуть ОС - это другое.

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

в теме же написал что есть оранже пи с линуксом. установлен st-flash. с его помощью пытался прошить контроллер stm32f103 который купил на авито специально потому что тут много примеров для него. и при попытке вылетает ошибка. тут написали что дело в библиотеках. я попросил сказать что точно нужно сделать что установить если нужно или что собрать.

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

для stm32f103 тебе нужно:

  • openocd для прошивки дебагинга
  • нужен toolchain arm-none-eabi, gdb должен работать
  • самый простой способ - это eclipse, как среда разработки
  • в eclipse надо настроить mcu

Этого достаточно для старта.

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

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

error: st-flash:undefined simbol: init_chipid

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

я в линуксе неособо разбираюсь

Так прошей из под венды, делов-то! А что за плату купил? Во всех темах пишешь «купил микроконтроллер на авито», это вообще никакой информации не даёт. Микроконтроллером грамотнее называть только сам чип STM32, но не всю плату целиком.

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

Для прошивки и дебагинга через openocd и gdb ЕМНИП всё равно нужен рабочий софт stlink. apt_install_lrzsz (15.08.21 10:12:03)

Да вроде нет. Для прошивки одного openocd достаточно точно. Для отладки не уверен, но gdb для arm’а в репозитории есть.

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

Я пользовался openocd только для прошивки и отладки. И в инструкциях к этому всему всегда говорилось: «Поставь stlink».

Если же только для прошивки stlink не нужен, то да, вариант.

А через что openocd при этом с программатором взаимодействует? У него есть встроенная реализация алгоритмов для прошивки через stlink?

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

гуглил что нада собирать из соурсе с ветки на гитхаб.

Тебе - не стоит. Удали что собирал, потом поставь st-link через пакетный менеджер. Что вообще ты там закатил на свою апельсинку, армбиан?

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 2)
Ответ на: комментарий от Stierlitz_

И ты шей из терминала. Еще раз что ты шьёшь: elf или bin? bin - не содержит информации куда он должен быть записан и там требуется указать адрес.

  • Проверь связь с микроконтроллером и openocd: openocd -f interface/stlink.cfg -f target/stm32f1x.cfg если все успешно - то openocd встанет ожидание подключения по gdb/telnet вот так вот:
openocd -f interface/stlink.cfg -f target/stm32f1x.cfg
Open On-Chip Debugger 0.11.0+dev-00331-g53556fcde (2021-08-15-11:02)
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Info : DEPRECATED target event trace-config
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : clock speed 1000 kHz
Info : STLINK V2J17S4 (API v2) VID:PID 0483:3748
Info : Target voltage: 3.274320
Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : starting gdb server for stm32f1x.cpu on 3333
Info : Listening on port 3333 for gdb connections
  • Теперь можно попробывать прошить вот так: openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "program filename.elf verify reset exit" или вот так openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "program filename.bin exit 0x08000000"
Silerus ★★★★
()
Ответ на: комментарий от apt_install_lrzsz

Я пользовался openocd только для прошивки и отладки. И в инструкциях к этому всему всегда говорилось: «Поставь stlink».

Вот кусок моего makefile’а. Никакого лишнего софта не установлено.

prog2: $(frmname).bin
	openocd -f interface/ft232r.cfg -f target/stm32l1.cfg -c "init" -c "reset halt" -c "flash write_image erase "$(frmname).bin" 0x08000000" -c "reset run" -c "exit"
COKPOWEHEU
()

Прошивайтесь через uart, по крайней мере сдвинетесь с мертвой точки.

https://pypi.org/project/stm32loader/

Оранж же поддерживает питон?

Чем хорош питоновский скрипт - он работает везде, где есть уарт, и его не нужно компилировать.

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

Используйте stlink только для отладки, так проще.

kolpakchi
()
Ответ на: комментарий от ya-betmen
2021-08-15T10:54:45 INFO common.c: Loading device parameters....
2021-08-15T10:54:45 INFO common.c: Device connected is: F1 Medium-density device, id 0x20036410
2021-08-15T10:54:45 INFO common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes
2021-08-15T10:54:45 INFO common.c: Attempting to write 10 (0xa) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08000000 erased
2021-08-15T10:54:45 INFO common.c: Finished erasing 1 pages of 1024 (0x400) bytes
2021-08-15T10:54:45 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL core id
2021-08-15T10:54:45 ERROR flash_loader.c: unknown coreid, not sure what flash loader to use, aborting! coreid: 2ba01477, chipid: 410
2021-08-15T10:54:45 WARN flash_loader.c: Failed to write flash loader to sram!
2021-08-15T10:54:45 ERROR common.c: stlink_flash_loader_init() == -1
stlink_fwrite_flash() == -1

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

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

st-flash (комментарий) вот он написал что купил stm32f103 потому что тут разжевали тему как программировать. именно поэтому он купил такой. ну правильно же? вот если бы он написал какую-нить хрень то ты бы это сразу увидел и побежал жаловаться в спецтопик. а то что он многие темы подряд пишет что купил stm32 потому что тут классно разобранные темы и грамотные советы, это вы в упор не видите. у него orange pi и stm32f103. он все это купил на авито. видимо хотел быть похожим на вас)))) и зря кстати.

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

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

ya-betmen ★★★★★
()
Ответ на: комментарий от kolpakchi

а на stm32f103 на клоне он не распаян. вряд ли начинающий который учится на чужих темах сможет сконектить. пусть хоть через st-flash прошьет чтобы почувствовать. вы(линуксоиды) уже его второй раз кидаете. впревой теме понаписали чушь, он пошел и купил другой. и щас пишите дичь. но зато дерете глотки громко заявляя что это Development и что дядьки тут серьезные. есть дела и есть слова. ну ты понял.

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

так обычно памяти в китайских клонах с гулькин нос и ничего туда не впихнуть кроме мигалки.

flash: 65536 (pagesize: 1024)
   sram: 20480
 chipid: 0x0410

вот это тоже китайски клон. что тут не так с памятью?

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

Чего ты разнылся? ТСу указали, и как установить stlink пакетом (именно такой способ работает у меня), и как использовать openocd, вместо stlink’а, на всякий случай.

Будут новые подробности от него – будем думать дальше.

apt_install_lrzsz ★★★
()

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

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

ТСу указали, и как установить stlink пакетом

да ни будет у него работать! мне стало интересно и я решил по твоему совету установить на апельсин stlink-tools.

 
st-flash 1.5.1
2021-08-15T10:54:45 INFO common.c: Loading device parameters....
2021-08-15T10:54:45 INFO common.c: Device connected is: F1 Medium-density device, id 0x20036410
2021-08-15T10:54:45 INFO common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes
2021-08-15T10:54:45 INFO common.c: Attempting to write 10 (0xa) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08000000 erased
2021-08-15T10:54:45 INFO common.c: Finished erasing 1 pages of 1024 (0x400) bytes
2021-08-15T10:54:45 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL core id
2021-08-15T10:54:45 ERROR flash_loader.c: unknown coreid, not sure what flash loader to use, aborting! coreid: 2ba01477, chipid: 410
2021-08-15T10:54:45 WARN flash_loader.c: Failed to write flash loader to sram!
2021-08-15T10:54:45 ERROR common.c: stlink_flash_loader_init() == -1
stlink_fwrite_flash() == -1

какие еще пруфы нужны?

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

Как на дев борде

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

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

Ещё раз: ТСу указали два способа. Если не прокатит первый, можно пробовать второй.

да ни будет у него работать!

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

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

https://github.com/stlink-org/stlink/blob/develop/doc/compiling.md#building-1

make clean;
make release;

....

~/stlink/build/Release/bin$ ./st-info --probe
/etc/stlink/chips: No such file or directory
Failed to enter SWD mode
Found 1 stlink programmers
  version:    V2J34S7
  serial:     50FF6F065182575541581287
  flash:      0 (pagesize: 0)
  sram:       0
  chipid:     0x0000
  descr:      unknown device

Все нормально собирается. И китайский программатор видит.

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

Тут всё так, я ж сказал обычно. А это вероятно просто незаконная копия.

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

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

 openocd -f interface/stlink.cfg -f target/stm32f1x.cfg
Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.org/doc/doxygen/bugs.html
embedded:startup.tcl:60: Error: Can't find interface/stlink.cfg
in procedure 'script' 
at file "embedded:startup.tcl", line 60
ни то ни другое у него не отработает. потому что я взял и проверил. кто витоват? ТС? или музыканты?

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

Как на дев борде может быть не распаян основной uart?

Ох может… Я, когда разводил свою первую отладочную плату под f103 забыл вывести UART1, зато на один из его выводов повесил кнопку, забыл вывести ресет на разъем JTAG. Зато развел питание и VBAT с диодами шоттки (не воспользовался ни разу, так что выпаял обратно), вывел клеммники на оба кварца (тоже не воспользовался и снял).

Ну что поделать, первое знакомство с ARM. Как бы то ни было, МГТФ творит чудеса и платкой пользоваться можно. Хотя и редко это делаю: L151 удобнее.

COKPOWEHEU
()
Ответ на: комментарий от anonymous
~/stlink$ ./build/Release/bin/st-flash write /home/xxx/xxxx.bin 0x8000000
st-flash 1.7.0-100-gb433200
/etc/stlink/chips: No such file or directory
2021-08-15T12:33:44 INFO common.c: F401xD/E: 96 KiB SRAM, 512 KiB flash in at least 16 KiB pages.
file /home/xxxx/xxxx.bin md5 checksum: 967346149df843df9af81ce4345f2949, stlink checksum: 0x006ff229
2021-08-15T12:33:44 INFO common.c: Attempting to write 70944 (0x11520) bytes to stm32 address: 134217728 (0x8000000)
EraseFlash - Sector:0x0 Size:0x4000 2021-08-15T12:33:45 INFO common.c: Flash page at addr: 0x08000000 erased
EraseFlash - Sector:0x1 Size:0x4000 2021-08-15T12:33:45 INFO common.c: Flash page at addr: 0x08004000 erased
EraseFlash - Sector:0x2 Size:0x4000 2021-08-15T12:33:46 INFO common.c: Flash page at addr: 0x08008000 erased
EraseFlash - Sector:0x3 Size:0x4000 2021-08-15T12:33:46 INFO common.c: Flash page at addr: 0x0800c000 erased
EraseFlash - Sector:0x4 Size:0x10000 2021-08-15T12:33:47 INFO common.c: Flash page at addr: 0x08010000 erased
2021-08-15T12:33:47 INFO common.c: Finished erasing 5 pages of 65536 (0x10000) bytes
2021-08-15T12:33:47 INFO common.c: Starting Flash write for F2/F4/F7/L4
2021-08-15T12:33:47 INFO flash_loader.c: Successfully loaded flash loader in sram
2021-08-15T12:33:47 INFO flash_loader.c: Clear DFSR
2021-08-15T12:33:47 INFO common.c: enabling 32-bit flash writes
2021-08-15T12:33:48 INFO common.c: Starting verification of write complete
2021-08-15T12:33:49 INFO common.c: Flash written and verified! jolly good!

Шъеться. Камень конечно не как у топикстартера. Но и никаких отсутсвующих символов не наблюдается.

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

Кто виноват, я без понятия. Назвать точную причину проблемы и как её починить, я не могу, так как МК, как у ТС, у меня нету. Конкретно на F407 с st-link v2 оба способа работают без ошибок. Вот я и жду подробностей.

Конкретно по твоему логу я пока не соображу, в чём проблема.

ТС, ещё момент. Если ты правила udev для st-link не устанавливал в систему, то для прошивки могут потребоваться права рута.

apt_install_lrzsz ★★★
()
Ответ на: комментарий от anonymous
st-flash 1.7.0
2021-08-15T13:09:47 INFO usb.c: -- exit_dfu_mode
2021-08-15T13:09:47 INFO common.c: Loading device parameters....
2021-08-15T13:09:47 INFO common.c: Device connected is: F1 Medium-density device, id 0x20036410
2021-08-15T13:09:47 INFO common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes
2021-08-15T13:09:47 INFO common.c: Attempting to write 10 (0xa) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08000000 erased
2021-08-15T13:09:47 INFO common.c: Finished erasing 1 pages of 1024 (0x400) bytes
2021-08-15T13:09:47 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL core id
2021-08-15T13:09:47 ERROR flash_loader.c: unknown coreid, not sure what flash loader to use, aborting! coreid: 2ba01477, chipid: 410
2021-08-15T13:09:47 WARN flash_loader.c: Failed to write flash loader to sram!
2021-08-15T13:09:47 ERROR common.c: stlink_flash_loader_init() == -1
stlink_fwrite_flash() == -1

у меня время не российское. но испытал ваш способ сейчас.

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