Forum: Compiler & IDEs Platformio + pyUPDI Upload Probleme


von gigauser (Gast)


Lesenswert?

Hallo zusammen,

Ich habe mir eine Umgebung über Platformio erstellt um die AVRmega0 
Serie zu programmieren. Diese verwenden UPDI als 
Programmierschnittstelle. Ich verwende pyUPDI als Uploader. Leider habe 
ich ein paar Probleme, wenn ich den "UPLOAD" Button in Platformio 
benutze:

Processing ATmega808 (platform: atmelmegaavr; board: ATmega808; 
framework: )
------------------------------------------------------------------------ 
------------------------------------------------------------------------ 
----------------------------------------------------------------Verbose 
mode can be enabled via `-v, --verbose` option
CONFIGURATION: 
https://docs.platformio.org/page/boards/atmelmegaavr/ATmega808.html
PLATFORM: Atmel megaAVR (1.5.0) > ATmega808
HARDWARE: ATMEGA808 16MHz, 1KB RAM, 8KB Flash
PACKAGES:
 - tool-avrdude-megaavr 1.60300.191015 (6.3.0)
 - toolchain-atmelavr 1.70300.191015 (7.3.0)
LDF: Library Dependency Finder ->
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 0 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Checking size .pio\build\ATmega808\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project 
Inspect"
RAM:   [          ]   0.0% (used 0 bytes from 1024 bytes)
Flash: [          ]   1.5% (used 124 bytes from 8192 bytes)
Configuring upload protocol...
AVAILABLE: jtag2updi
CURRENT: upload_protocol = jtag2updi
Looking for upload port...
Auto-detected: COM3
Forcing reset using 1200bps open/close on port COM3
Uploading .pio\build\ATmega808\firmware.hex
Traceback (most recent call last):
  File 
"C:\Users\gigauser\AppData\Local\Programs\Python\Python310\Scripts\pyupd 
i-script.py",  line 33, in <module>
    sys.exit(load_entry_point('pyupdi==0.0.0', 'console_scripts', 
'pyupdi')())
  File 
"C:\Users\gigauser\AppData\Local\Programs\Python\Python310\Scripts\pyupd 
i-script.py",  line 25, in importlib_load_entry_point
    return next(matches).load()
  File 
"C:\Users\gigauser\.platformio\python3\lib\importlib\metadata.py", line 
77, in load
    module = import_module(match.group('module'))
  File 
"C:\Users\gigauser\.platformio\python3\lib\importlib\__init__.py", line 
127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in 
_find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in 
exec_module
  File "<frozen importlib._bootstrap>", line 241, in 
_call_with_frames_removed
  File 
"C:\Users\gigauser\AppData\Local\Programs\Python\Python310\lib\site-pack 
ages\updi\__init__.py",  line 1, in <module>
    from .pyupdi import _main
  File 
"C:\Users\gigauser\AppData\Local\Programs\Python\Python310\lib\site-pack 
ages\updi\pyupdi.py",  line 11, in <module>
    from updi.nvm import UpdiNvmProgrammer
  File 
"C:\Users\gigauser\AppData\Local\Programs\Python\Python310\lib\site-pack 
ages\updi\nvm.py",  line 6, in <module>
    from updi.application import UpdiApplication
  File 
"C:\Users\gigauser\AppData\Local\Programs\Python\Python310\lib\site-pack 
ages\updi\application.py",  line 7, in <module>
    from updi.link import UpdiDatalink
  File 
"C:\Users\gigauser\AppData\Local\Programs\Python\Python310\lib\site-pack 
ages\updi\link.py",  line 7, in <module>
    from updi.physical import UpdiPhysical
  File 
"C:\Users\gigauser\AppData\Local\Programs\Python\Python310\lib\site-pack 
ages\updi\physical.py",  line 6, in <module>
    import serial
  File 
"C:\Users\gigauser\.platformio\penv\lib\site-packages\serial\__init__.py 
",  line 29, in <module>
    from serial.serialwin32 import Serial
  File 
"C:\Users\gigauser\.platformio\penv\lib\site-packages\serial\serialwin32 
.py",  line 15, in <module>
    import ctypes
  File "C:\Users\gigauser\.platformio\python3\lib\ctypes\__init__.py", 
line 8, in <module>
    from _ctypes import Union, Structure, Array
ImportError: DLL load failed while importing _ctypes: The specified 
module could not be found.
*** [upload] Error 1
======================================================================== 
==================  [FAILED] Took 2.24 seconds 
======================================================================== 
==================The  terminal process 
"C:\Users\gigauser\.platformio\penv\Scripts\platformio.exe 'run', 
'--target', 'upload', '--environment', 'ATmega808'" terminated with exit 
code: 1.

Rufe ich pyUPDI im Terminal auf, funktioniert alles wie gewollt:

pyupdi -d mega808 -c COM3 -b 115200 -f .pio/build/ATmega808/firmware.hex
Device info: {'family': 'megaAVR', 'nvm': 'P:0', 'ocd': 'D:1', 'osc': 
'3', 'device_id': '1E9326', 'device_rev': '0.0'}
Programming successful

Meine platformio.ini sieht wie folgt aus:

[env:ATmega808]
platform = atmelmegaavr
board = ATmega808
framework =
upload_speed = 115200
upload_flags =
    -d
    mega808
    -c
    $UPLOAD_PORT
    -b
    $UPLOAD_SPEED
upload_command = pyupdi $UPLOAD_FLAGS -f $SOURCE

Ich bin mir sicher das ist nur ein kleines Problem, ich habe aber leider 
keine Ahnung von Python oder tiefgehender Konfiguration in Platformio.
Bin für jede Hilfe dankbar!

von Hilfdirselbstsohilftdirgott (Gast)


Lesenswert?

gigauser schrieb:
> Bin für jede Hilfe dankbar!

Seltsam. Es soll Leute geben die sich damit auskennen.

https://platformio.org/support

Aber vielleicht wollen sie Geld von dir haben ....

von Thomas F. (tf1973)


Lesenswert?

Dort habe ich auch Hilfe bekommen, Danke! Nur habe ich darauf verzichtet 
überall sonst zu posten das mein Problem gelöst wurde.

Seltsam....

von wendelsberg (Gast)


Lesenswert?

Thomas F. schrieb:
> Nur habe ich darauf verzichtet
> überall sonst zu posten das mein Problem gelöst wurde.
>
> Seltsam

Wirklich seltsam, wie waere es mit einem Link auf die Loesung?

wendelsberg

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.