Forum: Mikrocontroller und Digitale Elektronik welche C-Bibliothek bei Atmel Studio 7


von Elektrolurch (Gast)


Lesenswert?

Hallo,

ich verwende Atmel Studio 7 für SAM-Controller.
Bisher habe ich für spezielle Funktionen immer unter
https://www.nongnu.org/avr-libc/user-manual/modules.html
geschaut. Die hat aber Ver. 2.1.
Welche Standard-Bibliothek wird eigentlich in einem SAM-Projekt 
verwendet - und welche Version? Im Linker sehe ich nur libm. Aber das 
ist doch nur die Mathe-Bibliothek?
Mir geht es darum, ein aktuelles Manual mit Funktionsdefinitionen zu 
haben.
Der Auslöser war, dass ich __flash dort gesucht habe und es wurde nicht 
gefunden.

von Stefan F. (Gast)


Lesenswert?

Elektrolurch schrieb:
> Mir geht es darum, ein aktuelles Manual mit Funktionsdefinitionen zu
> haben.

Das habe ich neulich auch gesucht, für die neuen ATtinies. Habe die Doku 
nicht gefunden.

> Im Linker sehe ich nur libm. Aber das ist doch nur die Mathe-Bibliothek?

Genau. Die Bibliothek die du meinst wird Standardmäßig gefunden, ohne 
extra Kommandozeilenparameter.

von Oliver S. (oliverso)


Lesenswert?

Auch wenn Microchip mit der Doku zum Studio zurückhaltend ist, findet 
sich in den weiten des Netzes dann doch der Hinweis, daß die für SAM die 
ARM GCC Toolchain benutzen. Die hat ihre eigenen hompage

https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm

auf der sich das Stichwort "newlib" lesen lässt.

Dort wirst du geholfen.

Oliver
P.S. AVR und ARM unterscheiden sich nicht nur in zwei der drei 
Buchstaben, sondern in ganz vielen Bereichen. Die sollte man schon 
kennen, denn dann stellt sich die Frage nach "_flash" für einen SAM/ARM 
nicht mehr.

von Elektrolurch (Gast)


Lesenswert?

@Oliver
Danke für den Link.
Jetzt habe ich auch das Dokument gefunden (GNU Toolchain for Atmel ARM 
Embedded Processors) im Ordner
C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\arm\arm-gnu-toolchain
Da steht: "C Library
Newlib is the Standard C Library for ARM GCC. Newlib is the C library 
intended for use on embedded systems. It is a conglomeration of sevaral 
library parts. The library is ported to support ARM processor.
In addition to standard C library, newlib-nano also added to the 
toolchain package...
This toolchain is built using the source from ARM's gcc-arm-embedded 
project 6-2017-q2-update2 release."

Gut, aber wo ist die Doku dazu?
Habe ich Tomaten auf den Augen? Gibts keine?

>> ...denn dann stellt sich die Frage nach "_flash" für einen SAM/ARM
nicht mehr.
Wieso nicht?
Außerdem wollte ich nicht nur für diesen Befehl eine offizielle 
Funktions-Liste und Referenz.
Vieleicht finden sich da ja neue Funktionen, die ich in einem Projekt 
gut gebrauchen kann.

von Peter D. (peda)


Lesenswert?

Elektrolurch schrieb:
>>> ...denn dann stellt sich die Frage nach "_flash" für einen SAM/ARM
> nicht mehr.
> Wieso nicht?

AVR ist Harward, ARM ist Neumann.
D.h. ARM hat keine extra Befehle für Flash, alles die gleiche Soße.
Dem ARM reicht also const aus, um Daten in den Flash zu linken.

von Elektrolurch (Gast)


Lesenswert?

Ok, gefunden.
Falls es andere auch interessiert (für die Nachwelt) - hier die Links:
- NewLib C: https://sourceware.org/newlib/libc.html
- Libm: https://sourceware.org/newlib/libm.html

Jetzt hab' ichs auch kapiert: _flash ist ja keine Bibliotheksfunktion, 
sondern eine Linker-Direktive.
Dann also von vorne, wo finde ich die Doku zum Linker?

von Elektrolurch (Gast)


Lesenswert?

@ Peter D.
Vielen Dank für den Hinweis.
>> ...Dem ARM reicht also const aus, um Daten in den Flash zu linken.
Das bedeutet dann ja auch, dass das Auslesen / Verwenden einer solchen 
const-"Variable" im Flash genauso wie bei einer
normalen RAM-Variable gemacht wird.
Das ist komfortabel.

von Stefan F. (Gast)


Lesenswert?

Elektrolurch schrieb:
> Das ist komfortabel.

Ja, wie beim PC.

Auch Cool: Interrupt Handler sind ganz normale Prozeduren und können 
auch als direkt aus dem Programm heraus aufgerufen werden.

von Oliver S. (oliverso)


Lesenswert?

Elektrolurch schrieb:
> _flash ist ja keine Bibliotheksfunktion,
> sondern eine Linker-Direktive.

Hm. Knapp daneben ist auch vorbei.

Elektrolurch schrieb:
> Dann also von vorne, wo finde ich die Doku zum Linker?

Die Frage ist jetzt aber nicht ernst gemeint, oder? Wo findet man nur 
die Doku zur "ARM GCC Toolchain"?

Oliver

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.