THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Ενσωματωμένα Συστήματα Πραγματικού Χρόνου => Topic started by: lady_of_winter on May 01, 2016, 23:41:09 pm



Title: [Ενσωματωμένα] Εργασία 2016
Post by: lady_of_winter on May 01, 2016, 23:41:09 pm
ανέβηκε η εργασία στο ετημμυ

αντε ξεκινάτε  :D :D :D


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: sterpapi on May 16, 2016, 14:28:37 pm
Έχει κάνει κανείς κάτι από την εργασία να μας δώσει κάποια βοήθεια πώς και από πού να ξεκινήσουμε?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: TrueForce on May 16, 2016, 16:46:56 pm
Είμαι η μόνη που βρίσκει την φετινή εργασία FULL ενδιαφέρουσα...;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: RaiDeR on May 16, 2016, 18:20:32 pm
φουλ ενδιαφερουσα ειναι αλλα ειμαστε και φουλ ασχετοι  :D καταφερες να κανεις εστω και ενα πρωτο βημα ? εγω φορτωσα το prex στο bochs αλλα δεν εχει ουτε text editor  >:( καμια βοηθεια ?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Κάρβουνο on May 16, 2016, 21:48:20 pm
Σε τρολλάρει ο βλάκας.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Xbaremenos on May 18, 2016, 16:50:46 pm
Γενικά να το παλέψουμε με το Prex ? Υπάρχει καμιά άλλη πρόταση ?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Indy on May 29, 2016, 16:55:46 pm
Είναι υποχρεωτική;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Exomag on May 29, 2016, 17:00:59 pm
Είναι υποχρεωτική;

Ναι, πρέπει να κάνεις εργασία και παρουσίαση για να περάσεις το μάθημα.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Xbaremenos on May 29, 2016, 17:38:52 pm
Επειδή με "έφαγε" αρκετά το θέμα με το Prex, αφήνω εδώ τα βήματα που ακολούθησα
για να φτιάξω ενα Bootable USB που φορτώνει το Prex.

Θα χρειαστούμε :
1.) PowerISO ή άλλο software για χειρισμό .iso αρχείων.
2.) Rufus ή κάποιο άλλο software για την δημιουργία bootable USB
3.) USB (  :D )

Πάμε στο http://prex.sourceforge.net/downloads.html (http://prex.sourceforge.net/downloads.html)
και επιλέγουμε στην κατηγορία LiveCD Image το αρχείο prex-0.8.0.i386-nommu.iso.gz.
( Μονο τα no - mmu τρέχουν σε μένα, δεν είμαι σίγουρος ακόμα αν είναι λόγω USB ή γενικά
   έτσι θα έπρεπε να είναι.)

Κατεβάζουμε και κάνουμε unZIP το αρχείο, έτσι ώστε να έχουμε στα χέρια μας ένα .iso αρχείο.
Ανοίγουμε με το PowerISO το εν λόγω αρχείο και βλέπουμε δύο πράγματα, ένα boot.catalog και ένα prex.img
Κάνουμε extract το prex.img κάπου.

Και τέλος με το Rufus, επιλέγουμε το USB μας, το αρχείο prex.img (DD file) και FAT32 format και γίναμε!

Απο δω και πέρα λογικά θα πρέπει να μπορεί να κάνει boot απο το USB  :)

Cheers


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: lady_of_winter on May 29, 2016, 19:11:49 pm
Επειδή με "έφαγε" αρκετά το θέμα με το Prex, αφήνω εδώ τα βήματα που ακολούθησα
για να φτιάξω ενα Bootable USB που φορτώνει το Prex.

Θα χρειαστούμε :
1.) PowerISO ή άλλο software για χειρισμό .iso αρχείων.
2.) Rufus ή κάποιο άλλο software για την δημιουργία bootable USB
3.) USB (  :D )

Πάμε στο http://prex.sourceforge.net/downloads.html (http://prex.sourceforge.net/downloads.html)
και επιλέγουμε στην κατηγορία LiveCD Image το αρχείο prex-0.8.0.i386-nommu.iso.gz.
( Μονο τα no - mmu τρέχουν σε μένα, δεν είμαι σίγουρος ακόμα αν είναι λόγω USB ή γενικά
   έτσι θα έπρεπε να είναι.)

Κατεβάζουμε και κάνουμε unZIP το αρχείο, έτσι ώστε να έχουμε στα χέρια μας ένα .iso αρχείο.
Ανοίγουμε με το PowerISO το εν λόγω αρχείο και βλέπουμε δύο πράγματα, ένα boot.catalog και ένα prex.img
Κάνουμε extract το prex.img κάπου.

Και τέλος με το Rufus, επιλέγουμε το USB μας, το αρχείο prex.img (DD file) και FAT32 format και γίναμε!

Απο δω και πέρα λογικά θα πρέπει να μπορεί να κάνει boot απο το USB  :)

Cheers

<3 <3 <3


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: talkshowhost on June 11, 2016, 13:32:06 pm
Η προθεσμία λέει ,είναι μέχρι το τέλος της εξεταστικής. Πότε εννοεί ακριβώς, ξέρουμε?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: κύριος Φασόλης on June 11, 2016, 19:06:46 pm
guys αυτο "Να γραφεί κώδικας που να ξεκινά με το boot, και να μπαίνει σε ατέρμονα βρόγχο" εχει βρει κανεις πως γινεται? η τουλαχιστον να μπορει να δωσει κανεαν hint?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: joal on June 19, 2016, 23:09:23 pm
Η προθεσμία λέει ,είναι μέχρι το τέλος της εξεταστικής. Πότε εννοεί ακριβώς, ξέρουμε?

"Εννοούμε την επίσημη, όπως είναι στο πρόγραμμα (1/7)"

Η απάντηση του Δημήτρη σε mail.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Alex_corfu on June 22, 2016, 18:04:45 pm
Γνωρίζει κανείς αν αρκουν αυτα τα functions και αν πρέπει να τρεχει σε PC ο κώδικας?Μπορουμε να γραψουμε το κώδικα σε C ή....?
http://www.freertos.org/Configuring-a-real-time-RTOS-application-to-use-software-timers.html  (http://www.freertos.org/Configuring-a-real-time-RTOS-application-to-use-software-timers.html)
http://www.freertos.org/FreeRTOS-Software-Timer-API-Functions.html (http://www.freertos.org/FreeRTOS-Software-Timer-API-Functions.html)


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: fcdimitr on June 24, 2016, 15:08:35 pm
Για να κάνετε compile επιτυχώς το prex σε 64bit Linux κάντε τις ακόλουθες αλλαγές:

Στο αρχείο mk/own.mk αλλάζετε τα:

  • CFLAGS= -m32
  • CPPFLAGS= -m32
  • LDFLAGS= -m elf_i386 -L/usr/lib/gcc/x86_64-pc-linux-gnu/6.1.1/32/libgcc.a
  • ASFLAGS= --32

Στο αρχείο mk/gcc.mk αφαιρούμε από την γραμμή 47 το -lgcc ώστε να μείνει PLATFORM_LIBS+=   -L$(LIBGCC_PATH)


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Indy on June 27, 2016, 18:14:17 pm
Βγαίνει σε 2 μέρες;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nlogn on June 27, 2016, 19:18:42 pm
Βγαίνει σε 2 μέρες;
1)
Αν ξεκινήσεις τώρα δε θα βγάλεις άκρη,
γιατί η εκφώνηση ακόμα διαμορφώνεται. (edit: από πλευράς λειτουργικού)                       (το prex δεν ήταν και η καλύτερη επιλογή...)

2)
Όταν διαμορφωθεί
θα σου βγει σε 2 μέρες.
Εξαρτάται πόσο χρόνο θα σου πάρει να βρεις που να βάλεις τον κώδικα σου και να
μάθεις το λειτουργικό.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Xbaremenos on June 27, 2016, 20:09:13 pm
Έχουμε καμιά ιδέα πως απο ένα .elf που είναι το λειτουργικό + app, μπορουμε να δημιουργήσουμε bootable USB ?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nlogn on June 27, 2016, 21:08:06 pm
Έχουμε καμιά ιδέα πως απο ένα .elf που είναι το λειτουργικό + app, μπορουμε να δημιουργήσουμε bootable USB ?


Αν έχεις windows μπορείς να χρησιμοποιήσεις το win image και να κάνεις bootable USB από το floppy image που υπάρχει ανεβασμένο στη σελλίδα του prex.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Xbaremenos on June 27, 2016, 21:19:23 pm
Αν έχεις windows μπορείς να χρησιμοποιήσεις το win image και να κάνεις bootable USB από το floppy image που υπάρχει ανεβασμένο στη σελλίδα του prex.

Έχω linux, και μέχρι τώρα το UNetBootin δεν κάνει ιδιαίτερα καλή δουλειά, πάει να κάνει boot και μετά τα παρατάει !?!.
Btw, τώρα προσπαθώ να κάνω την εργασία με αυτό : https://github.com/RIOT-OS/RIOT/wiki/Introduction#compiling-riot (https://github.com/RIOT-OS/RIOT/wiki/Introduction#compiling-riot)

διότι το prex μου έβγαλε την πίστη. Γενικά έτρεχε το bootable USB που έφτιαχνα απο το Prex-0.8.0.img, αλλά όταν έκανα compile το source και άλλαζα το prexos με το δικό μου, απλά δεν bootαρε..


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Indy on June 27, 2016, 21:24:26 pm
Η εκφώνηση ακόμα διαμορφώνεται;; 3 μέρες πριν απ την προθεσμία; ...
Υπάρχει πουθενά καμιά πρότυπη, ή έχει κανείς τίποτα να πάρουμε καμια ιδέα?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nlogn on June 27, 2016, 21:26:42 pm
Έχω linux, και μέχρι τώρα το UNetBootin δεν κάνει ιδιαίτερα καλή δουλειά, πάει να κάνει boot και μετά τα παρατάει !?!.
Btw, τώρα προσπαθώ να κάνω την εργασία με αυτό : https://github.com/RIOT-OS/RIOT/wiki/Introduction#compiling-riot (https://github.com/RIOT-OS/RIOT/wiki/Introduction#compiling-riot)

διότι το prex μου έβγαλε την πίστη. Γενικά έτρεχε το bootable USB που έφτιαχνα απο το Prex-0.8.0.img, αλλά όταν έκανα compile το source και άλλαζα το prexos με το δικό μου, απλά δεν bootαρε..

Γενικά οι 2 bootloader είναι διαφορετικοί στην έκδοση 0.9 και 0.8

Επίσης η έκδοση 0.9.0 του λειτουργικού έχει ΖΟΥΖΟΥΝΙΑ!
και δε δε δίνει δικαίωμα στον χρήστη να χειριστεί την κονσόλα
Αυτό είναι το πρόβλημα που έχουν και ο διδακτορικός με τον Πιτσιάνη.


