Forum: Compiler & IDEs Sipeed Longan Nano Eclipse (Nuclei Studio IDE)


von Mustermann M. (Gast)


Lesenswert?

Hallo Zusammen,
ich bin ein Anfänger was Programmierung und Mikrocontroller angeht, aber 
sehr interessiert und lernwillig. Deswegen habe ich das Sipeed Longan 
Nano bekommen und versuche ein Blink Programm zum laufen zu bekommen.

Mein Ziel ist es das Board unter Eclipse zum laufen zu bekommen. Durch 
meine Recherche bin ich auf Nuclei gestoßen. Die haben die Nuclei Studio 
IDE auf Basis von Eclipse inkl. der Unterstützung des Longan Nano 
erstellt. Leider bekomme ich das Programm nicht auf das Longan Nano.

Folgender Fehler wird mir angezeigt:

Verbindung Fehler OPEN OCD:

Nuclei OpenOCD, 64-bit Open On-Chip Debugger 0.10.0+dev-00036-gbfc178ffb 
(2021-02-01-06:41)
Licensed under GNU GPL v2
For bug reports, read
  http://openocd.org/doc/doxygen/bugs.html
Info : no device found, trying D2xx driver
Info : D2xx device count: 0
Warn : D2xx driver found nothing, falling back to libusb...
Error: unrecognized USB device descriptor
Error: unable to open ftdi device with vid 0403, pid 6010, description 
'*', serial '*' at bus location '*'

Was muss ich ändern um das Programm mit USB auf das Board zu bekommen?

Die GD32 Driver habe ich und mit Zadig auch getauscht wie bei 
PlatformIO.

Danke
Viele Grüße

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Fuer den Longan  brauchst Du einen externe Debugger. Scheinbar hast Du 
keine n angeschlossen...

von Mustermann M. (Gast)


Lesenswert?

Hallo Uwe,
danke für die Info. Bei PlatformIO kann man den Longan Nano über das 
normale Type-C Kabel debuggen. Da hatte ich dieses LCD Demo 
draufgespielt. PlatformIO beinhaltet die Nuclei SDK und die Nuclei 
Studio IDE ebenfalls. Daher dachte ich das es gehen sollte über Type-C 
zu debuggen. Bei dem Eval Board von Giga Device mit ähnlichem 
Mikrocontroller der GD32 Serie funktioniert das auch über USB wie in 
einem YouTube Video "GigaDevice RISC-V / GD32VF103 Nuclei Studio - 
getting started" zu sehen. Hast du vielleicht Vorschläge woran es liegen 
könnte?

Ich habe die ID des USB Treibers überprüft und festgestellt, dass der in 
der cfg anders ist. Diese habe ich zum testen angepasst und folgende 
Fehlermeldung erhalten:

Nuclei OpenOCD, 64-bit Open On-Chip Debugger 0.10.0+dev-00036-gbfc178ffb 
(2021-02-01-06:41)
Licensed under GNU GPL v2
For bug reports, read
  http://openocd.org/doc/doxygen/bugs.html
Info : Using libusb driver
Error: failed to reset FTDI device: LIBUSB_ERROR_PIPE
Error: unable to open ftdi device with vid 28e9, pid 0189, description 
'*', serial '*' at bus location '*'


Außerdem habe ich diese GD32 Treiber mit einem Treibertool komplett ein 
mal gelöscht, da bei dem Geräte Manager Reste bleiben und es so 
ausprobiert. Selbe Meldung wie erster Beitrag.

Theoretisch sollte es über die Nuclei Studio IDE einfach funktionieren. 
Kann es eventuell an irgendwelchen Build Settings liegen?

Nuclei benutzt:
- RISC-V GNU Toolchain
- Nuclei OpenOCD
- Windows Build Tools

Diese sind bereits in der neuesten Version implementiert. Kann man aber 
ändern, da Eclipse die Basis ist.

Ich würde gerne etwas verlinken auf die Nuclei Webseite bzw. auf das 
Handbuch, weil ich nicht verstehe was mit diesen Parametern bzw. 
Befehlen gemeint ist und ob ich diese überhaupt brauche und wo ich diese 
einzusetzen habe. Wie mache ich das?

Ich habe das Dokument "Windows Nuclei Studio User Guide" auf Chinesisch 
mit Google übersetzt und da steht auch nicht viel drin zum Longan Nano.

Kann man da irgendwas wie bei der Platform.ini einstellen, um über DFU 
USB zu debuggen oder villeicht anders wo in Eclipse?

openocd_gd32vf103.cfg:

adapter_khz     10000
reset_config    srst_only
adapter_nsrst_assert_width 100

interface ftdi
ftdi_vid_pid 0x28E9 0x0189

## If ftdi_device_desc not specified, the device description is ignored 
during device selection.
## So if you want to specify a dedicated FTDI device, you can select 
following device description:
## "Dual RS232-HS" is for RVSTAR V1 on-board debugger
## "USB <-> JTAG-DEBUGGER" is for RVSTAR V2 on-board debugger
## Uncomment one which match your device description
# ftdi_device_desc "Dual RS232-HS"
# ftdi_device_desc "USB <-> JTAG-DEBUGGER"

ftdi_layout_init 0x0008 0x001b
ftdi_layout_signal nSRST -oe 0x0020 -data 0x0020
# These signals are used for cJTAG escape sequence on initialization 
only
ftdi_layout_signal TCK -data 0x0001
ftdi_layout_signal TDI -data 0x0002
ftdi_layout_signal TDO -input 0x0004
ftdi_layout_signal TMS -data 0x0008
ftdi_layout_signal JTAG_SEL -data 0x0100 -oe 0x0100
transport select jtag

set _CHIPNAME riscv
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x1e200a6d

# Work-area is a space in RAM used for flash programming
if { [info exists WORKAREASIZE] } {
   set _WORKAREASIZE $WORKAREASIZE
} else {
   set _WORKAREASIZE 0x5000
}

set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME riscv -chain-position $_TARGETNAME
$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size 
$_WORKAREASIZE -work-area-backup 0

set _FLASHNAME $_CHIPNAME.flash

flash bank $_FLASHNAME gd32vf103 0x08000000 0 0 0 $_TARGETNAME

# Expose Nuclei self-defined CSRS range
# See 
https://github.com/riscv/riscv-gnu-toolchain/issues/319#issuecomment-358397306
# Then user can view the csr register value in gdb using: info reg 
csr775 for CSR MTVT(0x307)
riscv expose_csrs 770-800,835-850,1984-2032,2064-2070

riscv set_reset_timeout_sec 1

init

halt


Vielen Dank und viele Grüße

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Ueber den USB Stecker kannst Du das Device im DFU Modus programmieren. 
Zum Debuggen oder Programmieren ueber JTag sind auf der 
gegenueberliegenden Seite die JTAG Pins herausgefuehrt. Zum Debuggen 
muss da ein externer Debugger richtig angeschlossen werden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.