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