Forum: Mikrocontroller und Digitale Elektronik myEthernet eigene Firmaware AVR Studio 6


von Stefan H. (hohmi)


Angehängte Dateien:

Lesenswert?

Hey Leute,

hab mir das myEthernet gekauft und es jetzt endlich zum laufen gebracht.

Jetzt wollt ich Anfangen meine eigene Firmware zu schreiben und habe 
dazu erstmal die ganzen Dateien (33 Stück) die dabei waren in ein Neues 
Projekt rein geladen.

Das einzige was ich bisher geändert habe ist, dass ich die ganzen *.h 
Dateien in eine C Datei included habe. Lasse ich dieses Includes weg, 
gibt es auch keine Fehler... (Fehler siehe Anhang) Es sind immer die 
gleichen.

Ich muss dazu sagen das ich erst vor kurzem auf das AVR Studio 6 
umgestiegen bin.
Habe das gleiche aber auch mit AVR Studio 4.19 ausprobiert mit dem 
selben Ergebnis.

Ist es vielleicht eine Compiler Einstellung oder so? Stehe irgendwie auf 
dem schlauch. Oder ist es weil ich kein SiSy verwende?


hier meine myEthernet.c, wobei ich den Dateipfad direkt mit Shift+Rechte 
Maustaste in die Zwischenablage kopierte und sich von der Seite her kein 
Fehler einschleichen können.
1
/*
2
 * myEthernet.c
3
 *
4
 * Created: 24.11.2013 18:26:19
5
 *  Author: Hohmi
6
 */ 
7
8
9
#include <avr/io.h>
10
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\Debug.h"
11
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\DebugUart.h"
12
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\DigitalLine.h"
13
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\DigitalOut.h"
14
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\DigitalOutLowAktiv.h"
15
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\Directory.h"
16
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\DirEntryCache.h"
17
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\Eeprom2.h"
18
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\ENC28J60.h"
19
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\Ethernet.h"
20
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\EthernetTcp.h"
21
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\Fat.h"
22
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\File.h"
23
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\M8_DigitalInOut.h"
24
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\M8_Mx8_SPI.h"
25
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\M8_TWI.h"
26
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\M8_Uart.h"
27
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\MmcCardBuffer.h"
28
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\Mx8_Timer.h"
29
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\myAVR_String.h"
30
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\MyCard.h"
31
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\myEthernet.h"
32
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\Projekt_myEthernet_HwManager.h"
33
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\SD_CARD.h"
34
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\SD_CARD_EXT.h"
35
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\Spi.h"
36
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\SpiMaster.h"
37
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\SpiMasterUart.h"
38
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\StringBig.h"
39
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\Timer1.h"
40
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\Webserver.h"
41
#include "E:\Mikrocontroller\Mikrocontroller Code AVR 6\myEthernet\myEthernet\WebserverHardware.h"
42
43
44
int main(void)
45
{
46
    while(1)
47
    {
48
        //TODO:: Please write your application code 
49
    }
50
}






Vielleicht hat einer von euch ja eine Idee, danke euch schon mal für das 
Lesen

Mit freundlichen Grüßen
Hohmi

von hp-freund (Gast)


Lesenswert?

class ?
Kann es sein das Du an Stelle der .c Datei eine .cpp Datei brauchst?

von Stefan H. (hohmi)


Lesenswert?

Hey Danke für die schnelle Antwort,

gute Frage, da waren keine *.cpp Dateien dabei.

Hier ein Auszug aus dem Code bei dem er meckert:
1
class Spi
2
{
3
4
public:
5
6
  //  configInt()
7
  void configInt(bool enable);
8
  //  stop()
9
  //  Stoppt den Timer
10
  void stop();
11
  //  Konstruktor
12
  Spi();
13
14
  //  Destruktor
15
  ~Spi();
16
17
private:
18
19
protected:
20
21
};

hab nochmal genau nachgelesen. Das Beispiele wurden für das myAVR 
Workpad geschrieben. Bin ich mir gerad mal die Demo am runterladen. Aber 
kann ja auch nicht sein das man erst Hardware kauft und diese dann erst 
mit Beispielen programmieren kann, wenn man sich die Shareware gekauft 
hat...

mfg Hohmi

von hp-freund (Gast)


Lesenswert?

