Forum: Mikrocontroller und Digitale Elektronik STM32F4xx + Keil µVision Linker Error L6411E


von Un Known (Gast)


Angehängte Dateien:

Lesenswert?

Moin!

Ich versuche mich gerade an nem ARM Cortex M4 mittels Keil µVision IDE 
zu programmieren, jedoch bekomme ich egal ob ich ein bestehendes 
Template, wie aus diesem Forum, lade oder mein selbst programmiertes 
Projekt kompilieren möchte folgenden Fehler:

LED.axf: Warning: L6310W: Unable to find ARM libraries.
LED.axf: Error: L6411E: No compatible library exists with a definition 
of startup symbol __main.

Beide Files sind in der Source Group und im gleichen Ordner vorhanden 
und im Reset_Handler ist __main zu finden.

Linker Cntrl String:

--cpu Cortex-M4 *.o --strict --scatter "LED.sct"
--summary_stderr --info summarysizes --map --xref --callgraph --symbols
--info sizes --info totals --info unused --info veneers
 --list ".\LED.map"
-o "LED.axf"

Ich hoffe es kann mir jemand einen Tipp geben?

C-Programm:
1
#include <stm32f4xx.h>
2
3
int main(void) 
4
{
5
  SystemInit();
6
   
7
  while(1);
8
9
}
Startup File von Keil:

Siehe Anhang

MfG

von PROgrammer23 (Gast)


Lesenswert?

Habe das selbe Probelm, irgendwelche Vorschläge??!

von Davis (Gast)


Lesenswert?

PROgrammer23 schrieb:

> Habe das selbe Probelm, irgendwelche Vorschläge??!

GCC installieren.

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Die SystemInit (CMSIS CMx Init) wird doch schon vom startupcode 
angesprungen:
1
                 LDR     R0, =SystemInit
2
                 BLX     R0

von Random .. (thorstendb) Benutzerseite


Angehängte Dateien:

Lesenswert?

Habe mal ein Projekt erstellt.

New Project, STM32F4, add startup code? yes.
File new, Code vom TO reinkopiert (den call nach SystemInit() gelöscht), 
save as: main.c
Copy "C:\Keil\ARM\Startup\ST\STM32F4xx\system_stm32f4xx.c" in meinen 
projektordner
Doppelclick auf die Group im project tree (zweiter eintrag), Add files:
main.c
system_stm32f4xx.c

compile
Program Size: Code=856 RO-data=424 RW-data=20 ZI-data=1636

fertig :-)

von Hans Schneebauer (Gast)


Lesenswert?

Zu dem Startup File 'startup_stm32f4xx.s' gehört auch ein passendes 
'system_stm32f4xx.c'. Ich sehe nicht, dass das compiliert wird.
Die Funktion SystemInit() wird normalerweise bereits durch das assembler 
startup File aufgerufen. Es braucht nicht am Anfang von 'main()' 
aufgerufen werden. Wo ist diese Funktion?

Funktioniert denn das Builden eines der standard Beispiele? z.B.
C:\Keil\ARM\Boards\Keil\MCBSTM32F400\Blinky\Blinky.uvproj

von PROgrammer23 (Gast)


Lesenswert?

Problem gelöst:

Bei mir war das Folder für den Compiler geändert. Ich musste dazu unter: 
Project -> Manage -> Components, Environment and Books -- im Reiter 
Folders/Extensions das RealView Folder auf: .\ARMCC\bin\  zurücksetzen.
Ggf. müsst ihr einfach euren richtigen Compiler-bin Ordner angeben!

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.