SDCC pod Winows 7 64 bit

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


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
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20140103/cab62486/attachment.html>


Další informace o konferenci Hw-list