Erreur compilation types incompatibles
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Erreur compilation types incompatibles



  1. #1
    number8one

    Erreur compilation types incompatibles


    ------

    Bonjour à tous,

    Dans mon code, je declare un tableau à une adresse afin de faire de la reprogrammation memoire FSL sous IAR RL78.
    Mon but est de créer une fonction qui parcourt ce tableau et me donne la premiere adresse contenant 0xFF pour l'appeler plus tard dans mon code.
    Code:
    __no_init __far char a_DataStored[FLASH_ARRAY_KB_SIZE] @0x00B800; /* declaration du tableau */
     
    void HAL_Flash_RefreshStoredData(void)
    { 
        char i, Status;
        
        int Index = 0;
        
        Status = Flash_blankcheck(START_BLOCK_NUM);    
        if (Status == FSL_OK) /* if block is blank */
        {   /* Init the array containing the data to store */
            for (i=0; i<FLASH_ARRAY_KB_SIZE; i++)
            {
                if ((i%2) == 0)
                    a_FlashData[i] = i; /* IDs */
                else 
                    a_FlashData[i] = 0; /* Init values */
            }      
        } 
        else if (Status == FSL_ERR_BLANKCHECK)/* Some data have already been saved in the Flash */
        {
            Index = HAL_Flash_GetAddressOffset(a_DataStored);
            for (i=0; i<FLASH_ARRAY_KB_SIZE; i++)
            {
                a_FlashData[i] = a_DataStored[i];
            }
        }
        else 
        {
            Flash_erase(START_BLOCK_NUM);
        }
    }
    
    int Flash_GetAddressOffset (__far char* p_Array)
    {
        int Index = 0;
        char Flag = 0;
        
        while ((Index < BLOCK_SIZE) && (Flag != 1))
        {
            if (*(p_Array+Index) != 0xFF)
            {
                Index++;
            }
            else
            {
                Flag = 1;
            }
        }
        return (Index );
    }
    J'obtiens l'erreur suivante:
    Error[Pe167]: argument of type "char __far*" is incompatible with parameter of type "char*"

    Quelqu'un aurait-une idée de pourquoi j'ai cette erreur?

    Merci!

    -----

  2. #2
    luc_1049

    Re : Erreur compilation types incompatibles

    bonjour

    Sur la première ligne vous vous voulez déclarer votre tableau et son adresse en même temps c'est cela .Je ne sais plus si c'est possible.

    Quand vous passez le paramètre essayez donc la notation équivalente &tableau[0], voire en rajoutant un cast ?

    Le "_no_init" mot clé de votre compilateur je suppose est il vraiment nécessaire, vous craigniez que l'assembleur tente d'initialiser à 0 votre tableau dans une section flash ?
    Regardez ce qu'en dit le compilateur dans la notice.

    cdlt

  3. #3
    number8one

    Re : Erreur compilation types incompatibles

    Bonjour et merci pour votre réponse,

    En effet je déclare le tableau et lui spécifie une adresse, ca se fait pour ce compilateur, testé. Le __no_init aussi vient de la datasheet du compilateur, pour comme vous dites, empecher l'initialisation à 0.
    Par ailleurs, meme en utilisant la ligne suivante, j'ai la meme erreur.
    Code:
    Index = HAL_Flash_GetAddressOffset(&a_DataStored[0]);
    Je n'en vois toujours pas la raison. Une autre petite idée?
    Merci

  4. #4
    cherwam07

    Re : Erreur compilation types incompatibles

    Salut,

    Visiblement le _far est passé à la trappe.

    Si tu déclares ta fonction
    Code:
    int Flash_GetAddressOffset(char __far * p_Array)
    au lieu de
    Code:
    int Flash_GetAddressOffset (__far char* p_Array)
    Ca change quelque chose ?

  5. A voir en vidéo sur Futura
  6. #5
    number8one

    Re : Erreur compilation types incompatibles

    Ca change et ca marche
    Code:
    int Flash_GetAddressOffset(char __far * p_Array)
    Merci cherwam07 et luc_1049!!

Discussions similaires

  1. C++ - erreur compilation / classes
    Par Lechero dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 26/05/2013, 23h08
  2. Erreur de compilation IAR
    Par invite5458c417 dans le forum Électronique
    Réponses: 7
    Dernier message: 20/06/2012, 22h57
  3. Erreur de compilation
    Par invite339a0de8 dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 10/04/2012, 12h16
  4. erreur de compilation
    Par r_systeme dans le forum Électronique
    Réponses: 3
    Dernier message: 18/07/2011, 07h59
  5. erreur compilation
    Par inviteb7a0f269 dans le forum Électronique
    Réponses: 2
    Dernier message: 22/06/2010, 14h20
Découvrez nos comparatifs produits sur l'informatique et les technologies.