[elektro] atmel
Varsanyi Peter
varsanyi at t-online.hu
Sat Mar 10 08:54:00 CET 2012
Sziasztok!
Csendben olvasgatom itt az Atmel-es tanácsokat, és a véleményt, miszerint a
Pascalt (pláne a DOS-ost) el kellene felejteni. Elmondok valamit érdekesség
gyanánt...
Lehetne vitákat folytatni róla, de a DOS-os idõkben a Borland Turbo
Pascalja volt az egyik legmegbízhatóbb és legkönnyebben megtanulható
programnyelv. Nagyon nagy mértékben áttekinthetõ a kód, és a szoros
szintaktika miatt nem nagyon lehetett elkövetni elírásokat. A nyomkövetõ
funkciói pedig tökéletesek voltak! Nagyon nagy, több tízezer soros
(ügyviteli) programokat is írtam benne, félgrafikus menüvel (DOS-on!), a
legnagyobb Pascal kódom lefordítva a 400 kByte-ot közelítette.
Amikor áttértem mikrovezérlõre, rögtön belefutottam egy itthon szinte
teljesen ismeretlen Pascal fordítóba, az Embedded Pascalba:
<http://users.iafrica.com/r/ra/rainier/>
A fordító évekkel ezelõtt abba lett hagyva, nem igazán használható a
jelenleg letölthetõ formájában. De én mégis beleástam magam... Pár extra,
amit érdemes megemlíteni:
- A forrása teljes mértékben Turbo Pascal kompatibilissé tehetõ, ugyanaz a
forrás jól megírva egyszerre és változtatás nélkül fordítható Turbo Pascal
és Embedded Pascal alatt. Ezt úgy érte el, hogy a fordítási opciók
különfélék, így mindkét fordítónak lehet olyan feltételes fordítási
opciókat adni, hogy a nem neki szóló kódrészletet ne fordítsa le, ill.
gépspecifikus kódot rakjon be helyette; pl. az LCD-re küldendõ szöveget a
képernyõre küldje.
- A fentiek folyományaképp simán PC-n debuggoltam, és amikor tökéletes volt
a kód, csak átraktam mikrovezérlõbe. Volt pl. amikor egy 1500 oldalas
DLMS/COSEM protokollt kellett leprogramoznom, aminek a mintakódjait
Delphi-ben adták meg. A DLMS/COSEM értelmezõ rutinok (Õrült összetett kód,
aki nem ismeri magát a protokollt, el sem tudja képzelni, milyen bonyolult.
Nem tulzok, de szerintem én vagyok az egyetlen itthon, aki BITSZINTEN
tudja, mi mit csinál benne...) DOS alatt lettek letesztelve több száz
megabyte-nyi adatra, majd amikor tökéletes lett, UGYANAZ a forrás lett
be-include-olva 5 helyre:
- Embedded Pascal for 8052-vel 8052-es procira, egy már meglévõ régi
fejlesztésbe
- Embedded Pascal for AVR-el többféle AVR procira, az új fejlesztéseimre
- Free Pascalba, így LINUX-os értelmezõk is készültek, diagnosztikára
- Delphibe, így a Windows-on futó adatmegjelenítõ programba
- Free Pascal alatt WinCE-re is próbálgattam, de a WinCE ismeretének a
hiánya miatt abbahagytam; a kódom amúgy jól futott.
- És persze minden megvan DOS alatt is, nekem az a "bázis" a mai napig.
- A fordító beépítve tartalmaz egy Assembly fordítót, így a sebességet
igénylõ rutinokat (pl. interruptok) általában abban írom meg a végén, a
többit meg csak Pascalban. De minden kódfordítását ASM-ben is látom,
sokszor csak onnan kell kiemelni a lefordított kódot, és kicsit
letisztogatni, optimalizálni.
- A letölthetõ progi csak pár procit támogatott, de észrevettem, hogy a
konfig fájljai nagyon hasonlítanak az Atmel AVR Studió assemblerének konfig
fájljára. Írtam hát hozzá egy kis konverter progit, és máris a legújabb AVR
procikra is tudok fordítani, és használok is vagy egy tucat különféle
típust, mikor hova melyiket. A legnagyobb kódjaim AVR-re a 60-80 kByte-os
méretet elérik, és se panasz, se sebesség-reklamáció nincs rájuk. A
fejlesztésben is gyorsan haladok, mert az évek során minden szükséges
rutinkönyvtárat megírtam hozzá saját magam.
- Mivel én magam fejlesztek mindent kompletten, hardvert és szoftvert, nem
okoz gondot, hogy egy elvetemült fordítóval fordítok. Ellenben ritka okosan
van megírva, ha a srác nem hagyta volna abba a fejlesztését, ma piacvezetõ
Pascal fordító lehetne AVR-re. Szinte minimális számú baki van benne,
azokat meg már nagyon jól ismerem, nem futok bele mégegyszer.
Én természetesen tiszteletben tartom mások véleményét, hogy pl. a C a jövõ,
bár a mai JAVA-s világban ki tudja, meddig lesz az... De igenis lehet
Pascal alatt is kódot hordozni, PC-n fejleszteni-debuggolni mikrovezérlõs
kódokat, és a Free Pascalnak és Embedded Pascalnak hála pl. ugyanazt a
kódot lefordítani Dos, Linux, Win32, Win64, WinCE, ARM, AVR, 805x, Z80 alá.
Azt hiszem, ezt a teljesítményt még C-ben is nehezen csinálnátok utánam
páran... Pedig ehhez csak KÉT, alkalmasan megválasztott fordító kellett!
Szóval óvatosan a Pascal leszólásával!
Kétségtelen tény, hogy bajban lennék, ha egy beágyazott WEB szervert
kellene leprogramoznom, de egy USB protokollal se küzdenék, amikor ma
modul-szinten meg tudom vásárolni az USB-soros vagy Eth-soros
konvertereket. És a hazai gyártási volumeneket ismerve olcsóbbra is jön ki
egy ilyet bevágni, nulla szívással, mint nekilátni a netrõl összevadászni
include fájlokat, hibákat keresgetni benne, debuggolni, összepofozni a
saját kódunkkal, stb.
A fentieket tényleg csak mint érdekesség mondtam el, nem akarok senkit és
semmirõl meggyõzni. Sõt még csak a fordítómat sem ajánlom, mert eredeti
formájában nem használható, 8 éves know-how-t pedig nem fogok senkinek se
átadni, hiszen egyéni vállalkozóként gyakorlatilag ebbõl élek.
Bye:
Pepe
Mobil:(20)-942-7232 mailto:varsanyi at t-online.hu http://www.varsanyipeter.hu/
More information about the Elektro
mailing list