Здравствуйте!
Для отладки через COM порт можно использовать программу
pdebug. Необходимо запустить pdebug со стороны целевой системы
# pdebug /dev/ser1,115200 &
а в Windows QNX IDE в перспективе Debug при создании новой конфигурации для отладки выбрать C/C++ QNX Pdebug (Serial).
Второй вариант сложнее:
Можно организовать сеть через последовательном порт с помощью драйвера
devn-fd.so и для отладки использовать qconn, работающий через TCP/IP. Но для этого потребуется дополнительная машина-шлюз с QNX 6.
В качестве второй машины c QNX можно использовать
- отдельный компьютер с COM портом, соединённый с Windows системой по сети
- виртуальную машину c QNX
Вторая машина с QNX будет выступать в роли шлюза для доступа к целевой системе через последовательный порт
(
или может быть сама использована в качестве машины для разработки если будет использоваться версия QNX 6.3.2 в состав которой еще входила IDE.)В случае использования виртуальной машины, между host системой (Windows) и гостевым QNX необходимо установить связь по TCP/IP. Так-же необходимо настроить доступ к COM порту из виртуальной машины.
Для организации сети со стороны второй машины можно использовать, например следующий скрипт:
(в моём случае это виртуальная машина VMware с QNX 6.4.1)#!/bin/sh
set -x
slay -f io-pkt io-pkt-v4 io-pkt-v4-hc
stty +raw -ihflow -ohflow baud=115200 < /dev/ser1
io-pkt-v4 -d pcnet -d fd fd=/dev/ser1,mac=00AA11223344,ahdlc -p tcpip forward -p qnet
#mount -T io-pkt -o fd=/dev/ser1,mac=00AA11223344,ahdlc devn-fd.so
netmanager
ifconfig en1 192.168.3.1
inetd
Особо хочу отметить, что нужно в опциях tcpip задать передачу (forwarding) пакетов между интерфейсами.Для запуска драйвера со стороны целевой системы можно использовать, например такой простой скрипт:
#!/bin/sh
set -x
stty +raw baud=115200 < /dev/ser1
io-pkt-v4-hc -d fd fd=/dev/ser1,mac=0023456789AB,ahdlc -p qnet
ifconfig en0 192.168.3.2
Со стороны первой машины (с Windows) необходимо настроить маршрутизацию пакетов к целевой системе через QNX-шлюз.
Например, в моем случае целевая система находится в подсети 192.168.3. Для Linux команда добавления маршрута выглядит следующим образом:
route add -net 192.168.3.0/24 gw 192.168.1.56
Для Windows
route add 192.168.3.0 mask 255.255.255.0 192.168.1.56
или только для нужного узла
route add 192.168.3.2 192.168.1.56