SDCC pod Winows 7 64 bit

Andrej Jancura aj.hwlist na gmail.com
Pátek Leden 3 22:01:14 CET 2014


No zjavne robi problem riadok XBYTE[addr] = val; resp jeho inverzna
funkcia. ked sa pozriete na definiciu

#define XBYTE ((unsigned char volatile xdata *) 0)
data BYTE val;

tak kvalifikatory xdata a data urcuju o aky typ pamati sa jedna. xdata by
mala byt externa ramka a 16 bitova adresa, co koresponduje s hlaskou const
char...

error 47: indirections to different types assignment
from type 'const-char   [61] code '
to type 'volatile-char fixed '

Skuste v tej Vasej definici
#define XBYTE ((unsigned char volatile __xdata *) 0)

to xdata bez tych __ . myslim, ze xdata je standartne klucove slovo v
kompilatoroch C pre x51 a netreba ho podciarkovat. To je dane historiou
vzniku jednotlivych kompilatorov a aj keil ich pouziva.

"volatile char fixed" by mohlo korespondovat s tou castou "data BYTE val".

Tuna Vam vsak uz okrem identifikacie problemu a nacrtu mozneho riesenia
dalej moc nepomozem. To treba uz niekoho, kto sa v tom vyzna lepsie ako ja.
Tak dufam, ze aspon nieco som Vam pomohol.

A.



2014/1/3 Jirka Mww <jirka.mww na gmail.com>

