XC8

Miroslav Draxal evik na volny.cz
Úterý Srpen 23 20:54:52 CEST 2016


Dobrý den,

Pouze upozornění. Dávejte si pozor na konstrukci:

 

#include "htc.h"

char arrayA[3];

char arrayB[3] @0x123;

 

int main(void) {

    char x;

    char a;

    x = 0;

                                                                    

    x--;

    if (a != arrayA[x + 1]) {

        if (a != arrayB[x + 1]) // zde chyba v adresování 0x223 chybně místo
0x1123

            __builtin_software_breakpoint();

            x++;

    }

    return 0;

}

 

V prvním případě, kdy je arrayA uloženo v 0 stránce je adresování OK, v
druhém případě, kdy je arrayB uloženo v druhé stránce, přistupuje k arrob
FSR registr místo 0x123 chybně 0x223. 

Tato chyba je už od verze XC8 od verze 1.1. Mělo by to dělat pouze v
optimalizaci PRO. Michrochip jsem už kontaktoval, je to v řešení. Docela
jsem si s tou chybou v překladači užil. 

 

Míra.

 

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20160823/8ce3b0e0/attachment.html>


Další informace o konferenci Hw-list