Работа с 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+ ...
 
Последнее редактирование:
Сверху Снизу