<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="lyceum/1.0.3" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>exec</title>
	<link>http://blog.elektronika.lt/exec</link>
	<description>:)</description>
	<pubDate>Wed, 18 Jun 2008 20:05:27 +0000</pubDate>
	<generator>http://lyceum.ibiblio.org/?v=1.0.3</generator>
	<language>en</language>
			<item>
		<title>XML biblioteka</title>
		<link>http://blog.elektronika.lt/exec/2008/06/07/xml-biblioteka/</link>
		<comments>http://blog.elektronika.lt/exec/2008/06/07/xml-biblioteka/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 13:06:15 +0000</pubDate>
		<dc:creator>exec</dc:creator>
		
		<category>~ Programavimas</category>

		<guid isPermaLink="false">http://blog.elektronika.lt/exec/2008/06/07/xml-biblioteka/</guid>
		<description><![CDATA[Kai išeina prisijungti prie interneto, reikia ir išmokti skaityti jį. Tam &#8216;pasigaminau&#8217; DOM (įkraunantį visą puslapį į atmintį) HTML parser&#8216;į. Šis daiktas taip pat labai praverčia kuriant duomenų failus programoms, nes pačio failo struktūrą galima lengvai keisti ir pridėti naujų funkcijų. Internete, žinoma, yra pilna tokių bibliotekų prikurta, BET ten nėra įgyvendintas lengvas persijungimas tarp [...]]]></description>
			<content:encoded><![CDATA[<p>Kai išeina prisijungti prie interneto, reikia ir išmokti skaityti jį. Tam &#8216;pasigaminau&#8217; DOM (įkraunantį visą puslapį į atmintį) HTML <em>parser</em>&#8216;į.<a id="more-1812"></a> Šis daiktas taip pat labai praverčia kuriant duomenų failus programoms, nes pačio failo struktūrą galima lengvai keisti ir pridėti naujų funkcijų. Internete, žinoma, yra pilna tokių bibliotekų prikurta, BET ten nėra įgyvendintas lengvas persijungimas tarp XML ir HTML (o tų skirtumų nėra daug - tik kai kuriuos tag&#8217;us reikia palik atvirus, kai kuriuos būtinai uždaryt (pvz negali būti &#038;ltscript/&#038;gt)). Taip pat šioje bibliotekoje įgyvendinta paieška pagal <em>tag</em>&#8216;ų vardus ir atributus, kas palengvina tam tikro elemento (pavyzdžiui  duomenų įvedimo formos) ieškojimą HTML dokumente. </p>
<p><a href="http://blog.elektronika.lt/wp-content/blogs/95/uploads//xml%20file.tar.gz">xml file.tar.gz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elektronika.lt/exec/2008/06/07/xml-biblioteka/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WinInet funkcijų biblioteka</title>
		<link>http://blog.elektronika.lt/exec/2008/06/07/wininet-funkciju-biblioteka/</link>
		<comments>http://blog.elektronika.lt/exec/2008/06/07/wininet-funkciju-biblioteka/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 12:59:08 +0000</pubDate>
		<dc:creator>exec</dc:creator>
		
		<category>~ Programavimas</category>

		<guid isPermaLink="false">http://blog.elektronika.lt/exec/2008/06/07/wininet-funkciju-biblioteka/</guid>
		<description><![CDATA[Kadangi anksčiau teko dirbti su projektais, reikalaujančiais ryšio su internetu, reikėjo bibliotekos, besitvarkančios su WinInet funkcijomis. Kadangi visi internete rasti projektai naudoja UTF kodavimą, o man reikėjo tiesiog ryšio pačiomis paprasčiausiomis priemonėmis - ASCII kodavimu, teko biblioteką pasirašyti pačiam (naudoju C++)
Biblioteka:
klasė xTConnection - prisijungti prie interneto.
klasė xTSession - prisijungti prie serverio (taip pat susitvarko su [...]]]></description>
			<content:encoded><![CDATA[<p>Kadangi anksčiau teko dirbti su projektais, reikalaujančiais ryšio su internetu, reikėjo bibliotekos, besitvarkančios su WinInet funkcijomis.<a id="more-1811"></a> Kadangi visi internete rasti projektai naudoja UTF kodavimą, o man reikėjo tiesiog ryšio pačiomis paprasčiausiomis priemonėmis - ASCII kodavimu, teko biblioteką pasirašyti pačiam (naudoju C++)</p>
<p>Biblioteka:</p>
<p>klasė xTConnection - prisijungti prie interneto.<br />
klasė xTSession - prisijungti prie serverio (taip pat susitvarko su <em>session cookies</em>, registruoti cookies windowsuose nemačiau reikalo)<br />
klasė xTResource - iš serverio atsisiųsti dokumentą. </p>
<p>klasė xTSimpleHTTPClient - jei nereikia papildomų funkcijų (kaip papildomi header&#8217;iai užklausose į serverį) ir reikia tik gauti HTML puslapį, (kuris iškart įkraunamas į <em>parser</em>&#8216;į (doroklis dar tikrai neprigijęs žodis)) ši klasė būtų kaip tik. Prisijungi prie serverio ir siunties. Reikia xTXMLFile klasės (xmlfile.h/xmlfile.cpp failuose)</p>
<p>Biblioteka palaiko GET, PUT ir POST metodus.</p>
<p><a href="http://blog.elektronika.lt/wp-content/blogs/95/uploads//xml-http%20clients.tar.gz">xml-http clients.tar.gz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elektronika.lt/exec/2008/06/07/wininet-funkciju-biblioteka/feed/</wfw:commentRss>
		</item>
		<item>
		<title>malloc</title>
		<link>http://blog.elektronika.lt/exec/2008/06/07/malloc/</link>
		<comments>http://blog.elektronika.lt/exec/2008/06/07/malloc/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 12:25:49 +0000</pubDate>
		<dc:creator>exec</dc:creator>
		
		<category>~ Programavimas</category>

		<guid isPermaLink="false">http://blog.elektronika.lt/exec/2008/06/07/malloc/</guid>
		<description><![CDATA[Kurdamas mp3 grotuvą susidūriau su problema: esami malloc algoritmai arba pritaikyti sistemoms su Memory Management Unit (MMU), arba yra tiesiog kvaili. Esant tokiai situacijai, parašiau savo malloc algoritmą. 
Kas gavosi:
  - 12B/blokas atminties praradimas + ~1% atminties sunaudojimas algoritmo rekimėms
  - skirtas naudoti sistemoms su 1-10MB atminties
  - ir malloc() ir free() [...]]]></description>
			<content:encoded><![CDATA[<p>Kurdamas mp3 grotuvą susidūriau su problema: esami malloc algoritmai arba pritaikyti sistemoms su Memory Management Unit (MMU), arba yra tiesiog <em>kvaili</em>. Esant tokiai situacijai, parašiau savo malloc algoritmą. <a id="more-1809"></a><br />
Kas gavosi:<br />
  - 12B/blokas atminties praradimas + ~1% atminties sunaudojimas algoritmo rekimėms<br />
  - skirtas naudoti sistemoms su 1-10MB atminties<br />
  - ir malloc() ir free() funkcijos vyksta per apibrėžtą laiką (<em>constant time</em>). malloc() per max 1000 procesoriaus ciklų, free() - per max 300 ciklų.</p>
<p><a href="http://blog.elektronika.lt/wp-content/blogs/95/uploads//malloc.tar.gz">malloc.tar.gz</a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elektronika.lt/exec/2008/06/07/malloc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>mp3 grotuvas</title>
		<link>http://blog.elektronika.lt/exec/2008/05/25/mp3-grotuvas/</link>
		<comments>http://blog.elektronika.lt/exec/2008/05/25/mp3-grotuvas/#comments</comments>
		<pubDate>Sun, 25 May 2008 19:51:41 +0000</pubDate>
		<dc:creator>exec</dc:creator>
		
		<category>~ Elektronika</category>

		<guid isPermaLink="false">http://blog.elektronika.lt/exec/2008/05/25/mp3-grotuvas/</guid>
		<description><![CDATA[Kažkurią 2007 birželio dieną draugas parodė nusipirktą žaislą. Pasakė, kad jam nebereikia ir kad gali atiduot už 40 lt. Pavartęs internetą,   pamačiau, kad iš šito žaislo galima kažką padaryti - jau anksčiau galvojau apie muzikos grotuvą, juolab kad pats normalaus neturėjau. 
 
Specfikacijos:
 - 66 MHz ARM7TDMI procesorius
 - 2 MB SDRAM
 - [...]]]></description>
			<content:encoded><![CDATA[<p>Kažkurią 2007 birželio dieną draugas parodė nusipirktą žaislą. Pasakė, kad jam nebereikia ir kad gali atiduot už 40 lt. Pavartęs internetą,   pamačiau, kad iš šito žaislo galima kažką padaryti - jau anksčiau galvojau apie muzikos grotuvą, juolab kad pats normalaus neturėjau. <a id="more-1747"></a><br />
 <img src="http://www.ucdot.org/archive/juicebox.gif" alt="Juicebox žaisliukas" /></p>
<p>Specfikacijos:<br />
 - 66 MHz ARM7TDMI procesorius<br />
 - 2 MB SDRAM<br />
 - 8 MB NAND flash (iš pradžių buvo ne tik kad neperrašomas flashas, bet dar ir be korpuso - apipiltas plastmase - daug vargo gramdant ir kuriant platformą kitam chipui)<br />
 - Audio DAC<br />
 - Portas į pasaulį: labai geras daiktas, nes išeina atminties magistralė (be adreso šynos, bet yra chip select laidas), atvestas SPI ir dar keli IO pin&#8217;ai. Labai gerai daryt kažkokį praplėtimą baigus sistemą.</p>
<p>Projekto eiga:<br />
2007-05-30  Pirkau juicebox už 40lt. Pirmas įspūdis - labai geras. Lygiai toks pat ir galimybių vertinimas.<br />
2007-06-05  Užkūriau JTAG. Pamačiau, kad vis dėl to gamyklinis flash niekam tikęs (vieną kartą programuojamas, OTP), tai nieko su juo nepadarysiu.<br />
2007-06-06  Nulitavau ir nubrūžinau flash mikrę. Juicebox nebeveikia. Neveikia ir visas &#8217;softas&#8217;, nes, tik kaip vėliau supratau, neinitializuojamas procas ir periferija.<br />
2007-07-09  Užsisakiau normalų flash&#8217;ą - SST39VF6401B<br />
2007-07-13  Gavau flash&#8217;ą, pradėjau daryt &#8216;platformą&#8217; jam.<br />
2007-07-15  Platforma pagaminta. Tiesa, geras tik vienas egzempliorius iš 4.<br />
2007-07-20  Į platformą įlitavau flash&#8217;ą. Tikrinu ar nėra kontaktų, kur nereikia.<br />
2007-07-22  Tikrinimas baigtas..<br />
2007-08-30  Pradėjau lituot platformą ant juicebox. Daug daug mažų laidukų.<br />
2007-09-02  	Litavimas baigtas. OCD Commander&#8217;is rodo, kad į flash&#8217;ą įsirašo. Procesoriaus initializuoti vis dar nemoku<br />
2007-09-04  	Pradėjau naudoti normalų kompiliatorių - Rowley CrossStudio.Į ramus programą įrašo, tačiau paleidus jį po kelių sekundžių kažkodėl lūžta..  LCD neveikia. Tačiau jau moku initializuot SDRAM&#8217;us. Ilgos gedimo paieškos..<br />
2007-12-22  	Pagaliau išsiaiškinau, kame problema. Pagal defaulta buvo įjungiamas watchdog&#8217;as, kuris ir resetindavo viską. LCD vistiek neveikia.<br />
2007-12-27  LCD jau užsikuria pusei sekundės. Vienam porte buvo įkištas laidukas į LCD, kuris jį išjungdavo (to aš nežinojau initializuodamas portą ir visus pin&#8217;us numušdamas į 0)<br />
2007-12-28  LCD trumpo veikimo priežastis - išsijungiantis matricos maitinimas.<br />
2007-12-29  Pasirodo buvo dar vienas pin&#8217;as, valdantis LCD matricos maitinimą. LCD veikia!<br />
2007-12-30  Periferijos bandymai: DAC veikia, taimeriai veikia, DMA veikia. Žodžiu viskas veikia<br />
2007-12-31  Pradėjau žaist su SD/MMC. Iškart darau SPI per DMA.<br />
2008-01-02  Neveikia<br />
2008-01-03  Neveikia, nes su DMA neskaito. Padarius &#8216;paprastą&#8217; SPI (bitbang būdu), viskas veikia.<br />
2008-01-04  Programa, nuskaitanti SD/MMC kortelę sektorius po sektoriaus veikia. Taip pat moka ir viską trinti. Šios funkcijos nenaudojau.<br />
2008-01-05  Pradėjau galvot apie operacinę sistemą. Išsirinkau FreeRTOS. Nagrinėjamės kodą..<br />
2008-01-13	Operacinės nebus, kol negalėsiu įrašyt normaliai į flash. Crossstudio kažkokia  sistema su loaderiais neveikia. Vėl ilgos gedimo paieškos.<br />
2008-03-07  Pagaliau pasidariau loaderį, kuris sugeba įrašyt į flash. Tačiau normaliai įsirašo gal tik kas penktas kartas (CrossStudio kad blogai įsirašė, rodo visada)<br />
2008-03-09  Rašom savo malloc funkciją. Veikia, nors ir ne per greitai. Atmintis labai greitai fragmentuojasi.<br />
2008-03-10  Bandom FAT&#8217;us. FAT veikia. Nors iš pradžių kodas nemokėjo dirbti su LFN, tai pavyko ištaisyti, bet tik failo vardo rodymui. Sukurti normalaus failo kol kas nepavyks.<br />
2008-03-16  Sistemą pavyko paleisti iš flash. FreeRTOS paleidimui kliūčiū nebėra.<br />
2008-03-17  Pasirodo mano kurta malloc() f-ja yra beveik tokia pat, kaip ir standartinė<br />
2008-03-19  Pradėjau dirbt su FreeRTOS source&#8217;u.<br />
2008-03-20  Sutvarkiau FreeRTOS kodo dalį, susijusią su technine įranga. FreeRTOS veikia.<br />
2008-03-21  Supratau, kad galima priverst LCD kontrolerį į LCD perduot ne 256 spalvas, kaip yra dabar, bet visas 4096 (reikia naudoti ne Color, o Monochrome (16 color) rėžimą). Nesiseka tinkamai išdėlioti pikselių.<br />
2008-03-23  Išsiaiškinau, kad viską gadina kažkoks swap bitas nustatymuose.<br />
2008-03-24  LCD pagaliau rodo normalias spalvas.<br />
2008-03-29  Pradedu bandymus su MP3 kodu<br />
2008-04-01  Negroja<br />
2008-04-02  Negrojo, nes neveikė DMA. Dabar groja triukšmą.<br />
2008-04-05  Padidinus buferį groja dainos fragmentus, kas kelias sekundes peršokdamas į priekį. Kažkas negerai su sinchronizacija.<br />
2008-04-06  Gal penkis kartus perrašiau grojimo funkciją, bet nepadeda.<br />
2008-04-12  Pasirodo programoj reikėjo vienoj vietoj minusą su pliusu sukeist <img src='http://blog.elektronika.lt/exec/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Groja!<br />
2008-05-30  Pradedu daryti korpusą ir taisyti PCB netobulumus<br />
2008-06-06  Sutvarkytas malloc<br />
2008-06-17 Pagaliau normaliai įrašo į FLASH<br />
Kas daroma dabar:<br />
 - Korpusas<br />
 - MP3 grotuvo sistema - playlist&#8217;ai ir kitokie sh.</p>
<p>&#8230;.<br />
Ką reikia padaryti:<br />
 - Normalus vartotojo interfeisas<br />
 - Pritaikyti FreeRTOS, kad norint pridėti galimybių, nereiktų perkompiliuot sistemos = konfiguraciją sukišti į atskirus failus flashe.<br />
 - Korpusas</p>
<p>&#8211; Keletas nuotraukų:<br />
<a href="http://img128.imageshack.us/img128/1390/p6020004vb3.jpg"><img src="http://img128.imageshack.us/img128/1390/p6020004vb3.th.jpg" alt="" /></a><br />
<a href="http://img127.imageshack.us/img127/3487/p6020006uy9.jpg"><img src="http://img127.imageshack.us/img127/3487/p6020006uy9.th.jpg" alt="" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elektronika.lt/exec/2008/05/25/mp3-grotuvas/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
