mikrocontroller.net

Forum: Compiler & IDEs MPLAB-X und ATSAM


Autor: Rudolph R. (rudolph)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die neueste MPLAB-X Beta 5.10 "unterstützt" jetzt auch einige ATSAM 
Devices.
Also habe ich das Ding mal spasseshalber installiert um es 
auszuprobieren.

Komplett frisch installiert ohne Compiler hat das Paket mal eben 3,8 GB 
auf der Platte.
Nach der Installation des XC32 Compilers sind das 8,2 GB.

Mein AS7 hat mit AVR8 und ARM Compilern gerade mal 2,4 GB.


Edit, weniger Rant und Klarstellungen zum GCC:
"Beim Einrichten eines ATSAMC21E18 Projektes fällt als erstes mal auf, 
es muss der XC32 Compiler dafür installiert werden."

Das stimmt nicht ganz, richtiger ist, der GCC wird von der MPLAB-X 
Version noch nicht für den ATSAMC21E18 erkannt den ich testen will.
Für einige andere Devices aber schon, man wird den XC32 Compiler wohl 
doch hoffentlich nicht benutzen müssen.


Das nächste was mir auffällt ist, es wird überhaupt noch kein Debugger 
unterstützt, zumindest ist ausser dem Simulator nichts auswählbar.
Der ATMEL-ICE ist immerhin schon mal gelistet.
Der SNAP wird zwar von Windows erkannt, ist aber in MPLAB-X aus 
irgendeinem Grund nicht nutzbar, auch nicht in MPLAB IPE um damit 
irgendwelche PICs zu flashen.
Oh, jetzt wird es noch besser, ich habe mal meinen Atmel-ICE angeklemmt.
Beim ersten Mal dachte ich noch an Zufall, aber sobald der Atmel-ICE am 
USB erkann wird beendet sich MPLAB-X hier und lässt sich erst wieder 
starten wenn der wieder abgeklemmt ist.
Gibt auch keine Fehlermeldung, das Fenster geht einfach nicht auf.
MPLAB IPE das gleiche Spiel.
Starten, Fenster auf dem Schirm, Atmel-ICE anklemmen, MPLAB IPE ist weg.


Okay, also Debuggen oder Flashen geht noch nicht, aber Compilieren 
sollte ja drin sein.
Das frisch erzeugte leere Projekt enthält nur keinerlei .c Datei.


Rechtsklick auf "Source Files" -> New -> other
"C" Auswählen -> "C Main File"

Das Ergebnis ist:
#include <stdio.h>
#include <stdlib.h>

/*
 * 
 */
int main(int argc, char** argv) {

    return (EXIT_SUCCESS);
}

Im Ernst jetzt?
Das compiliert sogar, 2706 Bytes FLASH und 1108 Bytes SRAM.
Hmm? Kein Stack?
Wo ist der Startup-Code?
Das Projekt ist weiterhin leer, es gibt keine davon abhängigen Dateien, 
oder es werden zumindest keine angezeigt.

Wo sind die Optionen? File/Project Properties

XC32 Options -> xc32-ld -> Minimum stack size (bytes) ist leer, wenn ich 
da 4096 eintrage braucht das Programm nach dem Compilieren immer noch 
"nur" 1108 Bytes SRAM.

Wo stellt man ein, wo das Programm liegt damit man einen Bootloader 
benutzen kann?


Okay, mal was anderes.
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv)
{
    REG_PORT_DIRSET0 = PORT_PA27;
    
    while(1)
    {
        
    }
}

Das compiliert nur leider nicht, weil da #include "sam.h" fehlt.
Pack man das dazu geht es, wie soll das jemand raten der die Dinger 
nicht kennt?

Sample-Code gibt es auch noch keinen.

Importieren eines AS7 Projektes schlägt letztlich auch fehl, das 
compiliert dann nicht.


Das überzeugt mich bis hierhin noch nicht so richtig.
Auch das Netbeans nicht, da ist mir Visual Studio lieber.

: Bearbeitet durch User
Autor: soso... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rudolph R. schrieb:
> XC32 Options -> xc32-ld -> Minimum stack size (bytes) ist leer, wenn ich
> da 4096 eintrage braucht das Programm nach dem Compilieren immer noch
> "nur" 1108 Bytes SRAM.

Das dürfte daran liegen, dass die Anzeige den dafür benötigten SRAM vom 
Maximalen RAM abzieht.
Und daher dürfte einfach dein Device um die 4kByte "kleiner" geworden 
sein. Mit dem Heap ist das auch so, soweit ich mich erinnere.
MPLABX zeigt (meines Wisssens nach) nur den Verbrauch des verfügbaren 
Rams an, Stack und Heap scheinen nicht dazuzuzählen.

Prüf das doch mal nach.

Was den Startupcode angeht:
Soweit mir bekannt, klatscht den der XC32 einfach direkt einen 
Defaultcode rein. Wenn du den anpassen willst, musst du das in den 
Projekteinstellungen angeben, da gibs ein "use alternative Startupcode" 
oder so (wo genau, weiß ich jetzt auch nicht, sorry). Da kann man, 
soweit ich weiß, einen eigenen angeben.
Zumindest ist das bei PIC32 so. Und wenns der gleiche Compiler ist, 
wirds hier wohl auch so sein.
Bin immer damit klargekommen, weil die Defaults bei PIC32 recht sinnvoll 
sind.

Wichtig wäre noch:
Das ist Microchip.

Man verwendet deren Software erst, wenn es aus dem Beta-Support 
entwachsen ist.

Microchip-Nomenklatur:
- Alpha : Konzept exisitiert im Kopf des Marketing-Leiters
- Beta : Das was mit Müh und Not läuft (Bei normalen Herstellern:Alpha)
- Serie : eine frühe Beta
mehr wirds nicht.
https://www.microchip.com/mplabx-ide-release-notes

Schau beim Devicesupport in den Release-Notes nach.
Findest du hier:
Solange dein Device nicht "grün" ist: Finger weg - das ist nur Ärger.

MPLABX ist nicht jedermanns Sache, das ist mal sicher ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.