SDCC pod Winows 7 64 bit

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


Fajn, tak aspon sme nasli, ze treba pozriet pamatove identifikatory v novej
verzii.


Zelam dobru noc a zajtra hodne zdaru.

A.



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

> 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
>
> _______________________________________________
> 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/819e431c/attachment.html>


Další informace o konferenci Hw-list