MPLAB X Debugging mit Snap Debugger vs PicKit

OP #7924851
Lesenswert?

Hallo,

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?

Vielen Dank euch und Grüße Florian

#7924868
Lesenswert?

Florian M. schrieb:

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.

fchk

: Bearbeitet durch User
#7925247
Lesenswert?

Florian M. schrieb:

Im allgemeinen scheint es schwer, dem Compiler das Optimieren auszutreiben, um möglichst alle Variablen zu bekommen.

Du solltest Dir die Compiler- und Linkeroptionen genauer ansehen. Welchen Compiler verwendest Du, den (funktional kastrierten) XC8 oder gcc?

Mplab X kann als IDE beide verwenden.

Ist das normal?

s.o.

Lässt sich das mit einem "besseren" Debugger wie dem PicKit lösen?

Nö, die Debughardware hat damit nichts zu tun. Und wie Frank schon schrieb, PicKit und Mplab Snap sind fast identisch.

#7925281
Lesenswert?

1
MPLAB XC Compiler Optimizations
2

3
The optimizations found on MPLAB XC C Compilers provide code-size 
4
reductions and speed enhancements that benefit your design projects. 
5
PRO license is available for designs that require maximum code 
6
reductions and best performance. The MPLAB XC C Compiler contains a free, 
7
60-day trial of a PRO license for evaluation when activated. 
8

9
Are you looking for code optimizations? Our free MPLAB XC C Compiler comes 
10
with the majority of the optimizations you need to reduce your code size 
11
and increase its efficiency. If you're unsure which optimizations are 
12
best for your design, our free MPLAB XC Compiler Advisor can help you 
13
find the best optimizations for your project. 
14

15
Specifically, the free compiler contains these optimizations:
16

17
  *  O0 - Ensures that your code is in its pristine state
18
  *  O1 - Invokes all optimizations that won't affect debugging
19
  *  O2 - Invokes a balanced set of speed and size optimizations
20

21
When you purchase one of our PRO licenses, you also get the following optimizations:
22

23
  *  Os - Gives maximum code size reductions
24
  *  O3 - Gives the best speed optimizations
25
  *  mpa (Procedural Abstraction) - Reduces code size even further
26

27
When combined with our free and award-winning MPLAB X Integrated Development 
28
Environment (IDE), the fully graphical frontend provides:
29

30
  *  Editing errors and breakpoints that match corresponding lines in the source code
31
  *  Single stepping through C and C++ (C++ only available in MPLAB XC32++ compilers) 
32
     source code to inspect variables and structures at critical points
33
  *  Data structures with defined data types, including floating point, display in watch windows

(https://www.microchip.com/en-us/tools-resources/develop/mplab-xc-compilers)

#7925334
Lesenswert?

Ste N. schrieb:

Harald K. schrieb:

Du solltest Dir die Compiler- und Linkeroptionen genauer ansehen. Welchen Compiler verwendest Du, den (funktional kastrierten) XC8 oder gcc?

Mplab X kann als IDE beide verwenden.

Wo gäbe es denn den passenden gcc für PIC18, PIC24, dsPIC33 und PIC32? Also das Adäquat zum xc8, xc16, xc32 und am besten natürlich noch den xcDSC.

Für die 8-Bit PICs gibts keinen gcc-Port, sondern nur das ehemalige HiTech-Zeugs, was jetzt xc8 ist.

Und für die anderen lies das hier: https://github.com/cv007/XC3216

fchk

#7925435
Lesenswert?

Frank K. schrieb:

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.

#7925739
Lesenswert?

Ok, dann ist das ja geklärt.

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren