SDCC pod Winows 7 64 bit

Jirka Mww jirka.mww na gmail.com
Pátek Leden 3 22:37:34 CET 2014


Ty dvě __ před __data tam samozřejmě mám.  To co doporučujete, jsem už
většinou udělal.
Pořád ale předpokládám, že je to jen problém nové verze SDCC, protože se
starou to
žádnou chybu nehlásí a přeložený program korektně funguje.
Budu pátrat dál, ale až zítra.


Dne 3. ledna 2014 22:32 Andrej Jancura <aj.hwlist na gmail.com> napsal(a):

> No ano, ale zjavne sa jedna o problem identifikacie pamatovych priestorov.
> Mozno by stacilo pozriet niekam do manualu. Ta eeprom je totiz definovana
> ako volatile pointer s adresou 0. A kedze pointer je aj identifikator pre
> polia, tak sa pristupuje priamo na danu adresu XBYTE[addr]... Tak pozrite
> do nejakych hlavickovych suborov, ci sa to v tej novej verzii SDCC
> nezmenilo, pripadne pozrite manual na temu pamatove identifikatory a ako
> posledne pozrite datasheet od mcu, kde sa k tej eeprom pristupuje v
> adresnom priestore a podla toho pouzite pamatovy identifikator. Mimochodom
> este ma napadlo, ze potom tie dve __ musite dat aj pred __data BYTE val vo
> funkcii ReadEEpromByte.
>
>
> A.
>
> 2014/1/3 Jirka Mww <jirka.mww na gmail.com>
>
>> No tak přesně tohle jsem už zkoušel, kromě toho že tato verze SDCC
>> striktně trvá na tom že xdata musí mít to podtržení.
>> Píše se to v návodu a skutečně to bez toho nefunguje.
>> Já v zásadě to makro XBYTE na nic nepotřebuju, kdyby se mi podařilo nějak
>> naadresovat to EEpromku
>> přímo, byl bych spokojen. Ale protože jsem to dřív jen sprostě opsal z
>> příkladu k RD2 kitu, tak teď jsem v koncích.
>>
>>
>> Dne 3. ledna 2014 22:09 Andrej Jancura <aj.hwlist na gmail.com> napsal(a):
>>
>> 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
>>>>>
>>>>>
>>>>
>>>
>>> _______________________________________________
>>> 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
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20140103/ad2be52c/attachment-0001.html>


Další informace o konferenci Hw-list