Im Zuge eines Projekts ist ein Testcode abgefallen, der möglicherweise hilfreich für Neueinsteiger sein kann. Das Ganze ist kompilierbar unter CooCox v1.5 und läuft auf einem F4 Discovery. GPIO: Beispielcode wie man GPIO als Input und Output definiert. Die eingebauten LED blinken in verschiedenen Rythmus. SDIO: Die SDIO Pheripherie, initialisierung, DMA Mode, 1 Bit und 4 Bit Mode. Im Samplecode wird eine Textdatei im Root einer SD Karte (FAT/FAT32) erzeugt und wieder gelesen. Es ist ein Wrapper implementiert, damit Standardbefehle wie fopen(), fread(), fwrite() usw. funktionieren. Man muss den Wrapper nicht verwenden, ist aber praktisch wenn man bestehenden Code portieren will. Es ist ein mini fprintf() implementiert. Es ist ein 2 x 512 KB Buffer implementiert. Der Buffer wird nur verwendet wenn DMA aktiv ist UND wenn Speicherblöcke adressiert werden, die vom DMA unerreichbar sind. Es werden abwechselnd 512 Byte per DMA transportiert und inzwischen der andere Buffer beschrieben/gelesen. Timer,SoftTimer: Timer 4 wird verwendet in µs Auflösung. Dazu gibt es eine Miniimplementierung von Software Timer. Man kann eine unbegrenzte Anzahl von Softwaretimer (einer für ms und einer für µs) setzen. Die Softwaretimer kann man per Funktion prüfen ob sie abgelaufen sind. Der Betrieb der Softwaretimer braucht keine Systemzeit (nur die Abfrage und Setzfunktion). Das LED blink Demo ist mit Softwaretimer realisiert. USART: Usart 2 wird initialisiert auf 115200,8N1. Es sind zwei kleine Ringbuffer installiert. Ein und Ausgabe erfolgt im USART Interrupt, deshalb verzögert printf() nur sehr kurze Zeit. Ein angeschlossenes Terminal zeigt Startmeldung, PLL config, SDIO ausgaben. printf: es ist eine Miniimplementierung von printf(), sprintf(), snprintf() und fprintf() vorhanden. Kein float, etwas eingeschränkte Funktionalität. Braucht aber fast keinen Platz im Flash. putc() ist auf den USART2 eingestellt.
Gast
#2928217
ähm, -geh doch mal so vor: ladt es runter, speicher es ab und öffne CoIDE. wenn rebuild klappt, stell es ein -- ps.: gute Codesammlung!
Habe eben alles runter geladen, Projekt geöffnet, rebuild all, -
tadellos. Wo ist das Problem?
==============
GCC HOME: C:\Program Files (x86)\arm-none-eabi-gcc-4_6\bin
compile:
[mkdir] Created dir:
C:\Users\tw\Documents\CooCox\Stm32F407_blink\Debug\bin
[mkdir] Created dir:
C:\Users\tw\Documents\CooCox\Stm32F407_blink\Debug\obj
[cc] 27 total files to be compiled.
[cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mfpu=fpv4-sp-d16
-mfloat-abi=softfp -mthumb -Wall -ffunction-sections -O0 -g -c
-D__FPU_USED -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -DSTM32F407VG
-IC:\Users\tw\Documents\CooCox\Stm32F407_blink
-IC:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_lib\include
-IC:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_boot
-IC:\Users\tw\Documents\CooCox\Stm32F407_blink\src
-IC:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis
-IC:\Users\tw\Documents\CooCox\Stm32F407_blink\Driver\include
-IC:\Users\tw\Documents\CooCox\Stm32F407_blink\Driver\fatfs\src
C:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_lib\source\stm32f4xx_
syscfg.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_lib\source\stm32f4xx_
sdio.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\Driver\fatfs\src\fswrapper.
c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_lib\source\stm32f4xx_
usart.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\Driver\source\Discovery.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_lib\source\stm32f4xx_
pwr.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\Driver\source\stm32f4_disco
very_sdio_sd.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\Driver\source\sTimer.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\Driver\source\uart.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\Driver\fatfs\src\diskio.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_boot\startup\startup_
stm32f4xx.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\Driver\source\stm32f4_disco
very.c C:\Users\tw\Documents\CooCox\Stm32F407_blink\main.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_lib\source\stm32f4xx_
rcc.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_lib\source\stm32f4xx_
it.c C:\Users\tw\Documents\CooCox\Stm32F407_blink\stdio\printf.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_lib\source\stm32f4xx_
gpio.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_boot\system_stm32f4xx
.c C:\Users\tw\Documents\CooCox\Stm32F407_blink\syscalls\syscalls.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_lib\source\stm32f4xx_
dma.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\Driver\fatfs\src\ff.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\src\Blink.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_lib\source\stm32f4xx_
exti.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_lib\source\misc.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\src\SD_Test.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_lib\source\stm32f4xx_
rtc.c
C:\Users\tw\Documents\CooCox\Stm32F407_blink\cmsis_lib\source\stm32f4xx_
tim.c
[cc] Starting link
[cc] arm-none-eabi-gcc -O0 -nostartfiles
-Wl,-Map=Stm32F407_blink.map -mcpu=cortex-m4 -mthumb
-LC:\Users\tw\Documents\CooCox\Stm32F407_blink -Wl,--gc-sections
-Wl,-TC:\Users\tw\Documents\CooCox\Stm32F407_blink\arm-gcc-link.ld -g -o
Stm32F407_blink.elf ..\obj\stm32f4xx_syscfg.o ..\obj\stm32f4xx_sdio.o
..\obj\fswrapper.o ..\obj\stm32f4xx_usart.o ..\obj\Discovery.o
..\obj\stm32f4xx_pwr.o ..\obj\stm32f4_discovery_sdio_sd.o
..\obj\sTimer.o ..\obj\uart.o ..\obj\diskio.o ..\obj\startup_stm32f4xx.o
..\obj\stm32f4_discovery.o ..\obj\main.o ..\obj\stm32f4xx_rcc.o
..\obj\stm32f4xx_it.o ..\obj\printf.o ..\obj\stm32f4xx_gpio.o
..\obj\system_stm32f4xx.o ..\obj\syscalls.o ..\obj\stm32f4xx_dma.o
..\obj\ff.o ..\obj\Blink.o ..\obj\stm32f4xx_exti.o ..\obj\misc.o
..\obj\SD_Test.o ..\obj\stm32f4xx_rtc.o ..\obj\stm32f4xx_tim.o
Program Size:
34916 32 7752 42700 a6cc Stm32F407_blink.elf
text data bss dec hex filename
BUILD SUCCESSFUL
Total time: 2 seconds
Gast
#2928342
habe Version: 1.5.1
Build id: 20120929-1882-746
mit dem Ergebnis:
K:\C-winkler\Stm32F407_blink\Driver\source/SDIO.c:88: multiple
definition of `SD_LowLevel_Init'
[cc]
..\obj\stm32f4_discovery.o:K:\C-winkler\Stm32F407_blink\Driver\source/st
m32f4_discovery.c:86: first defined here
[cc] ..\obj\SDIO.o: In function `SD_Init':
[cc] K:\C-winkler\Stm32F407_blink\Driver\source/SDIO.c:140:
multiple definition of `SD_Init'
[cc]
..\obj\stm32f4_discovery_sdio_sd.o:K:\C-winkler\Stm32F407_blink\Driver\s
ource/stm32f4_discovery_sdio_sd.c:406: first defined here
[cc] ..\obj\Blink.o: In function `BlinkExpIni':
[cc]
..\obj\printf.o:K:\C-winkler\Stm32F407_blink\stdio/printf.c:281: first
defined here
[cc] K:\C-winkler\Stm32F407_blink\Driver\fatfs\src/f_io.c:72:
multiple definition of `fprintf'
[cc] ..\obj\f_io.o: In function `fprintf':
[cc] K:\C-winkler\Stm32F407_blink\src/Blink.c:21: multiple
definition of `BlinkExpIni'
[cc]
..\obj\gpio.o:K:\C-winkler\Stm32F407_blink\Driver\source/gpio.c:23:
first defined here
[cc] ..\obj\Blink.o: In function `BlinkExpLoop1':
[cc] K:\C-winkler\Stm32F407_blink\src/Blink.c:31: multiple
definition of `BlinkExpLoop1'
[cc]
..\obj\gpio.o:K:\C-winkler\Stm32F407_blink\Driver\source/gpio.c:33:
first defined here
[cc] ..\obj\Blink.o: In function `BlinkExpLoop2':
[cc] K:\C-winkler\Stm32F407_blink\src/Blink.c:47: multiple
definition of `BlinkExpLoop2'
[cc]
..\obj\gpio.o:K:\C-winkler\Stm32F407_blink\Driver\source/gpio.c:71:
first defined here
[cc] ..\obj\Blink.o: In function `BlinkExpLoop3':
[cc] K:\C-winkler\Stm32F407_blink\src/Blink.c:91: multiple
definition of `BlinkExpLoop3'
[cc]
..\obj\gpio.o:K:\C-winkler\Stm32F407_blink\Driver\source/gpio.c:164:
first defined here
[cc] ..\obj\SD_Test.o: In function `SearchImageFile':
[cc] K:\C-winkler\Stm32F407_blink\src/SD_Test.c:39: multiple
definition of `SearchImageFile'
[cc]
..\obj\sdcard.o:K:\C-winkler\Stm32F407_blink\Driver\source/sdcard.c:304:
first defined here
[cc] ..\obj\SD_Test.o: In function `SDcardReadFile':
[cc] K:\C-winkler\Stm32F407_blink\src/SD_Test.c:98: multiple
definition of `SDcardReadFile'
[cc]
..\obj\sdcard.o:K:\C-winkler\Stm32F407_blink\Driver\source/sdcard.c:363:
first defined here
[cc] ..\obj\SD_Test.o: In function `PrintDir':
[cc] K:\C-winkler\Stm32F407_blink\src/SD_Test.c:132: multiple
definition of `PrintDir'
[cc]
..\obj\sdcard.o:K:\C-winkler\Stm32F407_blink\Driver\source/sdcard.c:272:
first defined here
[cc] ..\obj\SD_Test.o: In function `SDcardInit':
[cc] K:\C-winkler\Stm32F407_blink\src/SD_Test.c:245: multiple
definition of `SDcardInit'
[cc]
..\obj\sdcard.o:K:\C-winkler\Stm32F407_blink\Driver\source/sdcard.c:395:
first defined here
[cc] ..\obj\gpio.o: In function `EXTI0_IRQHandler':
[cc] gpio.c:(.text.EXTI0_IRQHandler+0x26): undefined reference to
`IecPinChangeAtn'
[cc] gpio.c:(.text.EXTI1_IRQHandler+0x24): undefined reference to
`IecPinChange'
[cc] ..\obj\gpio.o: In function `EXTI1_IRQHandler':
[cc] ..\obj\gpio.o: In function `EXTI2_IRQHandler':
[cc] gpio.c:(.text.EXTI2_IRQHandler+0x24): undefined reference to
`IecPinChange'
[cc] collect2: ld returned 1 exit status
BUILD FAILED
Total time: 54 seconds
vom Linker;
Jetzt suche ich erstmal bei mir ...
Gast
#2928377
Bei mir fehlt evalboard.h
Da fehlt wohl noch mehr.
1 | |
Das Projekt verwendet die Datei gar nicht? Ich habe jetzt mal alle Dateien gelöscht, die ich vom Build ausgenommen habe. Und dann das Projekt neu gezippt. Hoffentlich funktioniert es nun.
Gast
#2928427
die beiden evalboard.h und 1541.h kannste weglassen. Sind wohl noch von seinem Proj. übrig; Aber, mein gcc scheint nichtmehr zu stimmen!Habe ich wohl selbst verbockt (wie weiß ich nicht); Welchen nimmst Du, Thomas Winkler ?
Gast
#2928429
- er war schneller!
Gast
#2928440
Das sieht nun besser aus - es rumpeln Compiler und Linker fehlerfrei drüber ;-) Nun spiele ich mal damit. Merci!
Gast
#2928448
--ausgezeichnet: läuft wunderbar durch!!!
bösewicht schrieb: > Aber, mein gcc scheint nichtmehr zu stimmen!Habe ich wohl selbst > verbockt (wie weiß ich nicht); > Welchen nimmst Du, Thomas Winkler ? \arm-none-eabi-gcc-4_6
Gast
#2928515
bösewicht schrieb: > --ausgezeichnet: > läuft wunderbar durch!!! Das kann ich nur bestätigen: PCLK2: 84000000 SYSCLK: 168000000 ----------------- initialize SDIO system ... drive 0 ok 2741536 KB total drive space. 3922432 KB available. SDIO system ok, free clusters: 85673 --- read/write test Zeile 1 Zeile 2 Zeile le test ok. --- reading directory <LOG> TEST.TXT ---------------------------------------- abermals: Merci!!!
Gast
#2928521
-danke, ich hatte meinen "Toolchain-Path" offenbar überschrieben, als ich in einem anderen Projekt *.lib linken wollte; (demobuilder aus Open407I-C_demobuilder) --
Gast
#2928549
@Thomas Winkler (Firma: privat) (diddl) Jetzt, da alles geht, könntest Du doch dem CooCox-Forum einen Link auf diese Seite spendieren( die freuen sich immer, wenn mal was funktioniert --);
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
Sieht gut aus. Auch von mir Danke!
Compilieren geht, aber mit dem UART gibt es noch ein Problem mit dem Buffer Auf dem Terminal kommt nach dem Reset bloss "### Ã" raus, dann ist Schluss. Wenn ich #define F_DIAG 0 setze, dann kommt immerhin "### Discovery 32F4 Demo ###" raus.
Das Terminal-Problem offenbar liegt nicht am UART-Teil selber, irgendwo bleibt die SW hängen. Habe eine 2GByte FAT16 uSD-Card, sollte doch gehen, oder müsste ich was anpassen?
Beim Aufruf von "f_getfree("0:", &clusters, &fso)" im SDcardInit()
scheint es zu knallen! Irgend eine Idee?
@Thomas Winkler Dein Code geht definitiv nicht! Die Datei TEST.TXT wird zwar erstellt (mit Inhalt) die Filesystem Funktionen scheinen sich mit dem printf UART-Ausgaben zu beissen. Ich nutze die USART6 und habe es auch ohne die minimalistische "retarget printf" probiert, printf geht nicht! Wenn ich nach jedem printf() einige ms Delay einbaue, kriege ich maximal soviel raus:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
==> nach dieser Ausgabe ist das printf() tot! Schade, dass Du hier was halbfertiges postest und offenbar auch nicht bereit bist, Hilfe zu leisten! Ist so leider echt nicht zu gebrauchen...
Gast
#2934518
Peter S. schrieb: > Schade, dass Du hier was halbfertiges postest und offenbar auch nicht > bereit bist, Hilfe zu leisten! Ist so leider echt nicht zu gebrauchen... Schon lustig, da stellst Du selber IIC-Routinen für ein EEPROM 24C32 vor und interessierst Dich selber nicht für Fehlermeldungen :-) Beitrag "Re: STM32F4 Discovery mit I2C-Bus EEPROM" Die von Dir geänderten Programmteile scheinen ebenfalls nur zufällig zu funktionieren. Oder hast Du die vorgeschlagenen Test schon mal erfolgreich durchgespielt oder einen String länger als 32Byte geschrieben und 'sauber' zurückgelesen? Ich fürchte: nein.
@m.n. (Gast) Ich habe versucht Dir zu erklären, dass es generische I2C-Bus Routinen sind und nicht Device-Treiber für irgend ein spezifisches EEPROM! Offenbar verstehst Du das nicht! Und das Beispiel, welches Du erwähntest, bist Du auch schuldig geblieben. ==> Anyway, all dies gehört NICHT in diesen Thread!
Gast
#2934662
Beitrag "Re: STM32F4Discovery mit CooCox :: GPIO,SDIO,Timer,SoftTimer,USART,printf" Peter S. schrieb: > Ich nutze die USART6 und habe es auch ohne die minimalistische "retarget > printf" probiert, printf geht nicht! Wenn ich nach jedem printf() einige > ms Delay einbaue, kriege ich maximal soviel raus: > ### Discovery 32F4 Demo ### > > PCLK1: 42000000 > PCLK2: 84000000 > SYSCLK: 168000000 > ----------------- > initialize SDIO system ... > execute of f_mount() was succesfull > ==> nach dieser Ausgabe ist das printf() tot! (Von was sprichst Du, Brüderchen?) Die Ausgabe von USART2 mit "Retarget printf"
Hi Peter Habe erst jetzt gesehen, dass du Probleme mit dem Code hast. Was soll ich sagen, es läuft tadellos bei mir. Auch in viel größerem Kontext laufen dieselben Basis Routinen tadellos. Sowohl USART2 als auch SDIO werden intensiv genutzt in meinem Projekt. Ich kann deine Probleme nicht nachvollziehen?
Gast
#2934764
Peter S. schrieb: > Und das Beispiel, welches Du > erwähntest, bist Du auch schuldig geblieben. Ich schulde Dir garnichts. Wenn Du unter der Überschrift "STM32F4 Discovery mit I2C-Bus EEPROM" Programme vorstellst, die fürs EEPROM offensichtlich garnicht zu gebrauchen sind, ist das schon arg daneben. > ==> Anyway, all dies gehört > NICHT in diesen Thread! Und hier machts Du den Schiedsrichter und stänkerst über die scheinbar fehlerhaften Routinen Anderer, ohne einen Beleg dafür zu erbringen. Das einzige was kommt: es funktioniert nicht. Toll!
@Thomas Winkler Erstmal "Sorry" für meinen etwas gehässigen Schlusssatz gestern Nacht! Ich war wohl einfach müde und frustriert, dass ich es bei mir nicht zum laufen kriege und ausgerechnet die zum debuggen hilfreiche UART nicht tut. Mein Discovery steckt auf einem STF4BB Baseboard: http://www.embedinfo.com/English/download/DM-STF4BB.pdf Dort hat's ein uSD-Card Interface und die UART6 ist mit einem RS232Treiber versehen. Schema: Siehe Attachment (Problem erkennbar?) Um die UART6 zu nutzen habe ich folgendes im UART.h beigefügt: [c] #if USART == 6 #define USARTx USART6 #define USARTx_CLK RCC_APB2Periph_USART6 #define USARTx_CLK_INIT RCC_APB2PeriphClockCmd #define USARTx_IRQn USART6_IRQn #define USARTx_IRQHandler USART6_IRQHandler #define USARTx_TX_PIN GPIO_Pin_6 #define USARTx_TX_GPIO_PORT GPIOC #define USARTx_TX_GPIO_CLK RCC_AHB1Periph_GPIOC #define USARTx_TX_SOURCE GPIO_PinSource6 #define USARTx_TX_AF GPIO_AF_USART6 #define USARTx_RX_PIN GPIO_Pin_7 #define USARTx_RX_GPIO_PORT GPIOC #define USARTx_RX_GPIO_CLK RCC_AHB1Periph_GPIOC #define USARTx_RX_SOURCE GPIO_PinSource7 #define USARTx_RX_AF GPIO_AF_USART6 #endif [\c] Für die Fehlersuche habe ich nach einigen printfs() zusätzliche delays eingefügt und zum Teil die Funktionsaufrufe aus den if()-Abfragen raus genommen. Beim debuggen fand ich jedoch keine Fehler! Ich habe das ganze Projekt einige Posts weiter oben beigefügt, könntest Du bitte mal gucken ob es bei Dir noch tut, bzw. ob Du einen entscheidenden Unterschied findest? p.s. Ich nutze CoIDE 1.5.1 mit gcc-arm-none-eabi-4_6-2012q4-20121016
Hallo Peter Keine Ursache. Leider habe ich grad kein F4 board zur Hand. Aber ich sehe schon, du hast den USART von 2 auf 6 gewechselt, was ja an sich keinen Unterschied machen sollte. Nur eine schnelle Vermutung: Ich gehe davon aus, dass du die richtigen Pins für USART 6 verwendest hast, sonst würde es ja gar nicht gehen. Ich gehe auch davon aus, dass die SDIO Pins keine Überschneidung haben, mit den von dir verwendeteten USART6 Pins. Da gibt es aber ein weiteres GPIO pin das für SDIO eine Rolle spielt. Es ist als Eingang geschaltet und dient zur SD Kartenerkennung. Möglicherweise ist da der hund begraben? Notfalls musst diesen Eingang auf einen anderen Pin verlegen, dann sollte es meiner Meinung nach funktionieren. Ich kann mir das am Wochenende gerne mal genauer anschauen.
Übrigens tolles base board, das STF4BB. Ich verwende das von WaveShare: http://www.ebay.at/itm/STM32F4DISCOVERY-STM32-Cortex-M4-Development-Board-Camera-3-2-LCD-14-Modules-/261052810562
Könnte natürlich auch ein Grund sein, warum USART6 nicht richtig läuft:
1 | |
2 | |
3 | |
4 | |
5 | |
>note that only USART1 and USART6 are connected to APB2 Danke für den Hinweis, das habe ich übersehen und werde es prüfen! Ohnehin war ich wohl viel zu sehr auf die SW fixiert und habe die HW zu sehr ausser acht gelassen. >Da gibt es aber ein weiteres GPIO pin das für SDIO eine Rolle spielt. Welchen GPIO-Pin meinst Du, bzw wie hast Du die uSD-Card angeschlossen? Bei STF4BB ist: Pin-1 PC10 D2 Pin-2 PC11 CD/D3 Pin-3 PD2 CMD Pin-4 VDD 3V Pin-5 PC12 CLK Pin-6 VSS GND Pin-7 PC8 D0 Pin-8 PC9 D1 Pin-9 PD15 NCD
Da haben wir ja schon das Problem:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Der SD_DETECT_PIN liegt da wo der TX des USART6 liegt ... ;-)
>note that only USART1 and USART6 are connected to APB2
Daran liegt es nicht, in USART_config() steht...1 | |
2 | |
und ich definiere...
1 | |
2 | |
Auch die SDIO Pin Belegung scheint ok zu sein. Was wird im InitIEC(void) eigentlich alles initialisiert, bzw. was ist IEC?
>Der SD_DETECT_PIN liegt da wo der TX des USART6 liegt ... ;-)
Das ist offenbar wirklich das Problem! Wie löst man das, braucht es
dieses SD_DETECT_PIN Signal? (Ist bei meinem Board offenbar nicht
vorhanden)
Alles klar, das muss bei mir natürlich PB15 sein...
1 | |
2 | |
3 | |
=> Und es tut... => So kann ich heute endlich wieder schlafen ;o)
Board Eigenheiten ... ;-)
@Thomas Winkler
>Board Eigenheiten ... ;-)
Kann man auch so betrachten!
Hey, noch vielen Dank, nun kann ich weiter entdecken. Ist nämlich das
erste mal, dass ich was mit Filesystemen und gar mit SD-Cards mache.
Bleibt aber noch die Frage: Was ist/heisst IEC "InitIEC(void)" und was
brauche ich davon wirklich?
Noch was: http://www.coocox.org/forum/topic.php?id=2236 Im obigen Thread steht, dass es Probleme mit DMA gibt, wenn was anderes als -O0 verwende, sprich - der Code mit Optimierung compiliert wird! Stimmt das? Das wäre ja eine eine ganz "böse Sache"...
zu 1) Vergiss das IEC, stammt aus meinem größeren Projektkontext. IEC ist ein sehr altes Bus Protokoll das der C64 zu seiner Peripherie (Floppy, Drucker) gesprochen hat. zu 2) Kann so nicht stimmen. Ich benutze -O2 mit SDIO DMA, und es läuft gut. Zum Einen ist der DMA ist nicht ganz unkritisch. Da hatte ich auch ziemlich zu kämpfen. Deshalb auch die Doppelbuffer. Zum Anderen bringt der DMA nicht die Welt. Wegen der 168 MHz ist der Durchsatz beim Polling fast gleich. DMA bringt halt Entlastung der CPU wenn es eng wird. Beim F4 wird es aber eher selten eng.
>Vergiss das IEC, stammt aus meinem größeren Projektkontext. Ich hatte das InitIEC(void) auskommentiert, dann ging aber gar nix mehr. Wird da sonst noch was initialisiert, dass benötigt wird? Oder was muss ich noch "rausputzen" damit das ganze wirklich weg ist? >Zum Anderen bringt der DMA nicht die Welt Eine hohe Filesytem-Performance ist bei mir kein Thema, wie/was/wo müsste man etwas ändern, dass das ganze ohne DMA läuft?
Gast
#2937120
Alles okey, läuft tatsächlich ohne IEC, ich hatte da noch ein anderes Problem. Auch mit Optimierung -OS ist alles bestens! ;o)
Gast
#2988684
ich habe alles nach der Anleitung installiert und wollte das Beispiel „ GPIO_INPUT_OUTPUT“ Kompilieren leider Funktioniert das bei mir nicht . Vielleicht kann mir einer weiterhelfen GCC HOME: C:\Program Files\GNU Tools ARM Embedded\4.7 2012q4\bin compile: [mkdir] Created dir: D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\STM32F4_GPIO_INPUT_OUTPUT\Debug\ bin [mkdir] Created dir: D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\STM32F4_GPIO_INPUT_OUTPUT\Debug\ obj [cc] 6 total files to be compiled. [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wall -ffunction-sections -g -O3 -c -DSTM32F407VG -DSTM32F4XX -DUSE_STDPERIPH_DRIVER -D__FPU_USED "-ID:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot" "-ID:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis" "-ID:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT" "-ID:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\include" "-ID:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib" "-ID:\kay\CoIDE Projekte\Neuer Ordner\coocox" '"D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot\startup\startup_stm32 f4xx.c"' '"D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\main.c"' '"D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\source\stm32f4xx_rcc.c "' '"D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\source\stm32f4xx_gpio. c"' '"D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot\system_stm32f4xx.c"' '"D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\source\stm32f4xx_tim.c "' [cc] In file included from D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot/stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\main.c:21: [cc] D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] In file included from D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot/stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\include/stm32f4xx_rcc. h:31, [cc] from D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\source\stm32f4xx_rcc.c :56: [cc] D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] In file included from D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot/stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\include/stm32f4xx_gpio .h:32, [cc] from D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\source\stm32f4xx_gpio. c:79: [cc] D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] In file included from D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot\stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot\system_stm32f4xx.c:11 7: [cc] D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] In file included from D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot/stm32f4xx.h:240:0, [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] from D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\include/stm32f4xx_tim. h:32, [cc] D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] from D:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\source\stm32f4xx_tim.c :114: [cc] Starting link [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wl -nostartfiles -g -Wl,-Map=STM32F4_GPIO_INPUT_OUTPUT.map -O3 -Wl,--gc-sections -LC:\CooCox\CoIDE\configuration\ProgramData\STM32F4_GPIO_INPUT_OUTPUT -Wl,-TC:\CooCox\CoIDE\configuration\ProgramData\STM32F4_GPIO_INPUT_OUTPU T/arm-gcc-link.ld -g -o STM32F4_GPIO_INPUT_OUTPUT.elf ..\obj\startup_stm32f4xx.o ..\obj\main.o ..\obj\stm32f4xx_rcc.o ..\obj\stm32f4xx_gpio.o ..\obj\system_stm32f4xx.o ..\obj\stm32f4xx_tim.o [cc] arm-none-eabi-gcc: error: unrecognized command line option '-Wl' BUILD FAILED
Welche Versionen von CoIDE und GCC verwendest Du? Ich empfehle CoIDE 1.5.2 und die letzte GCC 4.6 Version (gcc-arm-none-eabi-4_6-2012q4-20121016) Vielleicht findest Du hier eine Lösung: http://www.coocox.org/forum/topic.php?id=2596 Und sobald etwas mit GCC zu tun hat, würde ich niemals Verzeichnisspfade mit Spaces verwenden, selbst wenn CooCox diese als Default-Pfade vorschlägt.
Gast
#2988777
CoIDE 1.6.2 GCC 4.7-2012-q4 Toolchain : C:\Program Files\GNU Tools ARM Embedded\4.7 2012q4\bin Das geht trotzdem nicht. GCC HOME: C:\Program Files\GNU Tools ARM Embedded\4.7 2012q4\bin compile: [mkdir] Created dir: D:\kay\CoIDE Projekte\Stm32F407_blink\Stm32F407_blink\Debug\bin [mkdir] Created dir: D:\kay\CoIDE Projekte\Stm32F407_blink\Stm32F407_blink\Debug\obj [cc] 27 total files to be compiled. [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wall -ffunction-sections -g -O0 -c -DSTM32F407VG -DSTM32F4XX -D__FPU_USED -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 "-ID:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib" "-ID:\kay\CoIDE Projekte\Stm32F407_blink\cmsis" "-ID:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\include" "-ID:\kay\CoIDE Projekte\Stm32F407_blink\Driver\fatfs" "-ID:\kay\CoIDE Projekte\Stm32F407_blink\Driver\fatfs\src" "-ID:\kay\CoIDE Projekte\Stm32F407_blink\src" "-ID:\kay\CoIDE Projekte" "-ID:\kay\CoIDE Projekte\Stm32F407_blink\Driver\include" "-ID:\kay\CoIDE Projekte\Stm32F407_blink\Driver" "-ID:\kay\CoIDE Projekte\Stm32F407_blink" "-ID:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot" '"D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_syscfg.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_sdio.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\fatfs\src\fswrapper.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_usart.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\source\Discovery.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_pwr.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\source\stm32f4_discovery_sdio_sd.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\source\sTimer.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\source\uart.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\fatfs\src\diskio.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot\startup\startup_stm32f4xx.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\source\stm32f4_discovery.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\main.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_rcc.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_it.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\stdio\printf.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_gpio.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot\system_stm32f4xx.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\syscalls\syscalls.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_dma.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\fatfs\src\ff.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\src\Blink.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_exti.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\misc.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\src\SD_Test.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_rtc.c"' '"D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_tim.c"' [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_syscfg.c:43: [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\include/stm32f4xx_syscfg.h:32, [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_sdio.c:155: [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\include/stm32f4xx_sdio.h:38, [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\fatfs\src\fswrapper.c:25: [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\include/stm32f4xx_usart.h:32, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_usart.c:85: [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\source\Discovery.c:10: [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\include/Discovery.h:16, [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\include/stm32f4xx_pwr.h:32, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_pwr.c:32: [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\include/stm32f4_discovery.h:36, [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\source\stm32f4_discovery_sdio_sd.c:230: [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\include/stm32f4_discovery_sdio_sd.h:38, [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx_conf.h:29, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\source\sTimer.c:23: [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\include/misc.h:32, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\source\uart.c:25: [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\fatfs\src\diskio.c:7: [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\include/stm32f4_discovery.h:36, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\source\stm32f4_discovery.c:28: [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\include/Discovery.h:16, [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\main.c:10: [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\include/stm32f4xx_rcc.h:31, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_rcc.c:56: [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_it.c:14: [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\include/stm32f4xx_it.h:22, [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\stdio\printf.c:38: [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\include/stm32f4xx_gpio.h:32, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_gpio.c:79: [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot\stm32f4xx.h:240:0, [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot\system_stm32f4xx.c:118: [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_dma.c:116: [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\include/stm32f4xx_dma.h:32, [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\src\Blink.c:9: [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\Driver\include/discovery.h:16, [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\include/stm32f4xx_exti.h:32, [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_exti.c:61: [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\misc.c:70: [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\include/misc.h:32, [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\src\SD_Test.c:10: [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\include/stm32f4xx_rtc.h:32, [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_rtc.c:277: [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] In file included from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_boot/stm32f4xx.h:240:0, [cc] D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis/core_cm4.h:135:0: warning: "__FPU_USED" redefined [enabled by default] [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\include/stm32f4xx_tim.h:32, [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] from D:\kay\CoIDE Projekte\Stm32F407_blink\cmsis_lib\source\stm32f4xx_tim.c:114: [cc] Starting link [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wl -nostartfiles -g -Wl,-Map=Stm32F407_blink.map -O0 -Wl,--gc-sections -LC:\CooCox\CoIDE\configuration\ProgramData\Stm32F407_blink -Wl,-TC:\CooCox\CoIDE\configuration\ProgramData\Stm32F407_blink/arm-gcc- link.ld -g -o Stm32F407_blink.elf ..\obj\stm32f4xx_syscfg.o ..\obj\stm32f4xx_sdio.o ..\obj\fswrapper.o ..\obj\stm32f4xx_usart.o ..\obj\Discovery.o ..\obj\stm32f4xx_pwr.o ..\obj\stm32f4_discovery_sdio_sd.o ..\obj\sTimer.o ..\obj\uart.o ..\obj\diskio.o ..\obj\startup_stm32f4xx.o ..\obj\stm32f4_discovery.o ..\obj\main.o ..\obj\stm32f4xx_rcc.o ..\obj\stm32f4xx_it.o ..\obj\printf.o ..\obj\stm32f4xx_gpio.o ..\obj\system_stm32f4xx.o ..\obj\syscalls.o ..\obj\stm32f4xx_dma.o ..\obj\ff.o ..\obj\Blink.o ..\obj\stm32f4xx_exti.o ..\obj\misc.o ..\obj\SD_Test.o ..\obj\stm32f4xx_rtc.o ..\obj\stm32f4xx_tim.o [cc] arm-none-eabi-gcc: error: unrecognized command line option '-Wl'
>CoIDE 1.6.2 >GCC 4.7-2012-q4 >Toolchain : C:\Program Files\GNU Tools ARM Embedded\4.7 2012q4\bin >Das geht trotzdem nicht. Dann lese doch nochmals mein mein obiges Post durch und gucke Dir auch auch den Link an! Du solltest den GCC 4.6 verwenden, CooCox läuft noch nicht mit GCC 4.7!!! Und statt seitenweise Compiler-Outputs per Copy+Paste hier reinzumüllen (der letzte Abschnitt hätte übrigens gereicht) bitte ich Dich, sowas beim nächsten mal in ein Textfile zu kopieren und dieses als Attachment beizufügen.
Thomas, hast du dir die Treiber selbst geschrieben? Hab es mir nicht so genau angeschaut, aber ich benutze ChibiOS. Da sind schon alle Peripherie-Treiber mit drin (und die funktionieren sogar tadellos :-)). Der stdio wrapper ist ganz praktisch, werde mir vielleicht ein bischen was davon klauen und für ChibiOS anpassen... EDIT: Habe jetzt erst gemerkt, dass du gar kein CooOS verwendest. Willst alles zu Fuß machen?
Gast
#2992088
> Noch was: > http://www.coocox.org/forum/topic.php?id=2236 > Im obigen Thread steht, dass es Probleme mit DMA gibt, wenn was anderes > als -O0 verwende, sprich - der Code mit Optimierung compiliert wird! > Stimmt das? Das wäre ja eine eine ganz "böse Sache"... Hallo, ich hatte dieses Problem. Nachdem ich "DAC_InitTypeDef DAC_InitStructure;" global definiert habe, trat das Problem nicht mehr auf. Warum das so ist, weiß ich allerdings nicht.
Gast
#2992119
Nachtrag: Interessanterweise wird im DAC_SignalsGeneration Example, welches bei Cocoox vorgeschlagen wird, diese Variable ebenfalls global definiert. Es muss da also einen Grund geben. Wenn man es nämlich nicht tut, so tritt das Problem auf.
Hallo Thomas Erstmal herzlichen Dank für den Code. Vorallem für die FatFS Integration. Läuft bei mir auf einem OLIMEX H407 Board. Im Moment versuche ich das ganze etwas zu begreifen, und bei den IRQ's habe ich ein Problem. Braucht es die beiden IRQ's für SD jetzt oder nicht ?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
Ich habe sie in "stm32fxx_it.c" drin. Natürlich mit der ganze NVIC Intialisierung in "main.c". Du hast die SDIO IRQ's nicht aktiviert, und es läuft auch, oder übersehe ich etwas ? So ganz den Ueberblick habe ich wohl noch nicht ;-) Danke und Gruss Daniel
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
