SDCC i definicja zmiennej o obszarze bitowym...

0

Spotkałem się z definicją zmiennej (kompilator keil dla 8051):

ubyte bdata a;
sbit LSB=a ^ 0;
sbit MSB=a ^ 7;

ubyte zdefiniowane jako unsigned char.
bdata to obszar z możliwością adresowania bitowego w RAM.
Czy jest możliwość podobnej definicji dla kompilatora SDCC?.
Może ktoś z Was ma do czynienia z tym kompilatorem i zna rozwiązanie problemu??

0

SDCC nie daje możliwości adresowania bitowego w RAM. Więcej o tym znajdziesz tutaj: http://www.maximintegrated.com/app-notes/index.mvp/id/3477

0

Ok. Dziękuję za informację. Mi się o uszy obiło ze SDCC tego nie potrafi. Trochę szkoda, ale to może bardziej zgodne z samym C.

0

Jeśli masz wybór to zarzuć SDCC i bierz keila :)

0

No ale jedni go chwalą za unikalne funkcje, drudzy klną..... Nie wiem. No i cena... nie wiem czy sam kompilator można zakupić, czy tylko całe środowisko (do prac domowych szkoda trochę kasy na kombajn). Zaraz idę szukać dystrybutora i ceny :/.

--
1600euro za pakiet kompilator/asembler. Trochę drogo.

0

Hm? Przecież wystarczy się zarejestrować i masz wersję studencką za free. http://www.keil.com/download/product/

0

No ale z ograniczeniem do 2kB Kodu tak?

The 8051 compiler, assembler, linker, and debugger are limited to 2 Kbytes of object code. Source code may be of any size.

0

Zgadza się. Powód, by pisać zwięźlej ;p

0

No ja dopiero zaczynam przygodę z C od tygodnia. Zdecydowałem , ze jeżeli program (termostat-higrostat na wyswietlaczu LED i z pamięcią eeprom i do tego 2 wyjścia na sterowanie i klawiatura dwu przyciskowa z multipleksowaniem) zmieszczę w 50-60% więcej kodu niż w asm, to pociągnę temat C:). No i napisałem (dziś rano skończyłem) W ASM wyszło jakieś 1050 bajtów a w C wyszło 2000 (przy kompilacji SDCC). No i teraz mam zagwozdkę. Nie mogę zapomnieć o ASM. Tam jest takie wszystko proste, a w C podoba mi się oderwanie od architektury na którą się pisze. Nie interesują mnie akumulatory, rejestry, ram i w ogóle. A ograniczenie do 2kB kodu powoduje ze nie będę używać takiego kompilatora bo i poco jak same tablice stałych zajmują dużo więcej. A szlag by to trafił. W SDCC brakuje mi właśnie tego adresowania bitowego i kręcenia bitami w lewo i prawo przez carry:)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.