Προσπαθώ εδώ και μέρες να βγάλω άκρη τι δε λειτουργεί σωστά σε αυτή την έκδοση.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nlogn on June 27, 2016, 21:28:39 pm
Η εκφώνηση ακόμα διαμορφώνεται;; 3 μέρες πριν απ την προθεσμία; ...
Υπάρχει πουθενά καμιά πρότυπη, ή έχει κανείς τίποτα να πάρουμε καμια ιδέα?

πρότυπη  ;D

Το ίδιο θα ζητηθεί με το χρονόμετρο.
Για το mp3 player συμβουλή: μη το αγγίξετε καν...
   θα πρέπει να γράψετε δικούς σας drivers.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Xbaremenos on June 27, 2016, 21:40:18 pm
Γενικά οι 2 bootloader είναι διαφορετικοί στην έκδοση 0.9 και 0.8

Επίσης η έκδοση 0.9.0 του λειτουργικού έχει ΖΟΥΖΟΥΝΙΑ!
και δε δε δίνει δικαίωμα στον χρήστη να χειριστεί την κονσόλα
Αυτό είναι το πρόβλημα που έχουν και ο διδακτορικός με τον Πιτσιάνη.


Προσπαθώ εδώ και μέρες να βγάλω άκρη τι δε λειτουργεί σωστά σε αυτή την έκδοση.


Αφού λοιπόν το 0.9 και το 0.8 έχουν διαφορετικούς Bootloaders, δεν μπορώ να πάρω το image του ενός και να το βάλω στου άλλου.

Αλλά επίσης για το 0.9 δεν έχουμε έτοιμο floppy image, σε ρωτάω πως κατάφερες να κάνεις το σκέτο prexos απο το 0.9 να τρέξει ?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nlogn on June 27, 2016, 21:56:16 pm
Αφού λοιπόν το 0.9 και το 0.8 έχουν διαφορετικούς Bootloaders, δεν μπορώ να πάρω το image του ενός και να το βάλω στου άλλου.

Αλλά επίσης για το 0.9 δεν έχουμε έτοιμο floppy image, σε ρωτάω πως κατάφερες να κάνεις το σκέτο prexos απο το 0.9 να τρέξει ?
το αρχικό μου makefile το άλλαξα και το έκανα ως εξής:

Code:
include ./conf/config.mk
export SRCDIR
SUBDIR= boot dev sys usr mk
include $(SRCDIR)/mk/subdir.mk

fd.img: all prexos
make -C bsp/boot/x86/tools/bootsect
mformat -i fd.img -a -C -f 1440 -B bsp/boot/x86/tools/bootsect/bootsect.bin ::
mcopy -i fd.img prexos ::

image.iso: fd.img
genisoimage -b fd.img -o image.iso fd.img

# We imagine that our 20M "disk" has 320 cylinders, 8 heads, and 16 sectors/cylinder.
# We partition it into four partitions, roughly 5 MB each, all typed as FAT16.
hd.raw:
qemu-img create $@ 20M
printf ",80,6\n,80,6\n,80,6\n,,6\n" | sfdisk -C 320 -H 8 -S 16 $@



Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nlogn on June 27, 2016, 22:52:41 pm
Λοιπόν
παρακάτω θα περιγράψω τι ακριβώς συμβαίνει στην έκδοση 0.9.0:

Όταν κάνουμε boot βγάζει ένα μύνημα μόνο ότι κάνει boot
και μετά τίποτα άλλο.

Το έψαξα παραπάνω και κατέληξα:
Η έκδοση 0.9.0 έχει bug και αυτά είναι
1) είτε στην printf
(ναι κάνουν δικιά τους υλοποίηση στο boot κομμάτι ξαφνικά στην έκδοση 0.9.0
και άλλη στο υπόλοιπο λειτουργικό )

2) είτε στη φόρτωση των κομματιών κώδικα στα αρχεία ".S" όπου υπάρχει ένα
πολύ περίεργο κομμάτι, διότι στο bootsect.S κάνει το παρακάτω:

228>    ljmp    $0x3000, $0x0

όπου το 0x3000 ορίζεται ως
     #define ENTRY_SEG        0x3000
στα σχόλια

Έπειτα στο head.S που υποτίθεται ότι είναι η συνέχεια έχουμε το εξής κουφό:

/*
  * boot_entry - Entry point for prex boot loader.
  *
  * We assume boot sector copied us at 0x30000.
  */

όπου 0x30000 ορίζεται στο bootsect.S ως
  *  >30000 -      ... Image load address

Οπότε μάλλον μπερδευτήκαν και η τελευταία έκδοση δεν είναι ολοκληρωμένη,
απλά είναι bug-αρισμένη...
Τεσπα απλά αν είναι να χρησιμοποιήσει κάποιος το prex
πρέπει να χρησιμοποιήσει την έκδοση 0.8.0


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nlogn on June 27, 2016, 22:55:53 pm
Μετά από αυτό η εκφώνηση σταματά να διαφορφώνεται όπως είπα (ίσως λανθασμένα) παραπάνω.

Χρησιμοποιήστε
είτε
 prex-0.8.0  (edit: Αν θέλετε να χάσετε ώρες από τη ζωή σας χωρίς νόημα)
είτε
 κάποιο άλλο RTOS όπως ο Xbaremenos


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Indy on June 30, 2016, 20:09:13 pm
Πού την ανεβάζουμε; δε βλέπω κάτι στο ethmmy


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Ragnar Lothbrok on July 04, 2016, 23:37:36 pm
Κανα RTOS της προκοπης εχετε να προτεινετε; to qnx neutrino φαινεται τιμιο, εχει και gui, αλλα μετα απο 30 μερες πρεπει να σκασεις λεφτα για να παρατεινεις το license.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on July 12, 2016, 10:02:39 am
Κανα RTOS της προκοπης εχετε να προτεινετε; to qnx neutrino φαινεται τιμιο, εχει και gui, αλλα μετα απο 30 μερες πρεπει να σκασεις λεφτα για να παρατεινεις το license.

Τελείωσε την εργασία σε 30 μέρες τότε  :P

Εγω αυτή τη στιγμή κοιτάω λίγο το TinyOS που παίζει να είναι και αυτό τίμιο, απλά δεν υποστηρίζεται πολύ τώρα τελευταία. Έχει και ένα tutorial για το πως να το εγκαστήσεις σε VM, αλλά είναι αρκετά παλιό, σε φάση έχει οδηγίες για Debian 6 και το virtual disk image που σου λέει να κατεβάσεις δεν είναι καν στον server πλέον. Όπως και να χει, όποιος έχει όρεξη ας ρίξει μια ματιά παραπάνω, μπορεί να έχει ζουμί και αυτό.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: mitsoschelsea on July 12, 2016, 10:28:19 am
Η εργασία με το ρολόι θέλει pThreads έτσι;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nikos1 on July 12, 2016, 20:58:13 pm
επειδη ειμαι ολιγον ασχετος πως ανοιγουμε καποιο αρχειο για να γραψουμε κωδικα στο prex? Στα ubuntu π.χ, ανοιγουμε με pico κτλ... εδω τι κανουμε ??


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nlogn on July 17, 2016, 15:24:29 pm
Η εργασία με το ρολόι θέλει pThreads έτσι;
Δε θα χρειαστεί απαραίτητα:
Αν είναι η μόνη εφαρμογή δεν τρέχεις και άλλες πέρα από το λειτουργικό.
 Επίσης εξαρτάται σε τι λειτουργικό θα την κάνεις.

επειδη ειμαι ολιγον ασχετος πως ανοιγουμε καποιο αρχειο για να γραψουμε κωδικα στο prex? Στα ubuntu π.χ, ανοιγουμε με pico κτλ... εδω τι κανουμε ??

Υποτίθεται ότι κάνεις (λειτουργικό + app) compile σε ένα binary αρχείο:
ethmmy: [Το OS και το app να είναι ένα binary που θα τρέχει στο vm]

Οπότε,
1)πρώτα φτιάξε τον κωδικά σου για το χρονόμετρο εξωτερικά του λειτουργικού,
όπως θα έκανες για οποιοδήποτε άλλο πρόγραμμα.
2)Μετά δες τι σου προσφέρει το λειτουργικό που διάλεξες από ρουτίνες.
3)Αντιστοίχισε τις εντολές που έβαλες με αυτές του λειτουργικού.
4)Έπειτα κάνε το compile μαζί με το λειτουργικό
5) και ενσωματωσέ.

Πολλά από τα παραπάνω βήματα γίνονται με αλλαγές στα makefiles.

Γενικά δεν είναι η απλή διαδικασία
1)γράφω πρόγραμμα,
2)το κάνω compile
3) και το εκτελώ.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: mitsoschelsea on July 17, 2016, 19:17:09 pm
Δε θα χρειαστεί απαραίτητα:
Αν είναι η μόνη εφαρμογή δεν τρέχεις και άλλες πέρα από το λειτουργικό.
 Επίσης εξαρτάται σε τι λειτουργικό θα την κάνεις.

Υποτίθεται ότι κάνεις (λειτουργικό + app) compile σε ένα binary αρχείο:
ethmmy: [Το OS και το app να είναι ένα binary που θα τρέχει στο vm]

Οπότε,
1)πρώτα φτιάξε τον κωδικά σου για το χρονόμετρο εξωτερικά του λειτουργικού,
όπως θα έκανες για οποιοδήποτε άλλο πρόγραμμα.
2)Μετά δες τι σου προσφέρει το λειτουργικό που διάλεξες από ρουτίνες.
3)Αντιστοίχισε τις εντολές που έβαλες με αυτές του λειτουργικού.
4)Έπειτα κάνε το compile μαζί με το λειτουργικό
5) και ενσωματωσέ.

Πολλά από τα παραπάνω βήματα γίνονται με αλλαγές στα makefiles.

Γενικά δεν είναι η απλή διαδικασία
1)γράφω πρόγραμμα,
2)το κάνω compile
3) και το εκτελώ.


Ευχαριστούμε για τις διευκρινήσεις!
Οι ερωτήσεις που έχω είναι:
1. Ο κώδικας θα είναι γραμμένος σε C ή για τέρμιναλ;
2. Πως κάνω compile λειτουργικό και app σε binary;
3. Μπορώ να πειράξω το prexos? (γιατί όταν το ανοίγω μου βγάζει παράξενα πράγματα και αριθμούς)


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nlogn on July 19, 2016, 09:53:31 am
Ευχαριστούμε για τις διευκρινήσεις!
Οι ερωτήσεις που έχω είναι:
1. Ο κώδικας θα είναι γραμμένος σε C ή για τέρμιναλ;
2. Πως κάνω compile λειτουργικό και app σε binary;
3. Μπορώ να πειράξω το prexos? (γιατί όταν το ανοίγω μου βγάζει παράξενα πράγματα και αριθμούς)

