"Incompatible Type in assignment". Warum?



  • Hallo,
    wenn ich versuche diesen Code zu Compilieren, krieg ich einen Compiler-Fehler "Incompatible Type in assignment"

    Der Code ist nicht von mir, deshalb denke ich dass er wohl schon mal funktioniert hat, und ich weiß auch nicht was falsch sein könnte.

    pst = kmalloc ( NUM_HARDCODED_PSTS *sizeof(unsigned char), GFP_KERNEL);
    	if (!pst) return -ENOMEM;
    
    	               /* FID  */                       /*  VID  */
    	*pst++ = 0x07; /*  6.5x */       *pst++ = 0x0E; /* 1.30V */
    	*pst++ = 0x09; /*  7.5x */       *pst++ = 0x0E; /* 1.30V */
    	*pst++ = 0x0B; /*  8.5x */       *pst++ = 0x0E; /* 1.30V */
    	*pst++ = 0x0D; /*  9.5x */       *pst++ = 0x0E; /* 1.30V */
    	*pst++ = 0x0F; /* 10.5x */       *pst++ = 0x0E; /* 1.30V */
    	*pst++ = 0x01; /* 11.5x */       *pst++ = 0x0D; /* 1.35V */
    	*pst++ = 0x03; /* 12.5x */       *pst++ = 0x0C; /* 1.40V */
    	*pst++ = 0x16; /* 14.0x */       *pst++ = 0x0B; /* 1.45V */
    

    Vielen Dank.



  • WO bekommst du diesen Compilerfehler?



  • Kann es sein, dass du den Code versuchst als C++ zu compilieren? Ich tippe mal, dass kmalloc einen void-Pointer zurückgibt, pst aber ein anderer Zeigertyp ist. Das geht in C zwar, aber in C++ nur mit Cast.



  • Is im Kernelcode, genauergesagt im powernow-k7 Modul.

    Mitlerweile geht's aber, weiß nicht warum, aber ich hab's von einer Prozedur in ne andere verlagert, und auf einmal ging's.

    Für alle die das interessiert warum ich das mache. Der mobile Athlon XP sagt dem Bios, dass die Frequenz von 860 - 1860 MHz einstellbar ist und die Spannung von 1.3 - 1.45 V in Wirklichkeit ist die Untergrenze aber bei 400 MHz und 0.9 V.

    Deshalb bau ich mir ein eigenes PowerNow Modul, dass die Werte nicht vom BIOS holt, sondern eincompiliert hat, und hoffe auf längere Akkulaufzeiten.
    Unter Windows geht das schon mit Crystal CPUID 🙂

    Trotzdem Danke für die Hilfe.


Anmelden zum Antworten