Hab jetzt auch mal rein gesehen.
Die Beispiele sind .cc also cpp Dateien.
Die .h sind alle nur für den Zugriff auf die lib und die liegt nicht im 
Quelltext vor!?
Was fürn ....

von Stefan H. (hohmi)


Lesenswert?

Wird immer besser...

hab mir jetzt die Beispiel Datei ansehen können durch das downloaden der 
Demo.

Inhalt kopiert und in meine *.c Datei eingefügt. Anzahl der Fehler hat 
sich von 48 auf 77 erhöht...

Das hatte ich mir anders vorgestellt als ich die 60€ ausgegeben hab.

Jemand noch eine Idee???

mfg hohmi

von Stefan H. (hohmi)


Lesenswert?

hp-freund schrieb:
> Hab jetzt auch mal rein gesehen.
> Die Beispiele sind .cc also cpp Dateien.
> Die .h sind alle nur für den Zugriff auf die lib und die liegt nicht im
> Quelltext vor!?
> Was fürn ....

Nein sind nur die zwei *.a Dateien.

von hp-freund (Gast)


Lesenswert?

Stefan H. schrieb:
> Inhalt kopiert und in meine *.c Datei eingefügt.

Nicht .c . Erstelle eine .cc oder .cpp Datei.
Dann erkennt das Studio eine cpp Datei.

von Stefan H. (hohmi)


Lesenswert?

Das probiere ich sofort

von Stefan H. (hohmi)


Angehängte Dateien:

Lesenswert?

Hey,

die Fehlermeldungen haben sich schon mal reduziert^^ (siehe Anhang)

schon mal vielen Dank bis hier hin!!!

Mfg Hohmi

von Stefan H. (hohmi)



Lesenswert?

So die Errors sind auch nochmal weniger geworden.

Dazu musste ich in der Testdatei *.cpp (test_cc.cpp) Datei folgendes 
ergänzen:
1
#ifndef __PROG_TYPES_COMPAT__
2
#define __PROG_TYPES_COMPAT__
3
#endif

und
1
#include "D:\Programme\AVR\avr\include\compat\deprecated.h"

Einmal sagt er in der Zeile:
1
bool operator==(const prog_uchar *pText) const;

das prog_uchar veraltet ist. Was ja eigentlich auch logisch ist, da es 
ja in der deprecrated.h steht... Hoffe das es später trotzdem 
funktioniert.


Was mich dagegen jedoch wundert sind noch die zwei Fehlermeldungen 
(Errors)
Da im Quelltext folgendes steht:
1
static uint8_t html1[] PROGMEM= {
2
"<HEAD>" "<TITLE>myEthernet</TITLE>" "</HEAD>" "<BODY> <h1>myAVR - myEthernet</h1>"
3
"Ups...<br>Die Datei wurde nicht gefunden, oder es ist keine SD-Card eingelegt.<br>"
4
};
5
6
// Beachte: einige WnAVR Kompiler bringen hier eine Warnung, die nicht beachtet werden darf

Ein Error ist jedoch keine Warnung...

Jemand noch eine Idee wie ich die Errors beheben kann?

Noch ne ganz blöde Frage, beendet der Compiler bei einem Error das 
übersetzten oder übersetzt er auch den Rest des Programms. Wenn nicht, 
gibt es eine Einstellung unter AVR Studio 6 das er zu Ende übersetzt.

Ich frage aus dem Hintergund des Oben genannten Kommentars:
1
// Beachte: einige WnAVR Kompiler bringen hier eine Warnung, die nicht beachtet werden darf


Danke euch,

Mfg Hohmi


PS: Sorry für zweimal die gleichen Bilder, aber ich habe sie irgendwie 
nicht mehr gelöscht bekommen :-)

: Bearbeitet durch User
von Stefan E. (sternst)


Lesenswert?

Stefan H. schrieb:
> Jemand noch eine Idee wie ich die Errors beheben kann?

Ich finde es immer wieder erstaunlich, wie viele Leute Probleme mit 
dieser Fehlermeldung haben. Das ist doch nun wirklich eine der 
verständlichsten Fehlermeldungen, die der Compiler überhaupt ausspuckt. 
Es steht sogar direkt drin, was man machen muss, um sie weg zu bekommen.

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.