1. Τι εννοείς, δε σε πιάνω? εξήγησε λίγο αν μπορείς.
2. Ανάλογα τι αποφασίσεις για λειτουργικό έχει οδηγίες. ( συνήθως πας και πειράζεις κάποιο example βάζοντας δικό σου κώδικα και δεν μπλέκεις παραπάνω )
3. Ναι μπορείς. Αν και εγώ τα παράτησα με το prexos γιατί απλά δεν λειτουργεί όταν κάνεις build τον κώδικα,
   γιατί έχουν γράψει λάθος κάποια πράγματα αυτοί που το έφτιαξαν. Και εν τέλει είναι ζόρι δίχως λόγο.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: mitsoschelsea on July 22, 2016, 09:50:48 am
Πως γίνεται τελικά να βάλουμε το .elf αρχείο που προκύπτει σε USB και να είναι και Bootable;;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nikos1 on July 24, 2016, 17:01:03 pm
Πως γίνεται τελικά να βάλουμε το .elf αρχείο που προκύπτει σε USB και να είναι και Bootable;;
+ 1
+ Πώς βαζουμε σε virtual machine ένα RTOS? Αρκεί μόνον το app και το λειτουργικό σε binary?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Xbaremenos on August 04, 2016, 14:41:41 pm
Στο χρονόμετρο - ρολόι, τις εντολές απο το πληκτρολόγιο θα τις παίρνει μέσω σημάτων ?
Δηλαδή όταν πατηθεί το κάθε πλήκτρο θα στέλνεται σήμα στο πρόγραμμα να αλλάξει mode ?

Έχετε σκεφτεί τίποτα καλύτερο ?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: WatchDog on August 06, 2016, 15:42:11 pm
Κάποιος να μπορεί να δώσει τα φώτα του για το κομμάτι του compile OS-app?Έπειτα η ενσωμάτωση , και  το να το τρέξουμε σε VM πως θα γίνει?Υπάρχει κάποιο Link με κάτι παρόμοιο?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nlogn on August 10, 2016, 01:27:09 am
Κάποιος να μπορεί να δώσει τα φώτα του για το κομμάτι του compile OS-app?Έπειτα η ενσωμάτωση , και  το να το τρέξουμε σε VM πως θα γίνει?Υπάρχει κάποιο Link με κάτι παρόμοιο?

Aw λύσoυμε πρώτα  το κομμάτι  του compile του OS και μετά πάμε και σε αυτά που ρωτάς.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: WatchDog on August 10, 2016, 03:18:57 am
Για το θέμα με το χρονόμετρο? Η υλοποίηση που κάνεις είναι με threads προφανώς? Που συναντάς πρόβλημα δε κατάλαβα? Αυτά που γράφονται στο post παραπάνω για την σύνδεση με OS και RTOS δε τα πιανω.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Ragnar Lothbrok on August 10, 2016, 13:04:36 pm
nlogn εσυ ποιο OS χρησιμοποίησες;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nlogn on August 11, 2016, 00:15:19 am
Για το θέμα με το χρονόμετρο? Η υλοποίηση που κάνεις είναι με threads προφανώς? Που συναντάς πρόβλημα δε κατάλαβα? Αυτά που γράφονται στο post παραπάνω για την σύνδεση με OS και RTOS δε τα πιανω.

Αναλόγως τι υποστηρίζει το OS που διάλεξες.  (ποιο διάλεξες? πως το έκανες compile?)
Αν υποστηρίζει threads τότε κάνε το με threads.

Αν μου πεις ποιο διάλεξες ίσως μπορέσω να σου εξηγήσω καλύτερα.

nlogn εσυ ποιο OS χρησιμοποίησες;

Δε χρησιμοποιώ κάποιο γιατί πολύ απλά δεν μπορώ να κάνω compile κάποιο.

Βασικά συνέχεια βρίσκω κάποια λύση αλλά τελικά αποδεικνύεται πολύ δυσκολη.

Έχω προσπαθήσει να κάνω compile ένα κάρο OS σε i386
π.χ. RIOT, freeRTOS, prex, tinyOS , ...

όλα μου αποτυχαίνουν κυρίως (πιστέυω) γιατί δεν ξέρω πως φτιάχνεται ένα OS.
Τώρα για να πάθω ακολουθώ αυτό τον οδηγό:  https://github.com/cfenollosa/os-tutorial/tree/master/
Ωστόσο, έχω κολλήσει στο 13 (τυχαίο?! :P)

Επίσης έχω δοκιμάσει και την ιδέα του Πιτσιάνη σε πλακέτα.

Έχω δοκιμάσει raspberry PI 2 με freeRTOS που δείχνουν στο github ---> όλεθρος (εχασα 2 ΣΚ) όχι μόνο σε μένα.
Έχω δοκιμάσει το STM32F4 discovery. Το OS ( freeRTOS) εισάγεται αστεία εύκολα,
        απλά έχω μια οθόνη για να δείχνει κείμενο και της έγραφα drivers και κόλησα πολύ άσχημα,
        οπότε το άφησα.

Μάλλον θα συνεχίσω το τελευταίο ( απλά δε θα βάλω πληκτρολόγιο --> είναι πολύ δύσκολη η επικοινωνία όταν το γράφεις από το 0)

Μια άλλη λύση είναι το femto OS σε arduino και AVR:  http://www.femtoos.org/index.html
που υπόσχεται πως δουλεύει (δε το δοκίμασα) και δε χρειάζεται linux-ιές.
Αν το κάνετε μπορείτε να πάρετε και μια οθόνη της adafruit με έτοιμους drivers και να κάνετε και μαγκιές( ;) ).

Επίσης, αν δεν έχετε κάτι από hardware και συνεχίζεται να ενδιαφέρεστε για i386 δείτε και αυτό:
http://wiki.osdev.org/Why_do_I_need_a_Cross_Compiler%3F


Γενικά έχω φάει πάνω από ένα μήνα ψάχνοντας.

και τέλος: Καλύτερα μη με ρωτάτε με pm, αλλά να ποστάρετε εδώ τι κάνατε και σε ποιο σημείο έχετε πρόβλημα, ώστε να μάθουν όλοι τι κάνατε και γιατί αποτύχατε κάπου,
ώστε να μη βοηθιόμαστε ανά 2, αλλά όλοι.

Επίσης αν έχετε κάποια ιδέα είναι προτιμότερο να την ποστάρετε εδώ και να φάμε Χ άτομα κάποιες μέρες πάνω σε αυτή την ιδέα, ώστε να εξαληφθεί το οποιοδήποτε "Αν" θα είχατε στο μέλλον.


Επίσης μην κάνετε copy paste το πρώτο κομμάτι της εκφώνησης και το ποστάρετε σαν ερώτηση το έχουν κάνει και άλλοι 10 πριν από εσάς.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Ragnar Lothbrok on August 13, 2016, 13:01:18 pm
Έπειτα από επικοινωνία με τον κύριο Πιτσιάνη, και σε σχετική ερώτηση για το πως γίνεται το compile OS+app, η απάντηση ήταν η εξής:

Quote
Η διαδικασία λέγεται cross compilation, όπου το binary θα φορτώνει μονάχα τις βιβλιοθήκες του target.

Μετά είναι σα να το βάζεις σε autoexe 

Αν δε το έχετε κάνει ήδη, να ξεκινήσουμε κουβέντα στο THMMY forum.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: WatchDog on August 13, 2016, 16:57:26 pm
Ίσως να ήταν καλό να ξεκινήσει η κουβέντα


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: DarkPassenger on August 14, 2016, 13:12:16 pm
βρήκε κανείς πως γίνεται το cross compile? 


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nlogn on August 14, 2016, 20:10:14 pm
βρήκε κανείς πως γίνεται το cross compile? 

 τσεκαρε το λινκ στο τελευταιο μου ποστ.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: DarkPassenger on August 14, 2016, 20:20:05 pm
τσεκαρε το λινκ στο τελευταιο μου ποστ.

ok θα το δω! τωρα κοιτάω αυτο εδώ http://preshing.com/20141119/how-to-build-a-gcc-cross-compiler/
φαινεται καλο αλλα δεν ξερω αν θα προκύψει το επιθυμητό αποτέλεσμα


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: WatchDog on August 19, 2016, 18:16:47 pm
Μπορεί κάποιος να μου απαντήσει κατι πολύ απλό? Επειδη έχω χαθεί.
1) Γραφουμε πρόγραμμα σε C για το ρολόι.
2)Αντιστοιχίζουμε τον κώδικα της C στις ρουτίνες και σε αυτά που προσφέρει το RTOS (freeRTOS,PREX,κτλπ) ?
3) Που κάνουμε compile  , στο περιβάλλον που δίνει το RTOS?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: joal on August 24, 2016, 13:04:44 pm
Ερώτηση: Μπορούμε να χρησιμοποιήσουμε το freeRTOS σαν βιβλιοθήκη σε arduino?? (Εννοώ αν θα είναι αποδεκτό σαν μεθοδολογία).

Αν ναι, τότε νομίζω πως η ενσωμάτωση γίνεται πολύ απλή διαδικασία για όσους έχουν arduino.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nikos1 on August 24, 2016, 15:45:30 pm
Ερώτηση: Μπορούμε να χρησιμοποιήσουμε το freeRTOS σαν βιβλιοθήκη σε arduino?? (Εννοώ αν θα είναι αποδεκτό σαν μεθοδολογία).

Αν ναι, τότε νομίζω πως η ενσωμάτωση γίνεται πολύ απλή διαδικασία για όσους έχουν arduino.

εγω παντως ετσι το εκανα...


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: fcdimitr on August 24, 2016, 16:37:57 pm
Αρχικά πρέπει να κατανοήσετε την έννοια του cross compilation.

http://preshing.com/20141119/how-to-build-a-gcc-cross-compiler/

Η λογική είναι να έχετε έναν compiler (αντίστοιχο του gcc) ο οποίος παράγει εκτελέσιμο αρχείο για άλλο σύστημα ( κι όχι για αυτό στο οποίο το εκτελείται ).

Στο παρακάτω link εξηγεί πώς δημιουργούμε cross compiler στο περιβάλλον cygwin (το ίδιο ισχύει και για άλλο linux περιβάλλον).

http://prex.sourceforge.net/doc/build.html#cygwin

Σε προηγούμενο post εξήγησα πώς μπορείτε να βάλετε κάποια flags στο Makefile, ώστε να γίνει επιτυχώς το compile για x86-pc στο source code version 0.9.0 χρησιμοποιώντας ακόμη και 64-bit linux.

