ich bin zugegeben neu auf MPLAB umgestiegen und versuche dort einen Attiny826 mit einem MPLAB SNAP über UPDI zu debuggen.
Das Programmieren und rudimentäres Debuggen funktioniert soweit auch gut. Auch die IO Ansicht funktioniert tadellos wie in AVR Studio.
Was leider gar nicht funktioniert ist das Watch Fenster, wenn ich float Variablen sehen möchte. Ist das normal? Im allgemeinen scheint es schwer, dem Compiler das Optimieren auszutreiben, um möglichst alle Variablen zu bekommen.
Ist das normal? Lässt sich das mit einem "besseren" Debugger wie dem PicKit lösen?
Ist das normal? Lässt sich das mit einem "besseren" Debugger wie dem
PicKit lösen?
Ein PICKIT4 hat dem SNAP nur den Step-Up-Regler für die HV-Programmierung und die uSD-Karte voraus. Das PICKIT5 hat dazu noch ein BLE-Modul. Wenn Du das nicht brauchst, und das brauchst Du bei einem UPDI-AVR nicht, bringt Dir ein PICKIT nichts.
PICKIT 3 und älter können nur PICs.
PICKIT Basic ist quasi der Nachfolger des SNAPs im Gehäuse. Bringt Dir auch nichts.
Und float ist oft vermeidbar. Ich verwende oft mV oder dezi°C oder so als Recheneinheiten und mache alles mit Integers. Das ist schneller und spart die float-Bibliothek.
Und er tut so, als ob man unbedingt die PRO-Features bräuchte, was in
der Praxis nicht der Fall ist.
Also, als ich mal einen 16F84A mit C Programmieren Musste....
Die Lizenz hilt deutlich länger als 60 Tage (~4-5Monate) und ich bin überzeugt, das man sich da alle paar Jahre, ne holen kann, ohne gleich mit beiden Beinen... Egal, man(n) brauchts nicht.
Es ging bei meiner Formulierung "kastriert" auch nicht um eine totale Abwertung des XC8, sondern nur darum, drauf hinzuweisen, daß der etliche Optimierungseinstellungen schlichtweg nicht versteht.
Das wiederum ist ein Grund für viele, stattdessen den gcc zu verwenden, der beim (mittlerweile wohl nicht mehr unterstützten) Microchip Studio bereits als Alternative zu XC8 mitgeliefert wurde.
Nur: Der hat andere Kommandozeilenoptionen. Und um genau /die/ geht es, die sind der Grund, warum der Threadstarter ein teiloptimiertes Programm erhält, was sich eben nur eingeschränkt debuggen lässt, da Variablen und anderes Zeug schneller den "scope" verlassen als der Quelltext annehmen lässt.