Настройка удаленной отладки GDB-server.: различия между версиями

Материал из UniPort Wiki
Перейти к навигации Перейти к поиску
(Новая страница: « 1.»)
 
Нет описания правки
 
(не показано 19 промежуточных версий этого же участника)
Строка 1: Строка 1:


1.
На примере 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

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