[SOS] Programme utilisant le port serie
David Decotigny
david.decotigny at free.fr
Dim 7 Mai 18:03:12 CEST 2006
Bonjour,
weisenhorn.geoffroy at club-internet.fr wrote:
> Je suis en train d'ecrire un bout de code qui permettrait de transferer un fichier par le port serie de la machine de developpement vers la machine fesant touner l'os permettant ainsi de compiler des programmes et de l'envoyer direct sur la machine (virtuelle ou pas) pour l'executer sans devoir redemarrer et recompiler le tout , mais aussi pour s'amuser ...
Pratique !
> J'ai donc modifier le mini-shell pour ajouter la commande de reception de fichier et modifier le main du noyau pour ne pas lancer de shell sur le port serie mais utiliser la fonction sos_serial_subsystem_setup et ecrivant un message de bon fonctionnement seulement dès que l'on se trouve au niveau utilisateur j'ai tente un open("/dev/ttyS",O_RDRW) il renvoit un failed ! Quelqu'un aurait une idée pourquoi ?
Sans doute parce qu'il est deja utilisé. En effet dans init.c
(userland), tu veras qu'on lance un shell sur ttyS, donc le port serie
se retrouve occupé et c'est normal. La solution est sans doute de
commenter les lignes qui font les open() + le fork()/exec() dans init.c.
> A part cela j'aurai besoin d'une fonction qui me donne le nombre de secondes depuis le demarrage du systeme donc j'ai pense à reprogrammer le PIT pour le regler avec un tick de 1s . Le PIT est il assez precis ? faut il plutôt utilier le RTC ? J'aurais voulus avoir un avis ?
Depuis le redemarrage de la machine ou de l'OS ?
Si c'est depuis le redemarrage de la machine, le PIT ne fait pas
l'affaire (il ne compte pas le nombre d'interruptions qu'il a levé). Au
moins le TSC sur les pentium fera l'affaire, le RTC peut-etre aussi.
Sinon a mon avis ce qui t'inteteresse c'est un temps depuis le demarrage
de l'OS. Dans ce cas il y a sos_time_get_now() qui es la pour ça : sa
resolution est fixee/donnee par sos_time_set/get_tick_resolution(). Au
mieux elle est de 1 / 1193180 s (ie 4.77 MHz / 4), ce qui devrait te
convenir. Par defaut, dans SOS le tick systeme par defaut est fixé à 10
ms (ie 100 Hz), ce qui, une fois encore, devrait te convenir.
Bonne journee,
--
http://david.decotigny.free.fr/
Plus d'informations sur la liste de diffusion Sos