Hallo, ich experimentiere seit kurzer zeit mit einem STM32 aka. Cortex-M3. Habe auch schon erfolgreich code compiliert und geflasht... Seit zwei tagen versuche ich allerdings das TIM/PWM input beispiel zu compilieren, das will aber nicht funktionieren... ich kann die assembler datei cortexm3_macro.s nicht compilieren. erstmal musste ich alle ';' durch '@' ersetzen, da meine compiler (arm-elf-as und arm-none-eabi-as) das ; nicht als kommentar zeichen ansehen. das hat schonmal die haelfte der errors behoben, kann aber immer noch nicht compilieren :( hier ist die ausgabe wenn ich nur diese datei compiliere: C:\embedded\test>make cortex_macro .assembling_cortex_macro arm-elf-as -ahls -mapcs-32 -o cortex_macro.o cortexm3_macro.s > cortexm3_macro.l st cortexm3_macro.s: Assembler messages: cortexm3_macro.s:38: Error: bad instruction `__wfi' cortexm3_macro.s:49: Error: bad instruction `__wfe' cortexm3_macro.s:60: Error: bad instruction `__sev' cortexm3_macro.s:71: Error: bad instruction `__isb' cortexm3_macro.s:82: Error: bad instruction `__dsb' cortexm3_macro.s:93: Error: bad instruction `__dmb' cortexm3_macro.s:104: Error: bad instruction `__svc' cortexm3_macro.s:115: Error: bad instruction `__mrs_control' cortexm3_macro.s:117: Error: syntax error -- `mrs r0,CONTROL' cortexm3_macro.s:126: Error: bad instruction `__msr_control' cortexm3_macro.s:128: Error: syntax error -- `msr CONTROL,r0' cortexm3_macro.s:138: Error: bad instruction `__mrs_psp' cortexm3_macro.s:140: Error: syntax error -- `mrs r0,PSP' cortexm3_macro.s:149: Error: bad instruction `__msr_psp ' cortexm3_macro.s:151: Error: syntax error -- `msr PSP,r0' cortexm3_macro.s:160: Error: bad instruction `__mrs_msp' cortexm3_macro.s:162: Error: syntax error -- `mrs r0,MSP' cortexm3_macro.s:171: Error: bad instruction `__msr_msp ' cortexm3_macro.s:173: Error: syntax error -- `msr MSP,r0' cortexm3_macro.s:182: Error: bad instruction `__resetprimask' cortexm3_macro.s:193: Error: bad instruction `__setprimask' cortexm3_macro.s:204: Error: bad instruction `__read_primask ' cortexm3_macro.s:206: Error: syntax error -- `mrs r0,PRIMASK' cortexm3_macro.s:215: Error: bad instruction `__resetfaultmask' cortexm3_macro.s:226: Error: bad instruction `__setfaultmask' cortexm3_macro.s:237: Error: bad instruction `__read_faultmask ' cortexm3_macro.s:239: Error: syntax error -- `mrs r0,FAULTMASK' cortexm3_macro.s:248: Error: bad instruction `__basepriconfig' cortexm3_macro.s:250: Error: syntax error -- `msr BASEPRI,r0' cortexm3_macro.s:259: Error: bad instruction `__getbasepri' cortexm3_macro.s:261: Error: syntax error -- `mrs r0,BASEPRI_MAX' cortexm3_macro.s:270: Error: bad instruction `__rev_halfword ' cortexm3_macro.s:281: Error: bad instruction `__rev_word ' cortexm3_macro.s:286: Error: bad instruction `end' make: *** [cortex_macro] Error 1 was mache ich falsch? muss ich evtl einen anderen compiler verwenden? gruesse, Daniel
Wie sieht denn dein Assemblerfile aus. Da geht massiv was daneben, da stimmt die Syntax gar nicht. Marc
hi, Ja, das denke ich auch, das assembler file sollte eigentlich syntaktisch korrekt sein, kann man ja erwarten wenn es vom hersteller bereit gestellt wird und teil der firmware lib ist. leider (oder wohl besser zum glueck ;) ) habe ich vorher noch nie mit assembler zu tun gehabt. packe es mal in den anhang, vielleicht findet ja jemand was... mir wurede es auch schon genuegen wenn es jemand compilieren kann, besser waer aber wenn ich verstehen wuerde woran es scheitert. bin zwar software entwickler, aber nur java, php und co, auf dieser ebene bin ich noch blutiger anfaenger. gibt es vielleicht unterschiedliche compiler die verschiedene syntax erwarten, da ja in der original datei ; fuer single line kommentare verwendet werden, ich aber schon herausgefunden habe, dass 'mein' compiler @ zeichen fuer single line kommentare erwartet... so, hatte gerade nochmal einen blick in die firmware lib als ich die datei anhaengen wollte, da ist mir aufgefallen das es da verschiedene versionen von gibt, jetzt weiss ich noch weniger als vorher grml ich verwende das CodeSorcery Lite ++ "zeug". wenn man fuer sein project die stm32f10x_nvic.c benoetigt (PWM beispiel aus der firmware zum beispiel), dann muss man auch die cortexm3_macro haben. vielleicht kann mal jemand der schon damit zu tun hatte nen tipp geben. wenn ihr noch infos braucht bitte einfach schreien :) thx, Dan
Also ich brauche die Macro gar nicht zum kompilieren. Wenn du einen gute Toolchain inkl. Linkerscript und Vectortable suchst, dann schau mal bei Anglia auf die Seite (Link unten). Spencer Oliver hat da ein paar Beispielprojekte zusammengepackt. Das hat mir auch sehr geholfen. In der Sarm Toolchain ist auch ein Complier (ich meine auch einer von Codesourcery) dabei. Da findest du alles was du für einen Start brauchst. Ich habe auch Monate gesucht und probiert, bis ich endlich fehlerfrei compilieren uns ausführen konnte. http://www.st-angliamicro.com/software.asp du mußt dir folgendes laden: Anglia IDEaliST IDE Version: v1.61 Anglia STRx Toolchain Version: v1.62 Die IDE mußt du nur installieren, brauchst sie ja nicht benutzen. Da drin sind die Beispiele (Unterordner). probier das mal aus.
Hi, danke! wird grad mal runtergeldane und getestet. Ich meine mich zu erinnern das ich die IDE schonmal getestet habe. Da ich aber beruflich Java in Eclipse entwickel wuerde ich gerne eine Eclipse basierte IDE verwenden.... hat bei mir aber auch nicht geklappt. im moment arbeite ich mit texteditor und scripten... ich schau mal rein. in der zwischenzeit habe ich eine cortexm3_macro.h datei von jemandem im st.com forum bekommen, die verwendet inline assembler, und ich brauche die cortexm3_macro.s datei nicht mehr ;) so hat es schonmal gefunzt... allerdings wuerde ich ja schon gerne wissen was ich da falsch mache, sonst lernt man ja nix :)
Also ich programmiere auch in Eclipse mit dem besagten gcc-compiler, makefile und Linkerscript. Wie programmierst du deinen Controller? Seriell, jtag oder..? Die IDE finde ich auch nicht so toll, deshalb bin ich auch bei Eclipse geblieben. Aber die Bsp. sind ganz gut für den Einstieg.
ich programmiere mit dem jtag-tiny (glaub von olimex) und verwende dafuer den Open OnChip Debugger aka. openOCD, das klappt ganz gut. das ganze soll zwar auch per eclipse debugbar sein, aber ich bekomme da immer ne fehlermeldung wenn ich den debugger via eclipse starten will, also mach ich im prinzip alles von DOS aus... naja, ist vielleicht garnicht so schlecht wenn man erstmal alles selber machen muss, dann lernt man das alles von grund auf mal kennen... welche vorteile bietet denn eclipse gegenueber nem texteditor mit syntax highlighting? ich habe keine code vervollstaendigung und keinen on-the-fly code validator?
wenn du auch in Eclipse debuggen willst, dann geht das mit dem Zylin Plugin für Eclipse. Das findest du bei http://www.zylin.com/embeddedcdt.html Ich nutze auch ein JTag-Adapter von olimex, den ARM-USB-OCD mit OpenOCD, funzt super.
danke fuer die infos. wenn ich mich nochmal dran setze werde ich mir die komplette toolchain neu einrichten :)
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.