• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Работа с RTL00 под eclipse как запустить.

Алексей.

Active member
На убунте make-ом вообще без правок собрал проект (правил только userset.mk), до флешера пока не дошел (j-link пока не готов) рад что пока не вылезло всяких виндовых особенностей.
Немного удивлен что не определено в userset.mk директории для временных файлов, исходники проекта как обычно в домашней папке, а том этот у меня немножко шифруется на лету. Обычно все объектники отправляю в /tmp а тут немножко не удобно (может сам не разобрался), но "дарёному коню" и "на вас на всех не угодишь" как говориться...
 

Алексей.

Active member
pvvx, ну запуск GDB сервера я просто вынес в VS на отдельную команду - она всё-равно как для заливки в RAM требуется, так и для прошивки\отладки, потому не увидел смысла каждый раз запускать\закрывать его. GDB сервер кстати остаётся работать, даже если выдернуть SWD
При выдергивании самого jlink-а из юсб, JLinkGDBServer выгружается, сделал простенький скрипт, при подключении к юсб jlink-а стартую JLinkGDBServer
#!/bin/bash

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/SEGGER/JLink

function start_jlink_gdb {
if [ "$(pidof JLinkGDBServerExe)" ]
then
printf 'JLinkGDBServerExe already started\n'
else
/opt/SEGGER/JLink/JLinkGDBServerExe -device Cortex-M3 -if SWD -ir -endian little -speed 1000 > /dev/null 2>&1 &
fi
}

tail -F /var/log/syslog | grep --line-buffered 'Product: J-Link' | while read ; do start_jlink_gdb ; done
На линухе (на убунте) как то просто, а вот на виндовсе в цмд или повершеле, как отслеживать подключения юсб устройства пока не знаю. Кто пользуется виндовсами, подскажите пожалуйста.

Нашел решение на повершеле, запрашиваю устройства по маске, если подключен J-Link, запускаю JLinkGDBServer если он ещё не запущен
Код:
$exe = 'C:\Program Files (x86)\SEGGER\JLink_V630h\JLinkGDBServer.exe'
$arg = '-device','Cortex-M3','-if','SWD','-ir','-endian','little','-speed','1000'
Do {
 $a = Get-WmiObject Win32_PnPEntity –Filter "Name='J-Link driver'"
 if($a) {
  $proc = Get-Process
  if (!$proc.name.Contains('JLinkGDBServer')) {
   Start-process $exe -ArgumentList $arg
  }
 }
 start-sleep 1
} While (1)
 
Последнее редактирование:

pvvx

Активный участник сообщества
WM_DEVICECHANGE message (Windows)

Смысл загрузки JLinkGDB по включению к USB?

JLinkGDBServer.cmd:
Код:
@echo off
start JLinkGDBServer.exe -device Cortex-M3 -if SWD -ir -endian little -speed 1000
wsl $HOME/gcc-arm-none-eabi-7-2017-q4-major/bin/arm-none-eabi-gdb -x flasher/gdb_init.jlink
rem или: bash -l -c arm-none-eabi-gdb -x flasher/gdb_init.jlink
taskkill /F /IM JLinkGDBServer.exe
JLinkGDB исполняется из Windows, а связь с ним по TCP/IP port есть и в WSL.
Аналогично можно вызвать JLinkGDBServer.exe из среды WSL-Ubuntu
 
Последнее редактирование:

Алексей.

Active member
на c++ определение подключения устройств и без WM я делал через енумерацию девайсов, тут вопросов нет, как средствами ОС (устанавливая доп.ПО на виндовс) сделать это, вот в чем вопрос.
 
Последнее редактирование:

pvvx

Активный участник сообщества
на c++ определение подключения устройств и без WM я делал через енумерацию девайсов, тут вопросов нет, как средствами ОС (устанавливая доп.ПО на виндовс) сделать это, вот в чем вопрос.
Никак.
Ещё и с доп. ПО не всё в порядке, т.к. включенная поддержка в win10 USB3.1 по новому... т.е. если кратко - есть зависимости от драйверов, которые пишут производители контроллеров USB.
Пока сложилось впечатление, что там всё сыровато, c USB3.1+ ...
 
Последнее редактирование:

BublikoFF

New member
@pvvx Подскажите пожалуйста что то у меня python ошибку выдает, я сам в питон не очень, куда рыть?

===========================================================
Link (build)
===========================================================
/usr/local/bin/python3 RTL00_SDKV35a/../tools/rtlaimage/rtlaimage.py -a -r -o build/bin/ build/obj/build.axf
Traceback (most recent call last):
File "/Users/av/eclipse-workspace/RTL00MP3/RTL00_SDKV35a/../tools/rtlaimage/rtlaimage.py", line 342, in <module>
RtlAImages Utility version 22.01.18
main()
File "/Users/av/eclipse-workspace/RTL00MP3/RTL00_SDKV35a/../tools/rtlaimage/rtlaimage.py", line 337, in main
elf2image(args)
File "/Users/av/eclipse-workspace/RTL00MP3/RTL00_SDKV35a/../tools/rtlaimage/rtlaimage.py", line 278, in elf2image
s.load(e.sections)
File "/Users/av/eclipse-workspace/RTL00MP3/RTL00_SDKV35a/../tools/rtlaimage/rtlaimage.py", line 205, in load
self.data += '\0'
TypeError: can't concat str to bytes
make[1]: *** [build/bin/ram_all.bin] Error 1
make: *** [ram_all] Error 2
"make all" terminated with exit code 2. Build might be incomplete.
 

BublikoFF

New member
@pvvx Подскажите пожалуйста что то у меня python ошибку выдает, я сам в питон не очень, куда рыть?

===========================================================
Link (build)
===========================================================
/usr/local/bin/python3 RTL00_SDKV35a/../tools/rtlaimage/rtlaimage.py -a -r -o build/bin/ build/obj/build.axf
Traceback (most recent call last):
File "/Users/av/eclipse-workspace/RTL00MP3/RTL00_SDKV35a/../tools/rtlaimage/rtlaimage.py", line 342, in <module>
RtlAImages Utility version 22.01.18
main()
File "/Users/av/eclipse-workspace/RTL00MP3/RTL00_SDKV35a/../tools/rtlaimage/rtlaimage.py", line 337, in main
elf2image(args)
File "/Users/av/eclipse-workspace/RTL00MP3/RTL00_SDKV35a/../tools/rtlaimage/rtlaimage.py", line 278, in elf2image
s.load(e.sections)
File "/Users/av/eclipse-workspace/RTL00MP3/RTL00_SDKV35a/../tools/rtlaimage/rtlaimage.py", line 205, in load
self.data += '\0'
TypeError: can't concat str to bytes
make[1]: *** [build/bin/ram_all.bin] Error 1
make: *** [ram_all] Error 2
"make all" terminated with exit code 2. Build might be incomplete.
Вроде как нашел ошибку
было: self.data += '\0'
а видимо нужно self.data += b'\x00'

и вот тут f.write('\xff')
заменить на f.write(b'\xff')
поправьте пожалуйста если не прав
 

pvvx

Активный участник сообщества
Вроде как нашел ошибку
было: self.data += '\0'
а видимо нужно self.data += b'\x00'

и вот тут f.write('\xff')
заменить на f.write(b'\xff')
поправьте пожалуйста если не прав
Тогда была версия Питона 2.7, а для 3+ синтаксис сменился...
 
Сверху Снизу