Povratak indeksa...
|
Zebra
Tagovi:
Hardware
Software
Digital
Hek
PLD
Sadržaj:
- Init
- Finish
- Novi JTAG kabl
Init
- Vrijeme:
- 11.11.2011 1:47:23AM
- Opis:
Našao sam na Hreliću pločicu iz printera za rfid kartice i da kupim pločicu me privukao FPGA. Uz FPGA zanimljiv je i SH3 CPU! 133MHz + 8MB RAM. Nešto poprilično močno za neki printer! Uz pomoć JTAG-a sam časkom skužio kud je što spojeno. Usput sam izvukao i disasemblao bootsektor i doznao da su dva pina za status LED-ice, a odmah imam i algoritam za programiranje FPGA-a! :)
Za portanje Linuxa nije bilo potrebno niti 100 linija koda, ali zato je bilo potrebno jaaaako puno debugiranja! :) Najveći problemi su bili s endianessom i kod u-boot-a i kod Linuxa. Imali su nekoliko bugova po tom pitanju. Na oba je falio i support za moj konkretan flash chip. Ali ostalo je više-manje sve već bilo funkcionalno. Od sučelja prema vanjskom svijetu postoji samo serija s 115200 bauda (11.25kiB/s). Kopiranje kernela i filesystema traje ubitačno dugo i svaki pokušaj vremenski jako puno košta. Srećom, tu je FPGA na kojeg ću spojiti MMC i neki ethernet čip! :) Kao osnova u userlandu stavio sam BusyBox. To čudo je prejednostavno! :D Ima doslovno sve ugrađeno (od inita, preko shella do raznoraznih jutilitija), konfigurira se jednostavno kao i kernel, a radi sve iz prve! :)
- Slike:
-
Hakiranje pločice
LEDs, PS2, LCD bias, SPI fork
Prvi uspješan test LCD-a
Uspješno prikazivanje terminala na LCD-u
Booting screen
- Ekranouslici:
-
u-boot
Booting Linux
Finish
- Vrijeme:
- 16.12.2011 11:51:25PM
- Opis:
Dodana je pločica za beklajt i pločica za ethernet i MMC, napisani su drajveri i posložen je userspace (Linux from scratch). Cijeli uređaj je sad složen kao jedna cjelina i više skoro ništa ne visi izvan uređaja. Još bih samo trebao nabaviti konektor za JTAG kabel i reset tipke (neki čudan je, pa ga nema u HR). U galeriji je moguće vidjeti novo dodane dijelove te video u kojem je prikazano bootanje, pokretanje lynxa (konzolni browser) i paralelno u drugom terminalu nibblesa (zmija originalno za 80x25, pa je čudno na 40x30). Video je ×2 jer čini se da 8MB RAM-a baš i nije puno... :P LED-ica "RUN" postavljena je kao heartbeat LED-ica (brzina blinkanja ovisi o tome koliko se CPU muči), a LED-ica "COM" postavljena je kao HDD LED-ica, tj. prikazuje korištenje memorijske kartice (MMC). Još su tu dvije crvene LED-ice koje se ne koriste: ALARM i FAULT. Po defaltu pri bootu FAULT blinka, ali se gasi odmah pri inicijalizaciji userspacea (init skripta). ALARM LED-icu sam mislio koristiti umjesto "beep" signala, ali to nekom drugom prilikom! :) Na matičnoj ima i jedan konektor za drugi serijski port s power žicama. Taj konektor bi se dao iskoristiti za bluetooth što bi bilo fora za npr. tipkovnicu. Ali to sigurno neću ni pokušati upogoniti dok ne dodam još 8MB SDRAM-a (ima slobodno mjesto na matičnoj)! :) RTC na matičnoj, kao i ADC su još uvijek neiskorišteni. Ostavio sam mjesta da se i to upogoni ako ću ikad nastaviti. Od zanimljivih instaliranih programa tu je i dropbear: mali ssh klijent i server. Ali jao mene što je to sporo! :) Stavio sam i mutt (konzolni mail klijent), ali nisam ga još setupirao. Dosta vremena sam izgubio pokušavajući natjerati da radi DNS i getpwuid. Za to treba setupirati /etc/nsswitch.conf i staviti par libc-ovih lajbrrija što tada nisam znao. Ti lajbrriji i nisu baš najbolje dokumentirani, pa je trebalo malo da skužim koji je minimalni potrebni set (svega parsto kilobajta je slobodno u flashu). U primjetima stavljaju "compat" kao drajver za passwd, ali taj prije parsiranja /etc/passwd pokušava još nešto preko interneta, a nije imao još neki dodatni lib kojeg učitava s dlopen, pa je odustao. Najobičniji drajver za passwd je zapravo "file", a isto se može koristiti uz DNS i za još neke stvari. Bez tih lajbrrija gethostbyname i passwd tiho umru i ne jave baš nikakvu grešku. Jedino je pomoću strace moguće doznati što se zbiva. Još jedna zanimljiva stvar je određivanje hostnejma. /etc/hostname učitava initskripta i pomoću hostname programa kaže kernelu koji mu je hostname. Zanimljivo da zapravo kernel sam ne zna (ili ne pokuša doznat) svoj hostname. :)
- Sheme:
-
- Video:
-
- Slike:
-
Inverter, ethernet, power supply input
Backlight inverter
Ethernet
Testiranje sabirnice SPI pomoću shift registra
Patchwork
JTAG chain
- Downloadovi:
-
Novi JTAG kabl
- Vrijeme:
- 31.1.2013 9:51:24PM
- Opis:
S Farnella sam naručio konektor koji paše u JTAG socket tako da taj kabel više nije fiksno zalemljen.
Usput sam uslikao nekoliko kvalitetnijih slikica.
- Slike:
-
Komentari
Trenutno nema komentara.
|