C na jednocipy - nastroje

Michal HW michalgregor@centrum.cz
Pátek Červenec 14 13:06:04 CEST 2006


Konecnce zkousim C na slozitejsi aplikaci. Oproti asm je to pomoc. Mam tam 
spoustu podminek ve stylu:
if ((A<B) AND (C+D==10) AND ( (Vysledky[Ukazatel].Data[Pozice] &0xF0)==10 
....
(Ukazatel - word, Vysledky - structura)
Jeden radek! V asm to byla pekna fuska na x radku, spousta navesti.

Tak jsem popad 18F8622, MPLAB a ICD2.
Vysledek nic moc:
-Cyklus uprava, kompilace, napaleni: desitky sekund
-Krokovani: kdyz se omezi vypisy, tak kolem 2s
-Krokovani: plny vypis 10-15 sekund.

Po dvou dnech jsem to vse hodil na dno supliku a presel na BC++ na starem 
pocitaci.
Upravil jsem modul hlavni.c - main(). Mam v nem vsechny funkce zavisle na 
HW. Celkem pohoda, drobnosti jako AD, nektere bitove vstupy budu ladit 
pozdeji. Taky jsem predelal lcd.c

Co z toho:
Kompilace 1-2 sekund
Plna emulace UARTU. Posilam data z hotoveho zarizeni, takze si muzu ladit na 
realnych datech.
Spousta breakpointu.
Plna emulace tlacitek.
Plna emulace Lcd 2x20 (vcetne zelene barvy :-)) )
Muzu si vypsat jakekoliv promenne a pripadne je upravit, vcetne promennych v 
"externi SRAM"

Co nejde:
BC++ nezna 0b10101010, musel jsem vsechny binarni hodnoty prepsat na hexa.
Mam na PC jen dva COMy, ale cilova deska ma 4.
Nevim jestli to pujde prelozit na C18 od Hitechu.

Takze jsem par tydnu v klidu - nez se dostanu k zaverecnemu ladeni na cilove 
desce pres ICD2.
Co mi ale chybi je pekny C editor. Nejlepe pro wokna. v BC++ chybi funkce 
pro automaticke naformatování textu a nahrazeni ve vsech otevrenych 
projektech.
Michal Gregor





Další informace o konferenci Hw-list