SDCC pod Winows 7 64 bit

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


Skuste este prepisat ten XBYTE takto:

#define XBYTE ((xdata volatile unsigned char *) 0), lebo mam pocit, ze inak
to berie ako programovu pamat, a teda konstanty v eprom.

A.


2014/1/3 Andrej Jancura <aj.hwlist na gmail.com>

> 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/e6ffbab6/attachment.html>


Další informace o konferenci Hw-list