> No s tou hláškou si nevím rady , jde o čtení a zápis do EEPROM  89C51RD2
>
> Funkční verze ( pro staré SDCC ) vypadá takto :
>
> #define XBYTE ((unsigned char volatile xdata *) 0)
>
> a tady jsou ty funkce - je to opsané z návodu k RD2 kitu od HW serveru
>
>
> BYTE ReadEEPromByte(WORD addr)
> { data BYTE val;
>   while(EECON&EEBUSY){};  // wait until eeprom programming busy flag set
>   EECON |= EEE;           // enable eeprom space
>   val = XBYTE[addr];      // read byte
>   EECON &= ~EEE;          // disable eeprom space
>   return val;
> }
>
>
> // --- Write byte to given eeprom address. --- //
> void WriteEEPromByte(WORD addr, BYTE val)
> { EETIM = EETIM_VAL;
>   while(EECON&EEBUSY){};  // wait until eeprom programming busy flag set
>   EECON |= EEE;           // enable eeprom space
>   XBYTE[addr] = val;      // write byte
>   EECON = 0x50;           // write 0x5X followed by 0xAX to launch
> programming
>   EECON = 0xA0;
> }
>
> tu definici jsem upravil podle předchozí diskuze na
> #define XBYTE ((unsigned char volatile __xdata *) 0)
> ale to bude právě asi blbě a já tomuto zápisu nerozumím.
> Jestli můžete pomoci, budu vděčný
>
>
>
>
> Dne 3. ledna 2014 21:29 Andrej Jancura <aj.hwlist na gmail.com> napsal(a):
>
> Ten help a info treba bud cez /help /? alebo -help pripadne --help. V
>> najhorsom sa pozrite do manualu.
>>
>> Problem moze byt aj ta hlaska, ktoru dostanete pri samostatnom preklade a
>> bolo by dobre ju odstranit. Zial takto bez sdcc na w7 a zdrojaku Vam s tym
>> nepomozem. Ale myslim si, ze to moze byt primarny problem preco ten make
>> nezbehne. Proste nejaky z tych exacov nahlasi chybu a make potom nevie
>> vygenerovat dalsie option.
>>
>> A.
>>
>>
>> 2014/1/3 Jirka Mww <jirka.mww na gmail.com>
>>
>>> Když dám za make help nebo info, napíše to to samé - No rule to make
>>> target ....
>>> V PATH problem nebude, mám všechno v jednom adresáři.
>>> Když to překládám přímo SDCC tak to funguje, jen tam mám ještě nějakou
>>> chybu
>>> v typech proměnných
>>>
>>> error 47: indirections to different types assignment
>>> from type 'const-char   [61] code '
>>> to type 'volatile-char fixed '
>>>
>>> Je to ale přesně stejný soubor, který jde na starém SDCC pod XP přeložit
>>> normálně.
>>> Asi jsou tady nějaké lepší kontroly kompatibility proměnných.
>>>
>>>
>>>
>>>
>>> Dne 3. ledna 2014 21:14 Andrej Jancura <aj.hwlist na gmail.com> napsal(a):
>>>
>>> Dobry vecer,
>>>>
>>>> kedze ma to zaujima, tak sa skusim spytat, skusali ste vypisat info
>>>> alebo help toho make.exe v dos commmand line? Mohli by vam chybat nejake
>>>> option, ktore treba nastavit. Druhy problem by mohli byt nenastavene PATH
>>>> cesty... Ale to sme na urovni dosu, takze iste znalosti predpokladam.
>>>>
>>>> Skusal ste to bez toho make.exe ako som Vam napisal uz poobede, teda
>>>> zavolat compile.exe, link.exe, bin2hex.exe (za nazvy execov si dajte
>>>> command line prikazy z toho sdcc balika, mali by byt vsetky v adresari
>>>> bin.) A ked vam to zbehne same o sebe, tak si to automatizujte cez .bat
>>>> subor.
>>>>
>>>> A.
>>>>
>>>>
>>>> 2014/1/3 Jirka Mww <jirka.mww na gmail.com>
>>>>
>>>>> Dobrý večer,
>>>>>
>>>>> opravdu mám v tom použití make nějaký problém. Volám to jako dřív jen
>>>>> make all v .bat souboru , který je v adresáři, kde je vlastní zdrojový
>>>>> soubor
>>>>> i Makefile. Na starém PC to funguje, tady to píše
>>>>> *** No rule to make target  all. Stop.
>>>>> Můžete mi ještě pomoci ?
>>>>>
>>>>>
>>>>>
>>>>> Dne 3. ledna 2014 15:44 Jan Waclawek <konfera na efton.sk> napsal(a):
>>>>>
>>>>>> Nerozumiem, aky bol ten problem s make.
>>>>>>
>>>>>>
>>>>>> Ale s tym sfr at 0x80 P0 je problem ten, ze klucove slova sfr a at sa
>>>>>> teraz
>>>>>> maju pisat s dvomi podciarnikmi ako __sfr a __at
>>>>>>
>>>>>> Manual SDCC, kap. 1.5 Compatibility with previous versions:
>>>>>> ...special sdcc keywords which are not preceded by a double
>>>>>> underscore are
>>>>>> obsoleted (removed) in version
>>>>>> 3.2.0 and higher.
>>>>>>
>>>>>> Ak Vam to vsak nevypisalo chybovu hlasku typu
>>>>>> 89c51rd2.h:22: syntax error: token -> 'at' ; column 6
>>>>>> tak mate v tom pouzivani make este niekde nejaky problem. Tazko
>>>>>> povedat,
>>>>>> kym nezverejnite ten makefile.
>>>>>>
>>>>>> Doporucujem pouzivat dodany header <p89v51rd2.h>.
>>>>>>
>>>>>> wek
>>>>>>
>>>>>>
>>>>>> ----- Original Message ---------------
>>>>>> >Ne , tam nic není. Teï jsem zkusil spustit pøeklad souboru rovnou a
>>>>>> vypadá
>>>>>> >to, že je problém
>>>>>> >s deklaraèním souborem  89C51RD2.H  . Je tam deklarace jednobitových
>>>>>> >registrù stylem
>>>>>> >sfr at 0x80  P0     a to at to nezná.  Asi to tahle verze SDCC takto
>>>>>> neumí.
>>>>>> >Staré to nedìlalo problém.
>>>>>> >Budu muset nastudovat nìjaké dokumenty, jak to nadeklarovat jinak.
>>>>>> >
>>>>>>
>>>>>> _______________________________________________
>>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>>> Hw-list na list.hw.cz
>>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Zdravi
>>>>> Jirka OK1MWW
>>>>>
>>>>> _______________________________________________
>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>> Hw-list na list.hw.cz
>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>> Hw-list na list.hw.cz
>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>
>>>>
>>>
>>>
>>> --
>>> Zdravi
>>> Jirka OK1MWW
>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>
>>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>
>
> --
> Zdravi
> Jirka OK1MWW
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20140103/9265e094/attachment-0001.html>


Další informace o konferenci Hw-list