Hallo Zusammen, ich würde gerne den STM32 (STM103VET6) mit dem ENC28J60 in Verbindung bringen. Im Grunde genommen möchte ich UDP Pakete empfangen und versenden. Leider habe ich noch nicht so viel Erfahrung mit dem STM32. Und auf meiner Suche hab ich bisher noch nichts gefunden was mir weiterhilft, deshalb hoffe ich mir hier jemand weiterhelfen kann. Ich arbeite mit CooCox. Vielen Dank schonmal für eure Hilfe. Gruß Fabi
:
Verschoben durch Moderator
Hallöchen, ich hab das Beispiel nun mal ausprobiert. Leider springt das Programm in den "Default_Handler". Leider kann ich so beim Debuggen keine Fehler feststellen. Gruß Fabi
Hättest du mal einen STM32F107 statt eines STM32F103 genommen, hätte der bereits Ethernet integriert und du könntest dir die Fummelei mit einem externen Ethernet Controller sparen...
Um zu lernen könntest Du versuchen den Fehler zu finden. Ich würde anfangen beim ld script. Notfalls auch ein anderes,fertiges Coocox Projekt finden: http://we.easyelectronics.ru/GYUR22/stm32-discovery-sdwebenc28j60.html Code: http://we.easyelectronics.ru/attachments/get/1511
Tach zusammen, hab jetzt die Verbindung zwischen ENC und STM32 hinbekommen dank dem Link von "hp-freund". Danke nochmal dafür. Für die, die auch damit arbeiten wollen. Zu beginn hab ich bei CooCox unter Configuration > Device den Controller auf meinen "STM32F103VE" geändert. Dann gab folgendes Problem. Beim Compilieren kam folgende Fehlermeldung - "registers may not be the same -- `strexb r0,r0,[r1]" das habe ich behoben indem ich 2 Zeilen in der Datei "core_cm3.c" verändert habe. Und zwar: - In Funktion __STREXB __ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r (value) ); IN __ASM volatile ("strexb %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) ); Und in Funktion __STREXH __ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); IN __ASM volatile ("strexh %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) ); Dann kann man den Code compilieren. Wenn man keine SD Karte hat kann man einfach die Zeile "while(!mmc_mount());" in der "main.c" datei aus kommentieren. Dann kann man den STM32 mit dem ENC anpingen und die IP im Webbrowser. Wenn ich nun doch UDP Pakete Senden und Empfangen kann dann bin ich zufrieden. Gruß Fabi
Fabiw0696 schrieb: > Dann gab folgendes Problem. Beim Compilieren kam folgende Fehlermeldung > - "registers may not be the same -- `strexb r0,r0,[r1]" Man sollte wirklich denken, dass dieser Fehler endlich behoben wäre, nachdem ich den Autor der CMSIS bereits 2009 darauf hingewiesen hatte. Kann natürlich auch sein, dass Coocox ein steinzeitliches CMSIS verwendet.
:
Bearbeitet durch User
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.