Настройка удаленной отладки GDB-server.: различия между версиями
Перейти к навигации
Перейти к поиску
A.sushkov (обсуждение | вклад) Нет описания правки |
A.sushkov (обсуждение | вклад) Нет описания правки |
||
| (не показано 18 промежуточных версий этого же участника) | |||
| Строка 2: | Строка 2: | ||
На примере OrangePi Lite, все необходимое в папке: '''\\ds\Common\Distrib\GDB''' | На примере OrangePi Lite, все необходимое в папке: '''\\ds\Common\Distrib\GDB''' | ||
# Готовим | # Готовим загрузочную microSD (минимум 4Gb): | ||
## Форматируем в '''FAT32''' утилитой '''HPUSBFW'''. | |||
## С помощью '''USBImager''' записываем на нее файл '''Armbian_community_24.8.0-trunk.6_Orangepilite_jammy_current_6.6.31_xfce_desktop.img.xz''' (утилита сам умеет на лету распаковывать архив). | |||
## Грузимся в Linux, настраиваем пароли, WiFi, прочее. | |||
## Ставим пакет '''JLink_Linux_V796i_arm.deb''' | |||
#Прошивка из ST-Link в JLink: | |||
##В Windows утилитой STLinkReflash можно перепрошить st-link в jlink, у меня сработала версия 161007 именно STLinkReflash.exe (хотя пишут что нужна STLinkReflashFixed.exe, тоже есть в архиве). | |||
##Проверяем в диспетчере устройств, что программатор определяется как jlink | |||
##Теперь его можно втыкать в OrangePi. | |||
#Запуск GDB сервера на OrangePi: | |||
##Переходим в папку /opt/SEGGER/JLink_V796i | |||
##Запускаем ./JLinkGDBServer -select usb=773154043 -if SWD -device stm32f446vc | |||
###Где -select usb=<серийник jlink> - необязательно указывать (если только их несколько) | |||
###-if SWD - интерфейс подключения Jlink к отлаживаемой плате | |||
###-device stm32f446vc - микроконтроллер на отлаживаемой плате | |||
#Отладка из CubeIDE: | |||
##В Debug Configuration -> Debugger выбираем "SEGGER J-LINK", GDB Connection Settings -> Connect to remote GDB server, Host name or IP address: <IP адрес OrangePI>, Port number: 2331 (по умолчанию). | |||
##Можно нажать кнопку Show Command Line Options и подсмотреть ключи для пункта 3.2 | |||
##Жмем Debug, наслаждаемся удаленной отладкой. | |||
#Что можно добавить: | |||
##OpenVPN: | |||
###Конфигфайл помещаем в /etc/openvpn, называем client.conf | |||
###Вводим команды: | |||
####openvpn --config /etc/openvpn/client.conf --daemon | |||
####systemctl enable openvpn@client | |||
##Автозапуск JLinkGDBServer: | |||
###Помещаем файл '''script''' в /etc/default/, '''GDB.service''' в /etc/systemd/system/, выполняем команды: | |||
####chmod 664 /etc/systemd/system/GDB.service | |||
####chmod 777 /etc/default/script | |||
####systemctl daemon-reload | |||
####systemctl enable GDB.service | |||
####systemctl start GDB.service | |||
###Ключи запуска ./JLinkGDBServer лежат в файле '''script''' | |||
###Перезапуск в случае чего: systemctl restart GDB.service | |||
##Samba для удобного обмена файлами между OrangePi и Windows машинами: | |||
###В конец файла /etc/samba/smb.conf добавим раздел из файла '''smb.txt''' | |||
###Вводим команды: | |||
####systemctl enable smbd | |||
####mkdir /var/share_anon | |||
####chmod 777 /var/share_anon | |||
####systemctl start smbd | |||
##Настройки сетевых интерфейсов: | |||
###Утилита ntmui | |||
###Вручную в файле /etc/network/interfaces | |||
###Перезапуск после настройки service networking restart | |||
##Включение Usb-OTG-to-Host https://github.com/carl1961/Orange-PI-Lite-Usb-OTG-to-Host?tab=readme-ov-file | |||
###Запускаем armbian-config, выбираем параметры USB как в файле '''usb.png''' | |||
###Вводим команды: | |||
####armbian-add-overlay usbotg2host.dts | |||
####armbian-add-overlay sun8i-h3-orangepi-lite.dts | |||
####reboot | |||
##Работа с GPIO: | |||
###Установка WiringOP: | |||
####''git clone <nowiki>https://github.com/zhaolei/WiringOP.git</nowiki> -b h3'' | |||
####''cd WiringOP'' | |||
####''chmod +x ./build'' | |||
####''sudo ./build'' | |||
###Работа с портами: | |||
####Чтение всех портов и состояний '''''gpio readall''''' | |||
####Установка порта в OUT '''gpio mode <№ wPi> out''' | |||
####Запись в порт '''gpio write <№ wPi> 0, gpio write <№ wPi> 1''' | |||
###Включение выключение клемм питания на '''EM-DIAG-2.0''': | |||
####gpio mode 8 out gpio mode 9 out gpio mode 7 out gpio mode 0 out | |||
####Включение\выключение '''X4:''' gpio write 0 1\0 | |||
####Включение\выключение '''X5:''' gpio write 7 1\0 | |||
####Включение\выключение '''X6:''' gpio write 9 1\0 | |||
####Включение\выключение '''X7:''' gpio write 8 1\0 | |||
Текущая версия от 09:44, 5 сентября 2024
На примере OrangePi Lite, все необходимое в папке: \\ds\Common\Distrib\GDB
- Готовим загрузочную microSD (минимум 4Gb):
- Форматируем в FAT32 утилитой HPUSBFW.
- С помощью USBImager записываем на нее файл Armbian_community_24.8.0-trunk.6_Orangepilite_jammy_current_6.6.31_xfce_desktop.img.xz (утилита сам умеет на лету распаковывать архив).
- Грузимся в Linux, настраиваем пароли, WiFi, прочее.
- Ставим пакет JLink_Linux_V796i_arm.deb
- Прошивка из ST-Link в JLink:
- В Windows утилитой STLinkReflash можно перепрошить st-link в jlink, у меня сработала версия 161007 именно STLinkReflash.exe (хотя пишут что нужна STLinkReflashFixed.exe, тоже есть в архиве).
- Проверяем в диспетчере устройств, что программатор определяется как jlink
- Теперь его можно втыкать в OrangePi.
- Запуск GDB сервера на OrangePi:
- Переходим в папку /opt/SEGGER/JLink_V796i
- Запускаем ./JLinkGDBServer -select usb=773154043 -if SWD -device stm32f446vc
- Где -select usb=<серийник jlink> - необязательно указывать (если только их несколько)
- -if SWD - интерфейс подключения Jlink к отлаживаемой плате
- -device stm32f446vc - микроконтроллер на отлаживаемой плате
- Отладка из CubeIDE:
- В Debug Configuration -> Debugger выбираем "SEGGER J-LINK", GDB Connection Settings -> Connect to remote GDB server, Host name or IP address: <IP адрес OrangePI>, Port number: 2331 (по умолчанию).
- Можно нажать кнопку Show Command Line Options и подсмотреть ключи для пункта 3.2
- Жмем Debug, наслаждаемся удаленной отладкой.
- Что можно добавить:
- OpenVPN:
- Конфигфайл помещаем в /etc/openvpn, называем client.conf
- Вводим команды:
- openvpn --config /etc/openvpn/client.conf --daemon
- systemctl enable openvpn@client
- Автозапуск JLinkGDBServer:
- Помещаем файл script в /etc/default/, GDB.service в /etc/systemd/system/, выполняем команды:
- chmod 664 /etc/systemd/system/GDB.service
- chmod 777 /etc/default/script
- systemctl daemon-reload
- systemctl enable GDB.service
- systemctl start GDB.service
- Ключи запуска ./JLinkGDBServer лежат в файле script
- Перезапуск в случае чего: systemctl restart GDB.service
- Помещаем файл script в /etc/default/, GDB.service в /etc/systemd/system/, выполняем команды:
- Samba для удобного обмена файлами между OrangePi и Windows машинами:
- В конец файла /etc/samba/smb.conf добавим раздел из файла smb.txt
- Вводим команды:
- systemctl enable smbd
- mkdir /var/share_anon
- chmod 777 /var/share_anon
- systemctl start smbd
- Настройки сетевых интерфейсов:
- Утилита ntmui
- Вручную в файле /etc/network/interfaces
- Перезапуск после настройки service networking restart
- Включение Usb-OTG-to-Host https://github.com/carl1961/Orange-PI-Lite-Usb-OTG-to-Host?tab=readme-ov-file
- Запускаем armbian-config, выбираем параметры USB как в файле usb.png
- Вводим команды:
- armbian-add-overlay usbotg2host.dts
- armbian-add-overlay sun8i-h3-orangepi-lite.dts
- reboot
- Работа с GPIO:
- Установка WiringOP:
- git clone https://github.com/zhaolei/WiringOP.git -b h3
- cd WiringOP
- chmod +x ./build
- sudo ./build
- Работа с портами:
- Чтение всех портов и состояний gpio readall
- Установка порта в OUT gpio mode <№ wPi> out
- Запись в порт gpio write <№ wPi> 0, gpio write <№ wPi> 1
- Включение выключение клемм питания на EM-DIAG-2.0:
- gpio mode 8 out gpio mode 9 out gpio mode 7 out gpio mode 0 out
- Включение\выключение X4: gpio write 0 1\0
- Включение\выключение X5: gpio write 7 1\0
- Включение\выключение X6: gpio write 9 1\0
- Включение\выключение X7: gpio write 8 1\0
- Установка WiringOP:
- OpenVPN: