USOARE
@1. Enumerati componentele principale ale sistemului RaspberryPi.# @2. Ce este GPIO?# @3. Cum se poate încãrca un modul în nucleul Linux? Cum se poate elimina?# @4. Enumerati 2 metode prin care se poate aduce din exterior un fisier pe sistemul RaspberryPi.# @5. Care este tensiunea de alimentare pentru procesorul Broadcom de pe RaspberryPi?# @6. Care este arhitectura sistemului RaspberryPi? Cum afecteaza acest lucru modul de dezvoltare? # @7. Specificati comanda pentru bootloader-ul placii RaspberryPi prin care se poate afisa consola de Linux pe interfata ttyS1.# @8. Care este comanda din consola pentru a stinge ledul de pe RaspberryPi (presupunand ca initial a fost aprins).# @9. Care este relatia dintre functiile gpio_direction_output() si gpio_set_value()?# @10. Ce se executa in urma apelului module_init(init)?# @11. Ce operatie trebuie sa implementeze un device driver pentru a se putea executa comanda “cat” pe device node-ul asociat?# @12. Cate leduri are Epic Clock?# @13. La ce frecvente poate fi setat sa ruleze procesorul Broadcom pe platforma RaspberryPi?# @14. Cum se încarcă un anumit kernel pentru rulare în Qemu?# @15. Cum se pot adăuga aplicații noi într-un sistem Linux simulat prin Qemu? (Sistemul Linux este reprezentat printr-un kernel și o imagine a sistemului de fișiere)# MEDII_NON @1. Scrieti un script de initializare pentru sistemul RaspberryPi care aprinde LED-ul ACT folosind interfata /sys. Precizati calea si numele scriptului.# @2. Editati o pagina web care sa afiseze frecventa curenta a procesorului (de pe RaspberryPi) si sa o schimbe prin apasarea unui buton.# @3. Precizati ce fisiere trebuie editate si scrieti continutul relevant pentru aprinderea led-ului ACT la pornirea sistemului RaspberryPi si pentru stingerea lui la oprirea sistemului.# @4. Care este rolul sistemului de permisiuni pe Android si cum functioneaza acesta?# MEDII_PERIF @1. Scrieti un script de initializare pentru sistemul RaspberryPi care creeazã directorul /home/student si monteazã în el un sistem de fisiere tip tmpfs. Nu trebuie afisat mesaj de eroare dacã directorul existã deja. Precizati calea si numele scriptului.# @2. Scrieti un script de initializare pentru sistemul RaspberryPi care sterge continutul directorului /home/student, apoi copiazã în el fisierele si directoarele din /etc/skel. Nu trebuie afisat mesaj de eroare dacã directorul este gol. Precizati calea si numele scriptului.# @3. Precizati ce fisier trebuie editat si scrieti continutul relevant pentru configurarea interfetei de retea eth0 cu adresa IP 192.168.0.1/24 la pornirea sistemului RaspberryPi.# @4. Creati un script care sa logheze intr-un fisier data si ora pornirii sistemului. Specificati locatia lui in cadrul sistemului de fisiere.# HARD @1. Scrieti un modul de kernel Linux pentru RaspberryPi care controleazã 3 LEDuri conectate la pinii de GPIO 20,21,22. LEDurile vor fi aprinse secvential, unul o datã, lumina “deplasându-se” periodic între cele 3 LEDuri.# @2. Scrieti un modul de kernel Linux pentru RaspberryPi care controleazã un afisaj cu 4 cifre a câte 7 segmente. Cifrele vor fi aprinse secvential prin apelarea urmãtoarelor functii aflate într-un alt fisier (nu trebuie scrise): digits_off() - stinge toate cele 4 cifre digit_on(int index) - permite afisarea unei cifre pe pozitia index a ecranului (0…3) print_digit(int digit) - permite afisarea unei cifre (digit, 0…9) pe pozitia selectatã cu digit_on. La intrarea în standby a sistemului afisajul va fi oprit. Nu se impune ca numãrul sã fie dat de utilizator, poate fi hard-coded.# @3. Scrieti un modul de kernel Linux pentru RaspberryPi care clipeste periodic un LED. Perioada poate fi ajustatã din userspace prin scrierea într-un fisier special caracter.# @4. Scrieti un script de initializare pentru RaspberryPi ce ar asigura o minimã functionalitate sistemului (presupuneti cã este singurul script rulat la pornirea sistemului). Trebuie sã: montati /dev, /proc, /sys, /tmp, /usr; încãrcati modulele de kernel specificate în /etc/modules; configurati interfața de retea eth0 # @5. Scrieti un script de shell pentru RaspberryPi ce asigurã functionarea unui “program critic” prg, repornindu-l în caz cã se blocheazã sau se terminã. Pentru a monitoriza programul se va citi fisierul /tmp/prg, în care prg scrie o nouã valoare la fiecare secundã. Dacã valoarea nu se schimbã, programul este oprit si repornit, aprinzându-se si un LED pentru a semnala eroarea.#
USOARE @1. Enumerati componentele principale ale sistemului ATNGW100.# @2. Ce este GPIO?# @3. Cum se poate încãrca un modul în nucleul Linux? Cum se poate elimina?# @4. Enumerati 2 metode prin care se poate aduce din exterior un fisier pe sistemul ATNGW100.# @5. Cum poate fi parasita starea de standby in sistemul ATNGW100?# @6. Care este adresa PORTD si a registrului PIO_PER corespunzator portului B?# @7. Care este tensiunea de alimentare pentru procesorul AP7000?# @8. Care este arhitectura sistemului ATNGW100? Cum afecteaza acest lucru modul de dezvoltare? # @9. Specificati comanda pentru bootloader-ul placii ATNGW100 prin care se poate afisa consola de Linux pe interfata ttyS1.# @10. Care este comanda din consola pentru a stinge ledul B de pe NGW100 (presupunand ca initial a fost aprins).# @11. Care este relatia dintre functiile gpio_direction_output() si gpio_set_value()?# @12. Ce se executa in urma apelului module_init(init)?# @13. Ce operatie trebuie sa implementeze un device driver pentru a se putea executa comanda “cat” pe device node-ul asociat?# @14. Cate leduri are Epic Clock?# @15. La ce frecvente poate fi setat sa ruleze procesorul AP7000 pe platforma NGW100?# @16. Ce comanda se poate folosi pentru a accesa in Buildroot interfata de configurare pentru kernel-ul linux 2.6?# @17. Ce procesor este folosit în dispozitivul virtual versatilepb din Qemu?# @18. Cum se încarcă un anumit kernel pentru rulare în Qemu?# @19. Cum se pot adăuga aplicații noi într-un sistem Linux simulat prin Qemu? (Sistemul Linux este reprezentat printr-un kernel și o imagine a sistemului de fișiere)# @20. Enumerati cateva tipuri de dispozitive pe care ruleaza Android.# @21. Ce kernel de Linux are la baza Android?# @22. Enumerati senzorii de pe telefonul folosit in laborator.# @23. Ce este Logcat?# @24. Enumerati principalele directoare dintr-un proiect Android si precizati rolul lor.# @25. Cu ce difera masina virtuala Dalvik fata de masina virtuala Java?# @26. Care este rolul lui AndroidManifest.xml? Ce informatii se pot stoca in el?# MEDII_NON @1. Creati si configurati o interfatã de retea ce functioneazã prin portul USB al ATNGW100.# @2. Emulati o interfatã serialã prin portul USB al ATNGW100, folosind protocolul CDC-ACM. Creati un fisier special caracter ttyUSB0 în locatia conventionalã, cu major 127 si minor 0 pentru accesarea interfetei. Afisati caracterele primite prin interfatã.# @3. Scrieti un script de initializare pentru sistemul ATNGW100 care aprinde LED-urile folosind interfata /sys. Precizati calea si numele scriptului.# @4. Editati o pagina web care sa afiseze frecventa curenta a procesorului (de pe NGW100) si sa o schimbe prin apasarea unui buton.# @5. In urma recompilarii cu ajutorul buildroot a sistemului busybox, obtinem un nou binar 'busybox'. Cum se poate instala acesta manual si ce alte modificari sunt necesare pentru a instala noul utilitar? (Presupunand ca utilitarul nou-compilat este comanda 'ftp')# @6. Precizati ce fisiere trebuie editate si scrieti continutul relevant pentru aprinderea ledului A la pornirea sistemului ATNGW100 si pentru stingerea lui la oprirea sistemului.# @7. Descrieti structura generala a unei interfete grafice Android (Layout).# @8. Cum este descrisa orientarea pe un sistem Android?# @9. Cu ce difera masina virtuala Dalvik fata de masina virtuala Java?# @10. Care sunt cele 4 metode HTTP folosite intr-o implementare REST? Precizati care este rolul lor fata de un element si fata de o colectie de elemente.# @11. Care sunt cele 4 operatii de baza ale unui ContentProvider si cum se mapeaza ele la cele 4 metode HTTP folosite intr-o implementare REST?# @12. Care este rolul sistemului de permisiuni pe Android?# MEDII_PERIF @1. Scrieti un script de initializare pentru sistemul ATNGW100 care creeazã directorul /home/student si monteazã în el un sistem de fisiere tip tmpfs. Nu trebuie afisat mesaj de eroare dacã directorul existã deja. Precizati calea si numele scriptului.# @2. Scrieti un script de initializare pentru sistemul ATNGW100 care sterge continutul directorului /home/student, apoi copiazã în el fisierele si directoarele din /etc/skel. Nu trebuie afisat mesaj de eroare dacã directorul este gol. Precizati calea si numele scriptului.# @3. Precizati ce fisier trebuie editat si scrieti continutul relevant pentru configurarea interfetei de retea eth1 cu adresa IP 192.168.0.1/24 la pornirea sistemului ATNGW100.# @4. Editati o pagina web care afiseaza variabilele din bootloader (fw_printenv).# @5. Descrieti ciclul de viata al unui Activity in Android. # @6. Dati doua exemple de clase din Android folosite in lucrul cu threadurile si descrieti pe scurt functionalitatea pe care o ofera. # @7. Creati un script care sa logheze intr-un fisier data si ora pornirii sistemului.Specificati locatia lui in cadrul sistemului de fisiere.# @8. Descrieti popularea unei liste dintr-o interfata Android, lista in care fiecare element are o imagine si un text. Se cere XML-ul care descrie elementul listei si un pseudocod pentru popularea efectiva a listei.# @9. Descrieti popularea unui meniu de optiuni dintr-o interfata Android. Meniul are trei itemi: Close, Settings, Help. Se cere XML-ul care descrie meniul si un pseudocod pentru oferirea functionalitatilor meniului: pentru close si help se presupune ca avem implementate functiile close() si help(), iar pentru settings trebuie pornita activatatea SettingsActivity.# @10. Creati si populati un tabel intr-o baza de date SQLite, cu lista examenelor pe care le aveti de dat in sesiune. Pentru fiecare examen, trebuie precizat: materie, profesor, data.# @11. Cum captam informatiile de la senzori pe un sistem Android? Dati un exemplu in pseudocod.# HARD @1. Scrieti un modul de kernel Linux pentru ATNGW100 care controleazã cele 3 LEDuri. LEDurile vor fi aprinse secvential, unul o datã, lumina “deplasându-se” periodic între cele 3 LEDuri.# @2. Scrieti un modul de kernel Linux pentru ATNGW100 care controleazã un afisaj cu 4 cifre a câte 7 segmente. Cifrele vor fi aprinse secvential prin apelarea urmãtoarelor functii aflate într-un alt fisier (nu trebuie scrise): digits_off() - stinge toate cele 4 cifre digit_on(int index) - permite afisarea unei cifre pe pozitia index a ecranului (0…3) print_digit(int digit) - permite afisarea unei cifre (digit, 0…9) pe pozitia selectatã cu digit_on. La intrarea în standby a sistemului afisajul va fi oprit. Nu se impune ca numãrul sã fie dat de utilizator, poate fi hard-coded.# @3. Scrieti un modul de kernel Linux pentru ATNGW100 care clipeste periodic un LED. Perioada poate fi ajustatã din userspace prin scrierea într-un fisier special caracter.# @4. Scrieti un script de initializare pentru ATNGW100 ce ar asigura o minimã functionalitate sistemului (presupuneti cã este singurul script rulat la pornirea sistemului). Trebuie sã: montati /dev, /proc, /sys, /tmp, /usr; încãrcati modulele de kernel specificate în /etc/modules; configurati interfetele de retea eth0 si eth1, cu rutare între ele si NAT; porniti dnsmasq.# @5. Scrieti un script de shell pentru ATNGW100 ce asigurã functionarea unui “program critic” prg, repornindu-l în caz cã se blocheazã sau se terminã. Pentru a monitoriza programul se va citi fisierul /tmp/prg, în care prg scrie o nouã valoare la fiecare secundã. Dacã valoarea nu se schimbã, programul este oprit si repornit, aprinzându-se si un LED pentru a semnala eroarea.# @6. Se transmite un pachet de 5 octeti de pe un senzor wireless cu ATmega128RFA1 cu optiunea de calcul CRC automat. Stiind ca primii trei octeti sunt 0x01F1C1, ce valoare au cei doi octeti de CRC? Puteti obtine valoarea prin orice metode (calcul manual, wolfram alpha, simulare, etc.) # @7. Descrieti o modalitate prin care, in Android, se pot crea si gestiona mai multe ecrane intr-un singur Activity. Oferiti schematic un XML si code snippets.# @8. Descrieti pasii prin care se realizeaza conectarea cu un dispozitiv Bluetooth din codul Android, dand ca exemplu cateva bucati cheie de cod. # @9. Cum putem face o modificare in interfata de Android, dintr-un alt thread decat threadul principal? Dati un exemplu.# @10. Scrieti un pseudocod care sa introduca intr-o baza de date SQLite o valoare random intre 20.5 si 25.5, o data pe ora. Se presupune ca folosim tabelul Temperature, cu doua coloane: timestamp si value.#
USOARE @1. Enumerati componentele principale ale sistemului ATNGW100.# @2. Ce este GPIO?# @3. Cum se poate încãrca un modul în nucleul Linux? Cum se poate elimina?# @4. Enumerati 2 metode prin care se poate aduce din exterior un fisier pe sistemul ATNGW100.# @5. Cum poate fi parasita starea de standby in sistemul ATNGW100?# @6. Care este adresa PORTD si a registrului PIO_PER corespunzator portului B?# @7. Care este tensiunea de alimentare pentru procesorul AP7000?# @8. Care este arhitectura sistemului ATNGW100? Cum afecteaza acest lucru modul de dezvoltare? # @9. Specificati comanda pentru bootloader-ul placii ATNGW100 prin care se poate afisa consola de Linux pe interfata ttyS1.# @10. Care este comanda din consola pentru a stinge ledul B de pe NGW100 (presupunand ca initial a fost aprins).# @11. Care este relatia dintre functiile gpio_direction_output() si gpio_set_value()?# @12. Ce se executa in urma apelului module_init(init)?# @13. Ce operatie trebuie sa implementeze un device driver pentru a se putea executa comanda “cat” pe device node-ul asociat?# @14. Cate leduri are Epic Clock?# @15. La ce frecvente poate fi setat sa ruleze procesorul AP7000 pe platforma NGW100?# @16. Ce comanda se poate folosi pentru a accesa in Buildroot interfata de configurare pentru kernel-ul linux 2.6?# @17. Ce fel de interfata avem intre microcontroller-ul ATMega128RFA1 si transceiver-ul lui?# @18. Care este dimensiunea maxima a unui pachet transmis de catre o platforma ce foloseste microcontroller-ul ATMEGA128RFA1?# @19. Care este preambulul pachetelor la transceiver-ul de pe ATMega128RFA1?# @20. Enumerati cateva tipuri de dispozitive pe care ruleaza Android.# @21. Ce kernel de Linux are la baza Android?# @22. Enumerati senzorii de pe telefonul folosit in laborator.# @23. Ce este Logcat?# @24. Enumerati principalele directoare dintr-un proiect Android si precizati rolul lor.# @25. Cu ce difera masina virtuala Dalvik fata de masina virtuala Java?# @26. Care este rolul lui AndroidManifest.xml? Ce informatii se pot stoca in el?# MEDII_NON @1. Creati si configurati o interfatã de retea ce functioneazã prin portul USB al ATNGW100.# @2. Emulati o interfatã serialã prin portul USB al ATNGW100, folosind protocolul CDC-ACM. Creati un fisier special caracter ttyUSB0 în locatia conventionalã, cu major 127 si minor 0 pentru accesarea interfetei. Afisati caracterele primite prin interfatã.# @3. Scrieti un script de initializare pentru sistemul ATNGW100 care aprinde LED-urile folosind interfata /sys. Precizati calea si numele scriptului.# @4. Editati o pagina web care sa afiseze frecventa curenta a procesorului (de pe NGW100) si sa o schimbe prin apasarea unui buton.# @5. In urma recompilarii cu ajutorul buildroot a sistemului busybox, obtinem un nou binar 'busybox'. Cum se poate instala acesta manual si ce alte modificari sunt necesare pentru a instala noul utilitar? (Presupunand ca utilitarul nou-compilat este comanda 'ftp')# @6. Precizati ce fisiere trebuie editate si scrieti continutul relevant pentru aprinderea ledului A la pornirea sistemului ATNGW100 si pentru stingerea lui la oprirea sistemului.# @7. Descrieti structura generala a unei interfete grafice Android (Layout).# @8. Cum este descrisa orientarea pe un sistem Android?# @9. Cu ce difera masina virtuala Dalvik fata de masina virtuala Java?# @10. Care sunt cele 4 metode HTTP folosite intr-o implementare REST? Precizati care este rolul lor fata de un element si fata de o colectie de elemente.# @11. Care sunt cele 4 operatii de baza ale unui ContentProvider si cum se mapeaza ele la cele 4 metode HTTP folosite intr-o implementare REST?# @12. Care este rolul sistemului de permisiuni pe Android?# MEDII_PERIF @1. Scrieti un script de initializare pentru sistemul ATNGW100 care creeazã directorul /home/student si monteazã în el un sistem de fisiere tip tmpfs. Nu trebuie afisat mesaj de eroare dacã directorul existã deja. Precizati calea si numele scriptului.# @2. Scrieti un script de initializare pentru sistemul ATNGW100 care sterge continutul directorului /home/student, apoi copiazã în el fisierele si directoarele din /etc/skel. Nu trebuie afisat mesaj de eroare dacã directorul este gol. Precizati calea si numele scriptului.# @3. Precizati ce fisier trebuie editat si scrieti continutul relevant pentru configurarea interfetei de retea eth1 cu adresa IP 192.168.0.1/24 la pornirea sistemului ATNGW100.# @4. Editati o pagina web care afiseaza variabilele din bootloader.# @5. Creati un fisier de topologie pentru Avrora in care nodurile sa fie amplasate in varfurile unui tetraedru regulat de latura 10.# @6. Creati un fisier de topologie pentru Avrora in care nodurile sa fie amplasate in varfurile unui cub de latura 2.# @7. Creati un script care sa logheze intr-un fisier data si ora pornirii sistemului.Specificati locatia lui in cadrul sistemului de fisiere.# @8. Descrieti popularea unei liste dintr-o interfata Android, lista in care fiecare element are o imagine si un text. Se cere XML-ul care descrie elementul listei si un pseudocod pentru popularea efectiva a listei.# @9. Descrieti popularea unui meniu de optiuni dintr-o interfata Android. Meniul are trei itemi: Close, Settings, Help. Se cere XML-ul care descrie meniul si un pseudocod pentru oferirea functionalitatilor meniului: pentru close si help se presupune ca avem implementate functiile close() si help(), iar pentru settings trebuie pornita activatatea SettingsActivity.# @10. Creati si populati un tabel intr-o baza de date SQLite, cu lista examenelor pe care le aveti de dat in sesiune. Pentru fiecare examen, trebuie precizat: materie, profesor, data.# @11. Cum captam informatiile de la senzori pe un sistem Android? Dati un exemplu in pseudocod.# HARD @1. Scrieti un modul de kernel Linux pentru ATNGW100 care controleazã cele 3 LEDuri. LEDurile vor fi aprinse secvential, unul o datã, lumina “deplasându-se” periodic între cele 3 LEDuri.# @2. Scrieti un modul de kernel Linux pentru ATNGW100 care controleazã un afisaj cu 4 cifre a câte 7 segmente. Cifrele vor fi aprinse secvential prin apelarea urmãtoarelor functii aflate într-un alt fisier (nu trebuie scrise): digits_off() - stinge toate cele 4 cifre digit_on(int index) - permite afisarea unei cifre pe pozitia index a ecranului (0…3) print_digit(int digit) - permite afisarea unei cifre (digit, 0…9) pe pozitia selectatã cu digit_on. La intrarea în standby a sistemului afisajul va fi oprit. Nu se impune ca numãrul sã fie dat de utilizator, poate fi hard-coded.# @3. Scrieti un modul de kernel Linux pentru ATNGW100 care clipeste periodic un LED. Perioada poate fi ajustatã din userspace prin scrierea într-un fisier special caracter.# @4. Scrieti un script de initializare pentru ATNGW100 ce ar asigura o minimã functionalitate sistemului (presupuneti cã este singurul script rulat la pornirea sistemului). Trebuie sã: montati /dev, /proc, /sys, /tmp, /usr; încãrcati modulele de kernel specificate în /etc/modules; configurati interfetele de retea eth0 si eth1, cu rutare între ele si NAT; porniti dnsmasq.# @5. Scrieti un script de shell pentru ATNGW100 ce asigurã functionarea unui “program critic” prg, repornindu-l în caz cã se blocheazã sau se terminã. Pentru a monitoriza programul se va citi fisierul /tmp/prg, în care prg scrie o nouã valoare la fiecare secundã. Dacã valoarea nu se schimbã, programul este oprit si repornit, aprinzându-se si un LED pentru a semnala eroarea.# @6. Se transmite un pachet de 5 octeti de pe un senzor wireless cu ATmega128RFA1 cu optiunea de calcul CRC automat. Stiind ca primii trei octeti sunt 0x01F1C1, ce valoare au cei doi octeti de CRC? Puteti obtine valoarea prin orice metode (calcul manual, wolfram alpha, simulare, etc.) # @7. Scrieti un program pentru o platforma ATMega128RFA1 in care transmiteti acelasi pachet intre doua noduri la infinit. Presupuneti ca aveti functia setState() implementata si aveti la dispozitie toate macro-urile disponibile si in timpul laboratorului (de exemplu, pentru lucrul cu frame-buffer-ul, variabila care determina id-ul nodului, etc.). Nodul 0 este cel care transmite primul.# @8. Scrieti un program pentru o platforma cu ATMega128RFA1 in care un nod transmite pachete de 3 octeti random o data pe secunda (puteti folosi _delay_ms, nu e nevoie de timer) iar celalalt aprinde un LED in functie de paritatea sumei octetilor din pachet, fara octetii de CRC# @9. Cum putem face o modificare in interfata de Android, dintr-un alt thread decat threadul principal? Dati un exemplu.# @10. Scrieti un pseudocod care sa introduca intr-o baza de date SQLite o valoare random intre 20.5 si 25.5, o data pe ora. Se presupune ca folosim tabelul Temperature, cu doua coloane: timestamp si value.#