Kniha programovani mikroprocesoru

Jan Waclawek konfera na efton.sk
Úterý Únor 22 11:32:50 CET 2011


>Microchip vyraba PIC16F pre to iste, ako Atmel vyraba 51-tky, teda
>zhusta pre podporu a nulove portovanie starych projektov a pre tych,
>ktorym tieto stare architektury prirastli k srdcu a nemaju chut si
>pripustit k sebe nieco novsie, nedajboze lepsie.

Lepsie ako '51 v tej triede nie je. ;-)

Seriozne, cely ten experiment s hadom je len ukazka toho, ze je lautr jedno, aky jednocip sa pouzije, ak mas poruke patricne nastroje. To je ako ked sa stavbari rozplyvaju nad Hebelom alebo Porfixom, a je to pritom stale len marketingovo nadupana ale inak prachsprosta porobetonova tehla. Ma nejake vlastnosti, s ktorymi treba ratat, ale su aj ine stavebne materialy, stare aj nove, a nie su ani lepsie ani horsie, su ine.


>Ale... je skutocne potrebne uvadzat mlade, nepopisane duse, v
>predpokladanom veku do 20 rokov, do sveta jednocipov pomocu kusku z
>roku 77 so vsetkymi dosledkami z - dnesneho pohladu - katastrofalnej
>architektury? To je asi tak katastrofalne ako vyucovat ich na '51-tke
>so vsetkymi styrmi (piatimi?) typmi pamatovych priestorov. PIC16 je
>jednoducho cisto spartanska RISC architektura, design kde prvotnym
>cielom bolo minimalizovat plochu kremiku bez ohladu na to, ako debilne
>sa programatorovi pracuje.


Zasa, ten vypad proti '51 je neadekvatny. Tie PIC su take ako pises, to beriem, ale '51 je praveze ukazka optimalizacie smerom k pouzitelnosti, ktora ani po 30 rokoch nestratila vo svojej triede opodstatnenie. To, ze sa z nutnosti pouzivala aj mimo adekvatnu oblas urcenia, je ina vec. (A minimalne 2 z tych 5 pamatovych priestorov v uvode vyuky vobec netreba ani spomenut).

O uceni nepopisanych dusi vid v dalsom.


>Ked uz sa mame drzat Microchipu, tak trebars 16-bity maju podstatne
>cistejsiu stavbu, programovat ich v asm je na prvy pohlad zlozitejsie
>(ma viac instrukcii), ale v skutocnosti clovek nemusi mysliet na to,
>kde v pamati prave je, co sa da a co sa neda urobit danou instrukciou,
>co ma prave odlozene v jednom W-cku, nestraca cas v prehadzovani
>vsetkeho cez W-cko atd... Navyse, nie vsetky instrukcie je treba
>pouzivat, pre zaciatok sa da vyjst s takym mnozstvom ako pre PIC16.


Hej, to si uz viackrat vravel. Samotny pocet instrukcii je samozrejme irelevantna zalezitost (aj ked predtym casto Microchipom spominana ako vyhoda), podstatnejsia je urcita strukturovanost, co ako pises je u PIC16 lepsia. To vsetko aj vo svetle mojich traumatickych skusenosti s BTFSC a spol. beriem a zapisujem si ako bod c.1.


>Druha vec je, ci je vobec treba zacinat s asm a nie rovno s vyssim
>jayzkom, realne asi s C-ckom.

Takze teraz k tym nepopisanym dusiam.
Toto zavisi od toho, cim chces tie duse popisat.
Ja si myslim (je to subjektivne a nie som praktizujuci ucitel, takze ma pokojne mozes zotriet), ze mozes vychovavat bud manazerov, ktori maju nejaky dunst o veci (myslim, ze dnes sa im hovori bakalari), alebo inzinierov, ktori naozaj vedia, o co ide. Tym prvym treba dat nejaky nadhlad, tym druhym zaklady. Tym prvym treba rozdat Arduino, tym druhym letovacky (a asembler). Ti druhi si potom cestu k C a inym najdu aj sami, staci im naznacit.

A samozrejme je tiez otazne, ake je ich kulturne pozadie. Ak v zivote nepoculi o procesoroch, tak im treba povedat, co to je a vysvetlit zakladne principy, podla moznosti na vsetkych dostupnych prikladoch (t.j. 6k8/6502, 8080/Z80, '51, ale aj klasicke PIC a trebars aj AVR, preco nie), t.j. poskytnut vseobecny rozhlad v oblasti, to dobre a aj to zle a aj dovody preco je to tak. No a potom ten jeden semester programovania v asembleri na '51 ukaze, ako to na jednom konkretnom priklade naozaj funguje. Pokojne sa za tym moze uzivit aj semester C resp. iny vyssi jazyk, s dorazom na tu kontinuitu medzi nizsim a vyssim jazykom.

Nejake argumentovanie o tom, ze v praxi sa ten ci onen procesor, jazyk, cokolvek pouziva viac ci menej je samozrejme uplna hovadina. Student nie je robot ktoreho v skole naprogramovali na nejaku konkretnu cinnost.



>Cize kreativita mi chyba preto, ze ta knizka vyzera ako kompilat
>vsetkeho mozneho postahovaneho zo siete (preto to deja-vu).
>Samozrejme, nebol by to prvy kompilat, takych je na lokalnom malom
>trhu kopa. 


No, mne to zase ako kompilat prilis nepripadalo (teda az na zoznam instrukcii, co s tym?), ale zase som celu knizku nevidel, len tie ukazky a obsah.



>Ich spolocnym znakom je to, ze vychadzaju (z pochopitelnych
>dovodov) s krizkom po funuse, napriklad kniha z PIC16F87x rok po tom,
>co ich Microchip oznacil za neperspektivne a nahradil ich novsim
>typom.

Tu sa vraciame k bodu c. 1. 

Ano, tie prvotne PICe boli nestastne obmedzene a nasledne rozsirovane, pretoze sa bez tych rozsireni nehodia ani na tie najjednoduchsie ulohy. No a prave preto, ak uz by sa mali pouzit PICe, kedze v skole sa maju riesit prave najjednoduchsie ulohy, tak netreba tie rozsirovane typy, a ani netreba mohutne periferie. Aj ked je dany typ v praxi zastaraly, na skolske ucely by mal stacit.

Tomu, ze PIC16 je na asemblerovanie ci vseobecne pouzitie jednoduchsi, tomu verim. Su tu urcite aj faktory ako skusenosti autora, dostupnost suciastok/vyvojovych prostriedkov, robustnost pre pouzitie v skolskom prostredi, cas potrebny na vypracovanie uloh vhodnych pre studentov.

Ono zase taku knihu napisat je o stupen menej trivialne nez ju citat/kritizovat (cim nevravim, ze netreba kritizovat).


>Jano, ty si este nikdy v zivote nevidel knihu, ktora vysla len preto,
>aby ju mohol autor odporucat svojim studentom a tym zaistil vypredanie
>nakladu knih?

Ale ano, len si nemyslim, ze to je nevyhnutne zle.


wek




Další informace o konferenci Hw-list