Ωστόσο, το prex έχει πρόβλημα με την έκδοση gcc μετά την 4.2, οπότε πρέπει να χρησιμοποιήσετε αυτήν ή προγενέστερή της (http://archive.debian.org/debian/pool/main/g/gcc-4.2/).

Μπορώ να επιβεβαιώσω ότι λειτουργεί κανονικά με το image του 0.8.0 (http://prdownloads.sourceforge.net/prex/prex-0.8.0.i386-pc.img.gz?download) και με build του source code 0.9.0 σε περιβάλλον 64-bit, με έκδοση gcc:

gcc (GCC) 4.1.2 20080704

Στη συνέχεια ενημερώνετε το prexos μέσα στο image με την εντολή

mcopy -o prexos a:

αφού ενημερώσετε το αρχείο /etc/mtools.conf όπως αναφέρεται εδώ

http://prex.sourceforge.net/doc/pc.html#image

Τέλος χρησιμοποιήστε το QEMU και πιο συγκεκριμένα την εντολή

qemu-system-i386 -fda ./prex-0.8.0.i386-pc.img






Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: WatchDog on August 24, 2016, 18:46:27 pm
εγω παντως ετσι το εκανα...

Μπορείτε να εξηγήσετε πως θα γίνει αυτό στο περίπου?Ο κώδικας που γράφουμε για freeRTOS ενσωματώνεται κατευθείαν στο αντίστοιχο περιβάλλον arduino ή θελει κάτι συγκεκριμένο να κάνεις?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nikos1 on August 24, 2016, 19:04:20 pm
Μπορείτε να εξηγήσετε πως θα γίνει αυτό στο περίπου?Ο κώδικας που γράφουμε για freeRTOS ενσωματώνεται κατευθείαν στο αντίστοιχο περιβάλλον arduino ή θελει κάτι συγκεκριμένο να κάνεις?

βαζεις τις βιβλιοθηκες του freertos στο sketch και κατευθειαν εχεις προσβαση σε αυτες. Τσεκαρε και εδω ενα μικρο tutorial για εγκατασταση και μερικη επεξηγηση https://feilipu.me/2015/11/24/arduino_freertos/ (https://feilipu.me/2015/11/24/arduino_freertos/). Παντως παρα την ευκολια της "εγκαταστασης" εχει αρκετη δουλεια


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: WatchDog on August 24, 2016, 19:38:41 pm
βαζεις τις βιβλιοθηκες του freertos στο sketch και κατευθειαν εχεις προσβαση σε αυτες. Τσεκαρε και εδω ενα μικρο tutorial για εγκατασταση και μερικη επεξηγηση https://feilipu.me/2015/11/24/arduino_freertos/ (https://feilipu.me/2015/11/24/arduino_freertos/). Παντως παρα την ευκολια της "εγκαταστασης" εχει αρκετη δουλεια
Thanks.
Πόσες μέρες σου πήρε μέσες άκρες?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nikos1 on August 24, 2016, 19:59:48 pm
Thanks.
Πόσες μέρες σου πήρε μέσες άκρες?

καμια εβδομαδα πανω κατω (με lcd, keypad + αναφορα)


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: fcdimitr on August 25, 2016, 13:06:42 pm
Ανέβηκε στο ethmmy στην εργασία αρχείο όπου εξηγεί αναλυτικά τα βήματα για το build του prex os και ενός απλού real time task.

Δείτε και αυτ (http://wiki.osdev.org/Why_do_I_need_a_Cross_Compiler%3F)

Όποιος έχει οδηγίες και θέλει να βοηθήσει στο tutorial για άλλες πλατφόρμες/λειτουργικά, να επικοινωνήσει μαζί μου.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on August 30, 2016, 14:15:44 pm
Ακολούθησα τις οδηγίες του tutorial και κατάφερα να κάνω compile το prex και να το τρέξω σε qemu. Χρησιμοποίησα gcc-4.1. Το πρόβλημα μου είναι ότι μου βγάζει θέματα στο compile όταν πάω να χρησιμοποιήσω την time.h . Γενικά την αναγνωρίζει, αλλά όταν χρησιμοποιώ τις συναρτήσεις της, χτυπάει error. Τι μπορεί να φταίει, ασχολήθηκε κανείς;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: fcdimitr on August 30, 2016, 14:18:36 pm
Ακολούθησα τις οδηγίες του tutorial και κατάφερα να κάνω compile το prex και να το τρέξω σε qemu. Χρησιμοποίησα gcc-4.1. Το πρόβλημα μου είναι ότι μου βγάζει θέματα στο compile όταν πάω να χρησιμοποιήσω την time.h . Γενικά την αναγνωρίζει, αλλά όταν χρησιμοποιώ τις συναρτήσεις της, χτυπάει error. Τι μπορεί να φταίει, ασχολήθηκε κανείς;

Δοκίμασε να κάνεις το ακόλουθο include

Code:
#include <sys/time.h>


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on August 31, 2016, 15:01:31 pm
Θα περιγράψω συνοπτικά την εμπειρία μου με το prex. Το tutorial στο ethmmy βοήθησε αρκετά δε μπορώ να πω (λίγο ελλιπές αλλά τέσπα).

Τα πάντα τα έτρεξα μέσα σε VM, Debian 32bit . Δοκίμασα αρχικά σε 64bit αλλά μου έσπασε τα νεύρα, έλεγε όλη την ώρα ότι το σύστημα μου δεν είναι i386 και άλλη αρχιτεκτονική και μπλα μπλα μπλα. Το στειλα στη μάνα του και έβαλα 32bit. Κατεβάστε το από εδώ (http://cdimage.debian.org/debian-cd/8.5.0/i386/iso-cd/debian-8.5.0-i386-netinst.iso). Στο VirtualBox έβαλα 2GB RAM και 20GB storage. Κατά την εγκατάσταση κράτησα τα πάντα default. Σε VM πιστεύω είναι καλύτερα γιατί ξεκινάει από το 0 και μπορεί οποιοσδήποτε να ακολουθήσει τα ίδια βήματα και να καταλήξει στο ίδιο αποτέλεσμα.

Ανοίγουμε terminal και γράφουμε:

su

βαζουμε root password. Γράφουμε

visudo

ανοίγει ένα αρχείο κειμένου σε nano. Πάμε στο σημείο που λέει

# User priviledge specification
root    ALL=(ALL:ALL) ALL

και προσθέτουμε αυτή τη γραμμή ακριβώς από κάτω

username     ALL=(ALL:ALL) ALL

και στη θέση username βάζετε το username που επιλέξατε. Τώρα πατάμε Ctrl+O, Enter. Αυτό κλείνει την επεξεργασία κειμένου και μας επιστρέφει στο τερματικό. Γράφουμε exit. Όλα αυτά τα κάναμε ώστε ο χρήστης να έχει δικαιώματα admin, κάτι που δεν είναι ενεργοποιημένο στα Debian by default.

Επειδή το prex είναι κομπλεξικό χρειαζόμαστε παλαιότερη έκδοση gcc για να γίνει compile επιτυχώς. Εγώ χρησιμοποίησα gcc-4.1 και δούλεψε. Κατεβάστε αυτά τα αρχεία από εδώ (http://archive.debian.org/debian/pool/main/g/gcc-4.1/):

cpp-4.1_4.1.1-21_i386.deb
gcc-4.1_4.1.1-21_i386.deb
gcc-4.1-base_4.1.1-21_i386.deb
libgcc1_4.1.1-21_i386.deb
libssp0_4.1.1-21_i386.deb

Αυτά χρειαζόμαστε για να εγκαταστήσουμε το gcc-4.1. Εκτελέστε τις παρακάτω εντολές με τη σειρά που είναι γραμμένες:

sudo dpkg -i gcc-4.1-base_4.1.1-21_i386.deb
sudo dpkg -i cpp-4.1_4.1.1-21_i386.deb
sudo dpkg -i libgcc1_4.1.1-21_i386.deb
sudo dpkg -i libssp0_4.1.1-21_i386.deb
sudo apt install binutils
sudo dpkg -i gcc-4.1_4.1.1-21_i386.deb

Έτοιμο το gcc-4.1. Κατεβάζουμε τώρα τα αρχεία του prex. Χρειαζόμαστε αυτό (https://sourceforge.net/projects/prex/files/Source/prex-0.9.0/prex-0.9.0.tar.gz/download?use_mirror=netcologne&download=) και αυτό (https://sourceforge.net/projects/prex/files/Floppy%20Image/prex-0.8.0/prex-0.8.0.i386-pc.img.gz/download?use_mirror=netcologne&download=).

Από δω και πέρα το tutorial το εξηγεί καλά. Να σημειώσω ότι ΔΕΝ χρειάζεται να βάλετε τα flags που αναφέρει στην πρώτη σελίδα, ΧΡΕΙΑΖΕΤΑΙ να κάνετε configure γράφοντας:

./configure --cc=gcc-4.1 --target=x86-pc

Ακολουθήστε τα βήματα του tutorial και θα έχετε έτοιμο το δικό σας sample application.  Προσωπικά εγώ ακολούθησα αυτά τα βήματα κατά γράμμα και αυτό το απλό πρόγραμμα με getchar, putchar δούλεψε και έτρεξε στο qemu χωρίς πρόβλημα.

Που έχω όντως πρόβλημα: Με άλλες βιβλιοθήκες. Δε μπορώ για κανένα λόγω να χρησιμοποιήσω την gettimeofday από το sys/time.h . Μα το θεό με τίποτα. Η φράση error: undefined reference to `gettimeofday` θα στοιχειώνει τα όνειρα μου. Έχω δοκιμάσει άπειρα πράματα και δε δουλεύει με τίποτα. Δοκιμάστε και σεις και πείτε την εμπειρία σας. Ιδανικά είτε τρόπο να κάνετε την gettimeofday να δουλέψει, είτε κάποια βιβλιοθήκη/συνάρτηση που να κάνει παρόμοια δουλεία και δουλέψει στο χρονόμετρο/ρολόι.

Edit: Αλλαξα την σειρα στα dpkg, το ειχα γραψει λαθος.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nikovaka on August 31, 2016, 17:33:46 pm
Έχει κανείς ιδέα πως θα υλοποιηθούν οι λειτουργίες με τα πλήκτρα? Π.χ. πως αφού πατήσει κάποιος Η θα αυξάνεται η ώρα? Προσπαθώ να βρω κώδικα για τις συναρτήσεις kbhit() και getchar() για linux αλλά δεν έχω καταφέρει να βρω κάτι που να λειτουργεί.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 01, 2016, 16:47:15 pm


λοιπόν μάστορα, μετά από πολύ καρκίνο κατάφερα να παίρνω το χρόνο.
φτιάχνεις μόνος σου μια συνάρτηση get_time() που μιλάει με το rtc και επιστρέφει το epoch σε δευτερόλεπτα:

Code:
u_long get_time() {
        device_t rtc_dev;
u_long sec;

device_open("rtc", 0, &rtc_dev);
   device_ioctl(rtc_dev, RTCIOC_GET_TIME, &sec);
device_close(rtc_dev);
return sec;
}


Να σημειωθεί ότι πρέπει να κάνεις include το <sys/ioctl.h>. Επίσης στο qemu τρέχεις με παράμετρο -localtime, γιατί αλλιώς στο βγάζει σε utc

ΥΓ: prex καρκίνος


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on September 01, 2016, 18:39:40 pm
Ωραίος, δούλεψε. Αλλά δεν κατάλαβα, αυτό το νούμερο τι ακριβώς είναι; Δευτερόλεπτα τι;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 01, 2016, 18:54:22 pm
είναι τα δευτερόλεπτα που έχουν περάσει από τις 00:00:00 01/01/1970, γνωστό και ως unix epoch (https://en.wikipedia.org/wiki/Unix_time).
ο χρόνος που μετράνε τα ρολόγια σε όλους τους υπολογιστές είναι υπό αυτή τη μορφή, οπότε έτσι μετράει και το rtc device του prex
(το οποίο ουσιαστικά ορίζεται από το qemu, άρα από τον host)

είναι σχετικά εύκολο να εξάγεις ώρες λεπτά και τα σχετικά, πχ τα δευτερόλεπτα είναι epoch mod 60.

btw αφήνοντας το qemu να κάνει το ρολόι κανά δεκάλεπτο, είχε μείνει πίσω 3 λεπτά. για κάποιο λόγο είναι πιο αργό το δευτερόλεπτο του
qemu από το πραγματικό. έχει κανένας άλλος αυτό το issue?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: WatchDog on September 01, 2016, 19:49:12 pm
Παιδιά όταν πάω να κάνω ./configure ... δε μου δέχεται την εντολή . Λέει "no such file or directory" ενώ εμαι και στο κατάλληλο Directory. Έχω ψαξει για το error αλλά δε βγάζω άκρη.Έχει κάποιος ιδέα τι μπορεί να είναι?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on September 01, 2016, 20:13:03 pm
Το ότι θα καθόμουν σήμερα να μάθω για το unix epoch time μπορώ να πω ότι δεν το περίμενα. Έκανα τις μετατροπές και δείχνει καλή ώρα, μπράβο svart. Πώς το κάνω να ανανεώνει καλά στην οθόνη όμως; Άμα βάλω ένα while(1) στην main, απλά γεμίζει την κονσόλα και φαίνεται χάλια, ανανεώται πολύ γρήγορα δε φαίνεται καλα.

Παιδιά όταν πάω να κάνω ./configure ... δε μου δέχεται την εντολή . Λέει "no such file or directory" ενώ εμαι και στο κατάλληλο Directory. Έχω ψαξει για το error αλλά δε βγάζω άκρη.Έχει κάποιος ιδέα τι μπορεί να είναι?

Για να σου βγάζει τέτοιο μήνυμα σημαίνει ότι δεν είσαι στο σωστό directory. Εκεί που είσαι, κάνε ls και δες τι αρχεία βγάζει. Αν δεν υπάρχει το configure, είσαι σε λάθος directory. Το configure είναι στο prex-0.9.0, στο root directory ουσιαστικά.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 01, 2016, 20:20:35 pm


το configure είναι script, οπότε άμα σε λεει no such file or directory τότε δεν είναι σίγουρα στο directory σου. κάνεις untar το source του prex και μετά cd στον φάκελο;
αν το κάνεις αυτό θα πρέπει να τρέξει το configure κανονικά.



δοκίμασε αντί για \n να παίξεις με το \r. αν θες πιο ψαγμένα δες εδώ (http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html)


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on September 01, 2016, 20:45:21 pm
svart, θέλω να σε φιλήσω. Επίσης ναι, και μένα χάνει χρόνο στο qemu, πάνω κάτω στα ίδια επίπεδα που περιέγραψες και συ. Εγω σκοπεύω να το αγνοήσω παντελώς, προσωπικά.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: WatchDog on September 01, 2016, 21:12:50 pm
Thanks παιδιά. Κάτι ακόμη αν μπορείτε να βοηθήσετε. Κάτι παίζει με την gcc , και το packet με την libgcc1 δεν το κατεβαζει με τιποτα.Μου πετάει κάποιο error "Multi-Arch: no is not co-installable with libgcc which gas multiple installed instances" .To το προηγούμενο version της gcc που είχα ήταν το 4.8 . Υπάρχει περίπτωση να κολλάει με αυτό?μήπως πρέπει να κάνω τελείως unistall ότι έχει να κάνει με gcc που είχα εγκαταστήσει έως τωρα?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 01, 2016, 21:13:32 pm
Έχει κανείς ιδέα πως θα υλοποιηθούν οι λειτουργίες με τα πλήκτρα? Π.χ. πως αφού πατήσει κάποιος Η θα αυξάνεται η ώρα? Προσπαθώ να βρω κώδικα για τις συναρτήσεις kbhit() και getchar() για linux αλλά δεν έχω καταφέρει να βρω κάτι που να λειτουργεί.

Η getchar() υπάρχει, αλλά μάλλον εννοείς την getch(). δεν παίζει να μπορείς να παίρνεις unbuffered input στο prex, λίγο που το ψαξα. δοκίμασα να το κάνω με threads αλλά γαμήθηκε ο δίας. απόσο κατάλαβα τα threads στο prex είναι ότι να ναι, αφού για να αρχίσει να τρέχει ένα thread,  πρέπει να κάνεις yield σε αυτό είτε να βάλεις το parent thread σε sleep. παίζει να κάνω και λάθος, αλλά αυτό κατάλαβα. οπότε με την getchar() να είναι blocking και τα threads να ειναι γτπ, δε την πάλεψα και πολύ. αν έχει κανείς καμιά ιδέα ας σφυρίξει.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 01, 2016, 21:16:52 pm
Thanks παιδιά. Κάτι ακόμη αν μπορείτε να βοηθήσετε. Κάτι παίζει με την gcc , και το packet με την libgcc1 δεν το κατεβαζει με τιποτα.Μου πετάει κάποιο error "Multi-Arch: no is not co-installable with libgcc which gas multiple installed instances" .To το προηγούμενο version της gcc που είχα ήταν το 4.8 . Υπάρχει περίπτωση να κολλάει με αυτό?μήπως πρέπει να κάνω τελείως unistall ότι έχει να κάνει με gcc που είχα εγκαταστήσει έως τωρα?

το να κάνεις uninstall το gcc  δεν είναι και η καλύτερη ιδέα στον κόσμο. πόσο μάλλον για να βάλεις το prex :P.

αν στήσεις ένα vm από την αρχή και ακολουθήσεις τις οδηγίες της πάπιας δε θα πρέπει να έχεις πρόβλημα, και αυτό θα σου πρότεινα.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: WatchDog on September 04, 2016, 19:01:08 pm
Όταν βάζω στο vm το αρχείο που λέει η πάπια , κανει Install κανονικά αλλα μετά δεν κανει boot το ΟS στο virtualbox και μου βγάζει τον IDE controller κενό.Κάνω κάτι λάθος,μήπως το .iso αυτό δεν ειναι το σωστό?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on September 05, 2016, 08:17:46 am
Όταν βάζω στο vm το αρχείο που λέει η πάπια , κανει Install κανονικά αλλα μετά δεν κανει boot το ΟS στο virtualbox και μου βγάζει τον IDE controller κενό.Κάνω κάτι λάθος,μήπως το .iso αυτό δεν ειναι το σωστό?

Ίσως δεν έκανες κάποια ρύθμιση σωστά στο VirtualBox. Θα μιλήσουμε με pm για να το βρούμε, μη σπαμάρουμε το τόπικ.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: RaiDeR on September 09, 2016, 13:06:31 pm
παιδια καταφερε καποιος να την τελειωσει την εργασια εκτος απο το nikos1? και ποσο καιρο του πηρε ?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on September 09, 2016, 13:24:17 pm
παιδια καταφερε καποιος να την τελειωσει την εργασια εκτος απο το nikos1? και ποσο καιρο του πηρε ?

Θα σου πω από τώρα η εργασία αυτή είναι απαράδεκτη. Εκτός αν έχεις κάποια πλακέτα στυλ avr/arduino με αρκετό input/output πέρα από τα κλασικά button/led και αρκετή εμπειρία στη χρήση των πλακέτων αυτών, η εργασία δε θα σου βγει σύντομα. Εγώ έχω φάει ήδη πάνω απο 10 μέρες σερί + 3-4 μέρες το καλοκαίρι που είχα ξεκινήσει να το κοιτάω και δεν βλέπω φως στο τούνελ για την ώρα, προσπαθώ να το κάνω σε pc και να τρέξω σε emulator. Άμα το καταφέρω θα γράψω εδώ οδηγίες να ακολουθήσετε και να σας βγει σχετικά εύκολα. Απλά περίμενε εδώ για οδηγίες και αν δεν γράψω εγώ ή κάποιος άλλος, πιστόλιασε το μάθημα και μη το ξαναπάρεις. Με το χρόνο που θα φας κάνοντας αυτή τη μαλακία μπορείς να περάσεις 3 άλλα μαθήματα στην εξεταστική.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: fcdimitr on September 12, 2016, 19:38:11 pm
Το ότι θα καθόμουν σήμερα να μάθω για το unix epoch time μπορώ να πω ότι δεν το περίμενα. Έκανα τις μετατροπές και δείχνει καλή ώρα, μπράβο svart. Πώς το κάνω να ανανεώνει καλά στην οθόνη όμως; Άμα βάλω ένα while(1) στην main, απλά γεμίζει την κονσόλα και φαίνεται χάλια, ανανεώται πολύ γρήγορα δε φαίνεται καλα.

Μπορείς να χρησιμοποιήσεις τον χαρακτήρα \b (backspace) στην printf() που επιστρέφει μία θέση πίσω στο output και μετά να κάνεις override κατάλληλα.

http://stackoverflow.com/a/9174439


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on September 12, 2016, 21:24:43 pm
Ακολούθησα τις οδηγίες του tutorial και κατάφερα να κάνω compile το prex και να το τρέξω σε qemu. Χρησιμοποίησα gcc-4.1. Το πρόβλημα μου είναι ότι μου βγάζει θέματα στο compile όταν πάω να χρησιμοποιήσω την time.h . Γενικά την αναγνωρίζει, αλλά όταν χρησιμοποιώ τις συναρτήσεις της, χτυπάει error. Τι μπορεί να φταίει, ασχολήθηκε κανείς;

Βρήκα με αυτό τι παίζει. Διάβασα καλά το documentation του prex (γελάει ο κόσμος) και είδα ότι έχει δυο διαφορετικά mode χρήσης, ένα application και το άλλο real-time task. Όταν κάνει compile application, μια εφαρμογή που τρέχει ως process επάνω στο λειτουργικό, έχει διαθέσιμες πολλές περισσότερες βιβλιοθήκες σε σχέση με όταν είναι real time task, που είναι μια εφαρμογή που δουλεύει λίγο πολύ μόνη της. Για αυτό το λόγο, μπορώ να κάνω compile την εφαρμογή tetris που έχουν συμπεριλάβει οι developers η οποία χρησιμοποιεί την gettimeofday, ακριβώς επειδή δεν γίνεται compile ώς real time task αλλά ως process. Αντίθετα, μου πετάει error όταν πάω να κάνω compile κάποιο δικό μου πρόγραμμα ώς real time task με την ίδια συνάρτηση. Κάτι τέτοιο με κάνει να φοβάμαι ότι πράματα που ενώ τα δέχεται ο compiler σε real time task, μπορεί να μη συμπεριφέρονται όπως θα περίμενε κανείς υπό οποιεςδήποτε άλλες συνθήκες. Το λέω αυτό γιατί τα λίγα πράματα που έτρεξα με threads, συμπεριφέρονται πολύ περίεργα. Δεν το έχω επιβεβαιώσει αυτό βέβαια.

Συμπέρασμα: Χρησιμοποιήστε την μέθοδο που πρότεινε ο svart στην προηγούμενη σελίδα για να πάρετε χρόνο.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 13, 2016, 00:20:48 am
Αυτό που λες για task και prog το είχα υποψιαστεί και γω, αλλά όταν πήγα να το κάνω prog δεν έτρεχε σχεδόν τπτ, οπότε το παράτησα. Άλλωστε, αυτός task ζητάει. Πάντως μπορείς να κάνεις include όλες τις βιβλιοθήκες κανονικά όταν γράφεις task, πράγμα που είναι αρκετά χρήσιμο καθώς περιλαμβάνουν διάφορα χρήσιμα declarations, όπως πχ to timeval struct. Επίσης, μια άλλη καλή τσομπανιά που έκανα και δουλεύει είναι να κάνω include το header file κανονικά και να υλοποιώ εγώ τις συναρτήσεις που λέει. Απλά εδώ προσοχή, γιατί πρέπει να είναι συμβατά τα signatures. Αυτό πάντως ψιλοβολεύει, γιατί ο κώδικας των συναρτήσεων αυτών είναι εύκολα διαθέσιμος (υπάρχει ακόμα και σε διάφορα random directories του prex) και θέλουν μια μικρή προσάρμογή για να δουλέψουν. Επίσης αυτό δουλεύει για οπουδήποτε έχει ioctl, πχ μπορείς έτσι να θέσεις το τερματικό σε raw mode. Πάντως μη μπλέξεις με threads, δεν χρειάζεται τσάμπα καρκίνο θα φας. Εγώ κατάφερα να κάνω ασύγχρονη είσοδο με το να υλοποιήσω ένα variant της kbhit() που είχε αναφερθεί προηγουμένως


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nikos1 on September 14, 2016, 10:04:13 am
Καλημέρα, σας επισυνάπτω ένα αρχείο που περιγράφει συνοπτικά και περιεκτικά τις σημαντικότερες λειτουργίες του freertos. Προσωπικά με κάλυψε πλήρως.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Ragnar Lothbrok on September 15, 2016, 13:12:13 pm
Καλημέρα, σας επισυνάπτω ένα αρχείο που περιγράφει συνοπτικά και περιεκτικά τις σημαντικότερες λειτουργίες του freertos. Προσωπικά με κάλυψε πλήρως.

για να το κανουμε your way προυποθετει να εχουμε lcd + keypad +arduino ετσι;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nikos1 on September 16, 2016, 13:12:06 pm
για να το κανουμε your way προυποθετει να εχουμε lcd + keypad +arduino ετσι;

Δε σε εμποδίζει κανείς να χρησιμοποιήσεις τη σειριακή οθόνη. Όσο για το keypad αν δεν έχεις και δε μπορείς να βρεις χρησιμοποίησε buttons.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: talkshowhost on September 17, 2016, 12:31:25 pm
Ξέρουμε μέχρι πότε πρέπει να παραδοθεί? 30/9 ή θα δοθεί παράταση?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 19, 2016, 18:44:32 pm
Έχει κανείς ιδέα πως μπορούμε να φτιάξουμε bootable image για το prex σε φάση live usb? Στο qemu το rtc χάνει λεπτά και ρώτησα τον πιτσιάνη και με λέει δοκίμασε να κάνεις bootable usb, αλλά προφανώς μιας και το prex να έχει το καλύτερο documentation ever, δεν βρήκα τίποτα.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: joal on September 19, 2016, 19:18:37 pm
Ξέρουμε μέχρι πότε πρέπει να παραδοθεί? 30/9 ή θα δοθεί παράταση?

Αν ζητησουμε αρκετα ατομα παραταση, θα μας δωθει. Αλλιως ειναι μεχρι 30 του μηνα...
Ψηνεται κοσμος για παραταση? Να πουμε ξερω γω για 1-2 βδομαδες μετα την εξεταστικη? Να μην τα εχουμε ολα μαζεμενα...


Quote
Έχει κανείς ιδέα πως μπορούμε να φτιάξουμε bootable image για το prex σε φάση live usb? Στο qemu το rtc χάνει λεπτά και ρώτησα τον πιτσιάνη και με λέει δοκίμασε να κάνεις bootable usb, αλλά προφανώς μιας και το prex να έχει το καλύτερο documentation ever, δεν βρήκα τίποτα.

Με ενα γκουγκλαρισμα βρηκα αυτο: http://digital.ni.com/public.nsf/allkb/398C100729B9CF438625790A0051DC1D
Είναι παλιο, αλλα φαντάζομαι πως ΑΝ δεν δουλευει, θα υπαρχει κατι αντιστοιχο.

edit: Αυτο που θες να κανεις για να φτιαξεις το bootable usb δεν εχει να κανει με το documentation του prex, αλλα προφανως με το να "εγκαταστησεις" το λειτουργικο σου σε ενα φλασακι.  ;)


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: MrsHofstadter on September 19, 2016, 20:21:30 pm
Να ζητήσουμε σίγουρα παράταση 1-2 εβδομάδες. Νομίζω ότι είμαστε αρκετοί έτσι κι αλλιώς που δεν την έχουμε τελειώσει την εργασία.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 19, 2016, 20:51:40 pm
Tο θέμα είναι ότι το prex προσφέρει demo live cd, αλλά δεν αναφέρει πουθενά τίποτα περί αυτού. τέσπα, εντέλει τα κατάφερα. Σε περίπτωση λοιπόν που θέλει κάποιος να δοκιμάσει την εφαρμογή του σε bare metal κάνουμε τα εξής:

1. Αρχικά κατεβάζουμε το live cd του prex από εδώ (http://prdownloads.sourceforge.net/prex/prex-0.8.0.i386-pc.iso.gz?download)

2. Κάνουμε extract το iso και παίρνουμε το αρχείο boot.catalog που έχει μέσα.

3. Κάνουμε build το prex κανονικότατα. Έτσι θα μας δημιουργηθεί ένα αρχείο prexos -- αυτός είναι ο νέος kernel μας.

4. Εκτελούμε το mcopy -o prexos a:, όπως και πριν (δεδομένου προφανώς ότι έχουμε ρυθμίσει το drive a: να δείχνει στο .img του prex) -- αυτό ουσιαστικά αντικαθιστά τον kernel στο .img αρχείο με τον νέο που μόλις φτιάξαμε. Κρατάμε μια κόπια του img για καλό και για κακό και κάνουμε rename σε prex.img

5. (Περιττό -- δες παρακάτω) Μαζεύουμε στο ίδιο directory το prex.img που μόλις φτιάξαμε μαζί με το boot.catalog, κάνουμε cd σε αυτό και εκτελούμε genisoimage -r -b prex.img -c boot.catalog -o karkinos.iso .

6. Έχουμε πλέον ένα bootable iso image που μπορούμε να το φορτώσουμε παντού.

Σημείωση 1: η τελεία στο βήμα 5 δεν είναι τελεία, αναφέρεται στο current directory.
Σημείωση 2: μπορεί η διανομή σας να μην έχει την genisoimage, αλλά τότε θα έχει την mkisofs, η οποία θα δέχεται ακριβώς τα ίδια ορίσματα.

Edit: Περισσότερα: http://www.tldp.org/HOWTO/Bootdisk-HOWTO/cd-roms.html (http://www.tldp.org/HOWTO/Bootdisk-HOWTO/cd-roms.html)

Edit 2: Το βήμα 5 είναι περιττο, μπορούμε να φορτώσουμε απευθείας το .img στο usb ως εξής:
α. Βρίσκουμε πιο device είναι το flashάκι μας με sudo fdisk -l
β. Έστω ότι είναι το /dev/sdb1. Το κάνουμε unmount ως εξής: sudo umount /dev/sdb1
γ. Κάνουμε cd εκεί που είναι το prex.img και εκτελούμε dd if=prex.img of=/dev/sdb. Προσοχή: θα σβηστούν όλα τα δεδομένα από το usb προφανώς.
δ. Το usb είναι πλέον έτοιμο.

Τρέχοντας το prex σε bare metal λύνεται το πρόβλημα του ρολογιού που μένει πίσω, τουλάχιστον σε μένα. Ας δοκιμάσει και κανένας άλλος να δούμε αν


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nikovaka on September 19, 2016, 23:40:33 pm
'Οταν αλλάζει η λειτουργία από ρολόι σε χρονόμετρο το ρολόι πρέπει να συνεχίσει να λειτουργεί μάλλον ε? Αυτό πως θα το πετύχουμε πρέπει να δημιουργήσουμε νέο thread για το χρονόμετρο?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 19, 2016, 23:53:51 pm
'Οταν αλλάζει η λειτουργία από ρολόι σε χρονόμετρο το ρολόι πρέπει να συνεχίσει να λειτουργεί μάλλον ε? Αυτό πως θα το πετύχουμε πρέπει να δημιουργήσουμε νέο thread για το χρονόμετρο?

Ναι. Άμα κάνεις thread και πας με το RTC και κάνεις syscalls μπορεί να έχεις data races.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: RaiDeR on September 22, 2016, 16:06:53 pm
τελικα εστειλε κανενας αλλος για παραταση ? αν ναι ποσο ζητησατε? εγω λεω 2 βδομαδες


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: WatchDog on September 22, 2016, 16:11:54 pm
τελικα εστειλε κανενας αλλος για παραταση ? αν ναι ποσο ζητησατε? εγω λεω 2 βδομαδες
+1


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: joal on September 22, 2016, 16:13:29 pm
+1
UP


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: matzaris on September 22, 2016, 16:34:07 pm
UP

UP


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: sabpap on September 22, 2016, 21:41:48 pm
τελικα εστειλε κανενας αλλος για παραταση ? αν ναι ποσο ζητησατε? εγω λεω 2 βδομαδες
Έστειλα κι εγώ.Ελπίζω να δοθεί.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Ragnar Lothbrok on September 23, 2016, 19:33:53 pm
   
Ενημέρωση για εργασίες
23 Σεπ 2016 3:11 μμ
Φλώρος

Στην αναφορά να χαρακτηρίσετε τη συμπεριφορά ως προς τον πραγματικό χρόνο εκτέλεσης και την κατανάλωση ενέργειας. Δεν πρέπει να τρέχει ο επεξεργαστής συνεχώς!
Μπορείτε να ανεβάσετε ξανά την εργασία, αν θέλετε να διορθώσετε την αναφορά.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Ragnar Lothbrok on September 23, 2016, 19:34:36 pm
Τι εννοει ο ποιητης;
επισης, πηρε κανεις καμια απαντηση απο πιτσιανη ή φλώρο για το θέμα της παράτασης;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Xbaremenos on September 24, 2016, 12:36:48 pm
Τι εννοει ο ποιητης;
επισης, πηρε κανεις καμια απαντηση απο πιτσιανη ή φλώρο για το θέμα της παράτασης;

Υποθέτω οτι δεν θέλει το κλασικό while(1){πριντ (time)} που θα δοκιμάσουμε ως πρώτο πράγμα
Αλλά να βρούμε τρόπο να αδρανοποιούμε το σύστημα και να το ξυπνάμε κάθε δευτερόλεπτο να μας δείχνει τον χρόνο.

Κανείς άλλος ?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on September 24, 2016, 12:46:12 pm
Παραθέτω εδώ (https://docs.google.com/document/d/1H0nE-leQbqYT0V_U4DB9GZbQQ1AAMbeuyw5tvpUWA9A/edit?usp=sharing) ένα πιο αναλυτικό οδηγό εγκατάστασης του prex σε virtualbox, ελπίζω αυτό να ξεκαθαρίσει την εικόνα περισσότερο. Ακολούθησα τις οδηγίες κατά γράμμα σήμερα το πρωί και το έστησα χωρίς πρόβλημα. Τα λινκς είναι σωστά, τα ανανέωσα σήμερα, το λινκ που είχα βάλει σε προηγούμενο ποστ (debian 8.5) πλέον δεν υπάρχει γιατί πρόσφατα ανανεώθηκε σε 8.6 .

Για συγγραφή κώδικα, δείτε προηγούμενες σελίδες. Χρησιμοποιήστε την συνάρτηση get_time που πρότεινε ο svart για να πάρετε χρόνο. Μεγάλη δυσκολία είναι να υλοποιήσετε τις αλλαγές με το πληκτρολόγιο που ζητούνται και αυτό το καινούριο που μας είπε ο Φλώρος θέλει να βρεθεί κάποιος τρόπος να "κοιμίζουμε" τον επεξεργαστή, λες και δε μας έφταναν όλα τα άλλα. Θα πρέπει να το συζητήσουμε εδώ.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: PureForm on September 24, 2016, 13:25:00 pm
πολυ ωραια δουλεια και παλι ευχαριστουμε
μια επισημανση μηπως μετα την εντολη sudo apt -f install πρεπει να εκτελεσουμε αυτο sudo apt install binutils ωστε να ολοκληρωθει η sudo dpkg -i gcc-4.1_4.1.1-21_i386.deb?αλλιως λεει οτι λειπει το package binutils.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on September 24, 2016, 13:53:25 pm
πολυ ωραια δουλεια και παλι ευχαριστουμε
μια επισημανση μηπως μετα την εντολη sudo apt -f install πρεπει να εκτελεσουμε αυτο sudo apt install binutils ωστε να ολοκληρωθει η sudo dpkg -i gcc-4.1_4.1.1-21_i386.deb?αλλιως λεει οτι λειπει το package binutils.

Ναι πρεπει, ξεχασα να το γραψω. Νομιζω ειτε μετα ειτε πριν δεν εχει ιδιαιτερη σημασια, αλλα γενικα πρεπει. Tο προσθεσα τωρα.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: mitsoschelsea on September 24, 2016, 14:26:11 pm
Υπάρχει κανένας που αντί για C έγραψε τον κώδικά του σε bash (shell script);
Έχω ολοκληρώσει την εργασία στο RIOT RTOS, αλλά δε βρήκα τον τρόπο να κάνω όλες τις λειτουργίες που ζητούνται.
Οπότε μου έμεινε το σκριπτάκι μόνο.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 24, 2016, 14:30:56 pm
Επέκταση διορίας υποβολής εργασίας
24 Σεπ 2016 1:58 μμ
Φλώρος

Επέκταση της διορίας παράδοσης εργασίας έως την Κυριακή 9 Οκτωβρίου στις 9:00 π.μ.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 24, 2016, 14:33:22 pm
Υπάρχει κανένας που αντί για C έγραψε τον κώδικά του σε bash (shell script);
Έχω ολοκληρώσει την εργασία στο RIOT RTOS, αλλά δε βρήκα τον τρόπο να κάνω όλες τις λειτουργίες που ζητούνται.
Οπότε μου έμεινε το σκριπτάκι μόνο.

άμα το γράψεις σε bash αυτομάτως θα χάσεις κάθε real-time χαρακτηριστικό. επειδή και εγώ δοκίμασα το RIOT είδα ότι δεν βγάζεις άκρη εντέλει, δοκίμασε να κάνεις port τον κώδικά σου στο prex.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: mitsoschelsea on September 24, 2016, 14:38:30 pm
τι εννοείς;
να γράψω ξανά τον κώδικα σε C ή να καλέσω το σκριπτάκι μέσω της C στο prex;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 24, 2016, 14:42:44 pm
κάτσε, όταν λες την έκανες στο RIOT την έκανες σε C ή σε bash?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: mitsoschelsea on September 24, 2016, 14:46:01 pm
σε bash. τρέχει κανονικά και φορτώνει και στον arduino. απλά έχω θέμα με το να κάνω bootable usb.
δε θα μπορούσα απλά να το αφήσω όπως είναι και να καλέσω από ένα .c αρχείο με την εντολή system το bash script;
(έτσι κάνω και στο RIOT)


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 24, 2016, 14:58:02 pm
όταν όμως το κάνεις έτσι πρώτον δεν έχεις τις όποιες real-time εγγυήσεις σου προσφέρει το κάθε RTOS και δεύτερον δεν έχεις 1 standalone binary στο οποίο να είναι το app + os. ρώτα τον πιτσιάνη/φλώρο καλύτερα για το κατά πόσο αυτό είναι δόκιμο, μη σε παίρνω στο λαιμό μου.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Xbaremenos on September 24, 2016, 17:50:34 pm
Επειδή είμαι στα όρια του να βάλω τα κλάματα  :'( χελπ πλιζ

Γενικά προσπαθώ και γω στα βήματα του Svart να υλοποιήσω μια kbhit() σε prex μπας και βγει η δουλειά, αλλά δεν.

Καταρχάς προσπαθώ να κάνω port τον κώδικα του χρήστη "Thantos" απο εδώ : http://cboard.cprogramming.com/c-programming/63166-kbhit-linux.html (http://cboard.cprogramming.com/c-programming/63166-kbhit-linux.html)
o οποίος τρέχει κανονικά στο λειτουργικό μου.

και εδώ ξεκινούν τα προβλήματα, μέσα στην συνάρτηση changemode (), δεν αναγνωρίζει τις tcgetattr() παρόλο που βρίσκονται στο αρχείο sys/termios.h το οποίο έχω κάνει INCLUDE. Τέσπα δεν πειράζει θα φτιάξω δικιά μου tcgetattr(), βρίσκω τα headers, αντιγράφω και τον κώδικα απο το tcgetattr.c κατευθείαν στο source μου πατάω make και ... τώρα δεν αναγνωρίζει την ioctl() !!!???!! .... που είναι η πιο βασική συνάρτηση για λειτουργίες....
Τι στον ? ioctl.c δεν υπάρχει πουθενά

what do ?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 24, 2016, 18:10:41 pm
έχω περάσει ακριβώς την ίδια κατάσταση. αυτό που κάνεις είναι αντικαθιστάς την ioctl με device_open, device_ioctl και device_close, όπως είναι στο παράδειγμα που έχω βάλει για να πάρεις τον χρόνο από το RTC, όπου προφανώς εδώ το device σου θα είναι το "tty".


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Xbaremenos on September 24, 2016, 19:05:31 pm
έχω περάσει ακριβώς την ίδια κατάσταση. αυτό που κάνεις είναι αντικαθιστάς την ioctl με device_open, device_ioctl και device_close, όπως είναι στο παράδειγμα που έχω βάλει για να πάρεις τον χρόνο από το RTC, όπου προφανώς εδώ το device σου θα είναι το "tty".

Είσαι θεός, νομίζω οτι όλα καλά, αλλάζει modes χωρίς προβλήματα, τώρα έμεινε μόνο η select. ^lock^


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: talkshowhost on September 25, 2016, 13:17:10 pm
Από ethmmy

Επέκταση διορίας υποβολής εργασίας

24 Σεπ 2016 1:58 μμ
Φλώρος

Επέκταση της διορίας παράδοσης εργασίας έως την Κυριακή 9 Οκτωβρίου στις 9:00 π.μ.




Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Xbaremenos on September 26, 2016, 11:41:34 am
Και τώρα ένα σύνθημα που όλους μας ενώνει :

http://imgur.com/gallery/bEtyh (http://imgur.com/gallery/bEtyh)

(http://imgur.com/gallery/bEtyh)


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nikovaka on September 26, 2016, 16:47:52 pm
Λοιπόν του στειλα mail για αυτό που ζητάει με τον επεξεργαστή και μου απάντησε ότι δε χρειάζεται η κατανάλωση ενέργειας να υπολογιστεί μέσα από το πρόγραμμα, αλλά πρέπει να ελέγξουμε πόση ώρα εκτελείται ο κώδικας και πόση ώρα ο επεξεργαστής είναι ανενεργός γιατί αλλιώς 'καίγεται' η μπαταρία μιας συσκευής...τώρα πως γίνεται αυτό είναι ένα άλλο ζήτημα  :D


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: MG9S on September 26, 2016, 19:58:50 pm
Παιδια μια απορια.
Προσπαθώ να ρυθμίσω το prex. Εχω κάνει όλα τα βήματα. Οταν εκτελώ τον την εντολη για να τρέξει το qemu αυτό τρέχει κανονικά όμως, δεν μου τυπώνει τίποτα. ( ο κώδικας μου είναι αυτός που μας δίνεται στο εγχειρίδιο). Ετυχε και σε κανενα άλλο αυτό? Λογικα κάπου πρέπει να έχω κανει λάθος στην εγκατασταση αλλα δεν γνωρίζω το σημείο


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 26, 2016, 20:11:48 pm
το sample πρόγραμμα δεν είναι αυτό που απλά κάνει echo ότι γράψεις;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: MG9S on September 26, 2016, 20:13:03 pm
το sample πρόγραμμα δεν είναι αυτό που απλά κάνει echo ότι γράψεις;

Ναι αυτό ειναι


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 26, 2016, 20:15:19 pm
και όταν γράφεις κάτι δεν το κάνει echo? πρέπει να πατάς enter για να θεωρηθεί ότι παίρνει το input.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: MG9S on September 26, 2016, 20:21:26 pm
Ναι δεν κάνει τίποτα. Δεν μου εμφανίζει ουτε το γραμμα που γράφω για να κάνω echo
Το μονο που βλεπω ειναι το cursor να αναβοσβήννει


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on September 26, 2016, 20:26:01 pm
πάντως από την στιγμή που έχεις αντιγράψει τον κώδικα και σου ανοίγει το qemu, το compilation πρέπει να έχει γίνει σωστά. έλεγξε μήπως σου έχει ξεφύγει τίποτα χαζό.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nikovaka on September 27, 2016, 15:55:51 pm
Λοιπόν εγώ έκανα μια  υλοποίηση με ατέρμων βρόγχο που καλείται μια η μια συνάρτηση μια η άλλη αλλά δεν είναι σωστή. Για όποιον άλλο έχει κάνει το ίδιο, πρέπει απ ότι κατάλαβα να γίνει με threads όπου θα σταματάει το ένα και θα ξεκινάει το άλλο.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Xbaremenos on September 27, 2016, 16:16:37 pm
Λοιπόν εγώ έκανα μια  υλοποίηση με ατέρμων βρόγχο που καλείται μια η μια συνάρτηση μια η άλλη αλλά δεν είναι σωστή. Για όποιον άλλο έχει κάνει το ίδιο, πρέπει απ ότι κατάλαβα να γίνει με threads όπου θα σταματάει το ένα και θα ξεκινάει το άλλο.

Εγώ δεν θα ήμουν τόσο τολμηρός, το prex και τα threads δεν έχουν και την καλύτερη σχέση, αλλά μπορείς πάντα να δοκιμάσεις και να μας πεις.

Good luck!


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: nikovaka on September 27, 2016, 18:06:50 pm
To κανα με threads δουλεύει κανονικά όπως πριν, τώρα αν βελτιώθηκε ο τρόπος χρήσης του επεξεργαστή δεν ξέρω...


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: geotsam on September 28, 2016, 18:22:28 pm
Πώς κάνατε downgrade την gcc σε μικρότερη της 4.2; Είμαστε τρία άτομα και μας ξεφτιλίζει το μηχάνημα :P


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on September 28, 2016, 18:57:03 pm
Πώς κάνατε downgrade την gcc σε μικρότερη της 4.2; Είμαστε τρία άτομα και μας ξεφτιλίζει το μηχάνημα :P

Μη το κανεις ετσι. Στησε VM με 32bit linux, και βαλε κατευθειαν αλλη εκδοση gcc απο την αρχη. Βλεπε εδω. (https://docs.google.com/document/d/1H0nE-leQbqYT0V_U4DB9GZbQQ1AAMbeuyw5tvpUWA9A/edit?usp=sharing)


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: PureForm on September 28, 2016, 18:57:20 pm
Πώς κάνατε downgrade την gcc σε μικρότερη της 4.2; Είμαστε τρία άτομα και μας ξεφτιλίζει το μηχάνημα :P
σελιδα 7 του τοπικ ,ακολουθεις καταγραμμα τον οδηγο του/της Μεταλλαγμενης Παπιας και λογικα δεν θα εχεις κανενα θεμα


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on September 28, 2016, 21:26:15 pm
Οσοι ασχολειστε με prex: καταφέρατε να κανετε αυτο που θελει να μην τρεχει ο επεξεργαστης ολη την ωρα; Εγω το μονο που σκεφτηκα ειναι να βαζω ενα timer_sleep σε καθε επαναληψη, το οποιο εισαγει input lag, αναλογα φυσικα και με το ποση ωρα το βαλω (δεν χανει δεδομενα ομως). Εχει κανει καποιος τιποτα καλυτερο;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: WatchDog on September 30, 2016, 14:59:11 pm
Οσοι ασχολειστε με prex: καταφέρατε να κανετε αυτο που θελει να μην τρεχει ο επεξεργαστης ολη την ωρα; Εγω το μονο που σκεφτηκα ειναι να βαζω ενα timer_sleep σε καθε επαναληψη, το οποιο εισαγει input lag, αναλογα φυσικα και με το ποση ωρα το βαλω (δεν χανει δεδομενα ομως). Εχει κανει καποιος τιποτα καλυτερο;

Όχι φίλε.Και εγώ ακριβώς το ίδιο έχω κάνει.Με βάση το documentation που μας παρέχεται νομίζω πως  αρκεί αυτό..


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: mitsoschelsea on September 30, 2016, 15:11:40 pm
Απ' όσο μίλησα με τον Φλώρο μου είπε ότι πρέπει να γίνει συνδυασμός pthreads και sleep. Τώρα λογικά πιστεύω πως και ένα απλό sleep θα είναι εντάξει εφ' όσον "κοιμάται" ο επεξεργαστής.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on September 30, 2016, 15:41:58 pm
Αρκεί να κοιμίζουμε τον επεξεργαστή σε κάθε επανάληψη, μίλησε ο svart με τον Φλώρο και το επιβεβαίωσε.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: mitsoschelsea on September 30, 2016, 15:43:19 pm
Άρα όχι threads; Απλά να βρούμε έναν τρόπο να τον κοιμίζουμε με παραλλαγές του sleep;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Μεταλλαγμένη Πάπια on September 30, 2016, 15:53:26 pm
Όχι κανένα πρόβλημα, άμα το έχεις καταφέρει με threads κράτα το έτσι. Απλά λέω ότι όσοι κάναμε το kbhit με while(1), ενα timer_sleep σε καθε επαναληψη είναι αρκετό λεει.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: lady_of_winter on September 30, 2016, 15:56:36 pm
Αρκεί να κοιμίζουμε τον επεξεργαστή σε κάθε επανάληψη, μίλησε ο svart με τον Φλώρο και το επιβεβαίωσε.

για να ελαφρυνει το τοπικ
(https://s9.postimg.org/pyji86op7/Screenshot_from_2016_09_30_15_51_20.png) (https://postimg.org/image/pyji86op7/)


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Xbaremenos on September 30, 2016, 16:18:14 pm
Έχει κανείς την εκφώνηση να συνάψει διότι ethmmy kapput ?  :D


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: lady_of_winter on September 30, 2016, 16:19:32 pm
Έχει κανείς την εκφώνηση να συνάψει διότι ethmmy kapput ?  :D

αναγεννηθηκε το ετημμυ


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Xbaremenos on September 30, 2016, 16:36:11 pm
αναγεννηθηκε το ετημμυ

Στο υλικό του μαθήματος δεν υπάρχει τίποτα όμως.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: MG9S on September 30, 2016, 16:37:39 pm
παιδια όσο αφορά το χρονόμετρο και τον χρόνο. Σε περίπτωση που υπάρχει καθυστέρηση στην αλλαγή της ώρας αυτό θα το χειριστούμε μέσω  οφφσετ?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: PureForm on September 30, 2016, 16:47:20 pm
Έχει κανείς την εκφώνηση να συνάψει διότι ethmmy kapput ?  :D


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: Xbaremenos on September 30, 2016, 16:52:32 pm
παιδια όσο αφορά το χρονόμετρο και τον χρόνο. Σε περίπτωση που υπάρχει καθυστέρηση στην αλλαγή της ώρας αυτό θα το χειριστούμε μέσω  οφφσετ?

Αν εννοείς αυτό που θέλει αυτός να αυξάνεται κατα + 1, τότε ναι απλά θα προσθέτεις στο Unixe time το ποσα δευτερολεπτα μπροστα θες να πας.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: fcdimitr on September 30, 2016, 18:50:18 pm
Όσοι ανεβάσατε την εργασία τις τελευταίες μέρες, καλύτερα ανεβάστε την ξανά, γιατί το eTHMMY έκανε επαναφορά για την νέα χρονιά.


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: christoka on October 03, 2016, 19:23:51 pm
Είσαι θεός, νομίζω οτι όλα καλά, αλλάζει modes χωρίς προβλήματα, τώρα έμεινε μόνο η select. ^lock^

Είναι κανείς που να έβγαλε άκρη με την select;;


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: lady_of_winter on October 03, 2016, 22:04:33 pm
Είναι κανείς που να έβγαλε άκρη με την select;;

ναι, ποιο ειναι το προβλημα σου?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: christoka on October 03, 2016, 23:43:58 pm
ναι, ποιο ειναι το προβλημα σου?
Όταν χρησιμοποιώ την εντολή select μου λέει ότι δεν την αναγνωρίζει.. Πως θα μπορούσα να την τροποποιούσα για να την δεχτεί?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: lady_of_winter on October 03, 2016, 23:58:39 pm
λοιπον λαθος μου, υποθεσα οτι γενικα εννούσες πως να κανεις επιλογή κάποιο κουμπι

εγώ έκανα αυτο που υπάρχει σε αυτό το λινκ με την απάντηση του svart από κατω
https://www.thmmy.gr/smf/index.php?topic=66487.msg1150172#msg1150172


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: christoka on October 04, 2016, 00:28:31 am
λοιπον λαθος μου, υποθεσα οτι γενικα εννούσες πως να κανεις επιλογή κάποιο κουμπι

εγώ έκανα αυτο που υπάρχει σε αυτό το λινκ με την απάντηση του svart από κατω
https://www.thmmy.gr/smf/index.php?topic=66487.msg1150172#msg1150172
Ωραία.Στον κώδικα του Thantos στην συνάρτηση kbhit πως αντιμετώπισες το γεγονός ότι δεν αναγνωρίζεται η εντολή select?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: κύριος Φασόλης on October 04, 2016, 20:43:55 pm
Ωραία.Στον κώδικα του Thantos στην συνάρτηση kbhit πως αντιμετώπισες το γεγονός ότι δεν αναγνωρίζεται η εντολή select?
+1
αν έβγαλε κανείς άκρη με τη select ας βοηθήσει


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: WatchDog on October 05, 2016, 14:46:42 pm
Για τον υπολογισμό κατανάλωσης ενέργειας καμία ιδέα κάποιος?


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on October 05, 2016, 15:01:49 pm
ο φλώρος είχε πει δεν χρειάζεται να μετρήσεις την κατανάλωση ενέργειας σε περίπτωση που δεν είναι εφικτό κάτι τέτοιο, αλλά αρκεί να σχολιάσεις οποιαδήποτε considerations έχεις κάνει ώστε το πρόγραμμα σου να μην καταναλώνει αχρείαστη ενέργεια, πχ να μην έχεις 100% cpu usage


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: svart on October 05, 2016, 15:09:38 pm
όσον αφορά την kbhit(), εγώ αυτό που έκανα είναι να βλέπω και να επιστρέφω πόσα bytes είναι στον input buffer του terminal, και όταν είναι πάνω από 0, δλδ 1, κάνω read/getchar or whatever. για να δείς πόσα bytes είναι στον buffer, το κάνεις με syscalls (device_ioctl) στο tty. τα available syscalls μπορεί να τα δει κανείς εδώ (https://linux.die.net/man/4/tty_ioctl)


Title: Re: [Ενσωματωμένα] Εργασία 2016
Post by: MG9S on October 05, 2016, 19:32:55 pm
Στην εκφώνηση της εργασίας τι εννοεί με το πραγματικό χρόνο λειτουργίας?