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.
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.
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.
@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.
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.
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?
@ 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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.