Hallo!
Ich programmiere gerade eine Firmware in C für einen MSP430 unter Code
Composer Studio v4 von Ti.
In meinem Programm bekommt eine Funktion u.a. einen byte-Pointer, der
auf ein entsprechendes Array zeigt, übergeben.
In diesem Array stehen serialisierte Daten, die meine Funktion
entsprechend wieder auspacken muss. Das klappt soweit ganz gut, nur bei
Funktionspointern hapert es.
Egal, wie ich es drehe und wende bekomme ich immer irgendwelche
Kompiler-Warnungen und/oder -Fehler.
Wie kann ich einen byte-Pointer in einen Funktionspointer casten?
Danke für Eure Hilfe!
Gruß
Mirco
P.S.:
byte = typedef unsigned char
P.P.S.:
Pseudocode:
1 | void MeineFunktion(FrameID wert)
|
2 | {
|
3 | ...
|
4 | }
|
Beispiel: &MeineFunktion = 0x1234
1 | byte array[2];
|
2 | array[0] = MSB Addresse auf Funktion; hier: 0x12
|
3 | array[1] = LSB Addresse auf Funktion; hier: 0x34
|
4 | byte* datapointer = &array[0];
|
Funktionspointer zeigt auf "void (*Callback) (FrameID wert)"
Gesucht ist also:
1 | void (*Callback) (FrameID wert);
|
2 | Callback = *datapointer
|
Ziel: Callback = 0x1234