TheBreton a écrit 928 commentaires

  • [^] # Re: heu...faudrait etre plus precis

    Posté par  . En réponse au message tableau de signed short int To unsigned short. Évalué à 1.

    je ne comprend pas tout
    mais a premiere vue un truc du genre

    Index = 0;
    do
    {
    //attente 10 ms ou evenement bloc pres
    for(i=0;i<1024;i++)
    {
    image[Index]=(signed short int )bloc[i];
    image[Index++]&=0xFF;
    }
    }while(Index<=10000) ;

    devrait garantir que la transformation de 1 octet => 2 octet dans le tableau
    soit correctement faite.
  • # heu...faudrait etre plus precis

    Posté par  . En réponse au message tableau de signed short int To unsigned short. Évalué à 2.

    unsigned char BigTab[2000];
    signed short int LittleTab[250];

    Suivant le systeme et la cible matériel le int à une taille variable.
    Sur un PC un int fais souvent 4 octet et comme 4 * 250 = 2000....
    Sinon poste plutot ton code si tu veut plus d'aide parce que la niveau information c'est plutot leger. Dire que memcpy ne marche pas est sans interet puisque tout le monde sait que memcpy marche c'est plutot ta facon de l'utiliser qui ne convient pas.Tout cela est dit sans méchanceté.
    Plus la question est techniquement motivé plus la réponse sera juste
  • [^] # Re: Commentaires

    Posté par  . En réponse au journal Le bon, la brute, le truand ... et les abrutis. Évalué à 9.

    En fait ce que je ne comprends pas, c'est vu qu'on utilise dans 90% des cas du 5/12V continu, pourquoi continue-t-on à ne mettre que des prises 220V alternatif ? Résultat, on se retrouve avec 20 transfo qui font tous le même travaille et consomment pour rien ...

    En fait l'alternatif à été choisi pour diminuer tres fortement les effects du à l'arc électrique lors de l'allumage/extinction d'un appareille electrique. Les arcs on pour effet le plus indesirable de provoquer une soudure entre les deux poles de l'interrupteur ce qui provoque des court-circuit permanent.

    Le 220V (qui est maintenant du 230V) est choisi pour amener la tension du réseau chez toi car as puissance equivalente plus la tension est haute plus le courant est faible et les pertes joules sont proportionnelle au courant.

    Quand a avoir un gros transfos pour la maison il aurait des pertes constantes plus importantes (sans delivrer de courants) que tes apareilles equiper de transfo sur lesquels tu aurais couper l'interrupteur (qui est en amont du transfo et donc coupe le transfo qui ne genere plus de perte car hors tension)
  • # Je pense comme avant

    Posté par  . En réponse au journal De la taxation des disques durs.... Évalué à 7.

    Cette taxe est franco-francaise et favorisera, pour les gens informés, l'achat internet dans des pays etranger ne pratiquant pas cet taxe.
    Il suffit de regarder les ventes de CD et DVD des boutiques francaise et des boutiques en ligne comme nierle.
    Pour les frontaliers on ajouteras a la liste contenant l'alcool, le tabac, les dvd les nouveau supports taxés et puis c'est tout.
  • # c'est dans ton kernel

    Posté par  . En réponse au message SCSI_MOD sur Pitux. Évalué à 3.

    le module scsi n'est pas validé dans ta config de kernel.
    regarde si tu a les sources de ton kernel 2.2.26
    Pour la compilation sur une autre machine je sais pas trop si ca vaut le coup de le tenter c'est plus rapide de la faire sur la tienne, tu n'as pas besoin de recompiler entierement ton noyau, normalement un
    make modules
    suivit d'un modprobe devrait suffire pour rajouter le scsi_mod
  • [^] # Re: Modif

    Posté par  . En réponse au message RTAI Shared Memory. Évalué à 2.

    si je peut me permettre une remarque
    ptr = rtai_malloc(101, 128);
    pourquoi 128 qui n'est pas 4*sizeof(int) et donc si tu alloue plus d'un coté que ce qui est alloué de l'autre (kmalloc) cela me parait normal que le malloc ne marche pas non ?
  • # En simple

    Posté par  . En réponse au message Assembleur: jmp $+2 (késako ?). Évalué à 2.

    le terme $ en assembleur designe la valeur actuel du Program Counter (PC)
    jmp $+2 signifie prend la valeur actuel du PC additionne 2 et saute a cette nouvelle adresse.
    Dans le code assembleur que tu donne ne lien cela ressemble fort a une temporisation entre deux acces a un peripherique plus lent que le cpu
  • [^] # Re: Module USB

    Posté par  . En réponse au message transferts Isochrones et webcam. Évalué à 1.

    le premier pas pour un driver linux est la lecture de l'excellent livre
    http://lwn.net/Kernel/LDD3/
    ensuite dans les sources du kernel linux un fichiers usb-skeleton.c
    qui permet rapidement d'ecrire un drivers usb.
    bonne lecture
  • # C'est pour quoi faire ?

    Posté par  . En réponse au message Désactivation Scheduler. Évalué à 2.

    Il n'est pas prévue pour linux de fonctionner comme ca.
    Quel est la raison de vouloir couper le scheduler ?
    Si c'est pour absorber un pic de charge en temps de traitement et ameliorer un temps de reponse en desactivant les autres taches:
    -Tu peut jouer avec la priorité d'execution de ta tache (le scheduleur te donneras plus la main que les autres taches)
    -Tu peut envoyer un signal a tes taches pour quelle passe en sleep (si tu en as les sources) puis un autre pour les relancer
    -(solutions beurk) Tu peut descendre la partie traitement (longue) dans un module kernel car dans l'espace kernel tu n'est pre-empté que par les [interruptions et thread kernel] mais par aucune tache user.
  • [^] # Re: hmmm

    Posté par  . En réponse au message libusb et recuperation de donnees.. Évalué à 1.

    La derniere version de libusb permettrait effectivement lire les interrupts.
    De toute facon il n'y as aucune chance que les infos emisent par l'onduleur ne soit en ascii, tu ne risque pas d'avoir a recevoir juste une chaine a afficher mais des infos hexadecimal a convertir pour affichage.

    HDI c'est pas plutot HID pour Human Interface Device ?
    Si oui alors cela veut dire qu'il est compatible avec la norme
    et que les infos qu'il échange sont disponible ici:

    http://www.usb.org/developers/hidpage/

    plus precisement la lecture imposé est
    http://www.usb.org/developers/devclass_docs/HID1_11.pdf
    http://www.usb.org/developers/devclass_docs/Hut1_12.pdf
    http://www.usb.org/developers/devclass_docs/pdcv10.pdf

    bonne lecture, c'est assez épais.
  • [^] # Re: en fait c'est du soft

    Posté par  . En réponse au message transferts Isochrones et webcam. Évalué à 1.

    je ne vois pas ce que l'auteur a voulu dire par la, le plus simple ne serait il pas de lui demander la charge de travail qu'il estime pour le faire ?
    Il as peut etre dans les cartons une version qui marchouille en isochrone...
    Sinon le plus simple ne serait pas de prendre une carte PC104 USB HOST plutot ?
  • [^] # Re: hmmm

    Posté par  . En réponse au message libusb et recuperation de donnees.. Évalué à 1.

    lsusb -v te donneras les infos sur le profiles de communication déclarer de ton onduleurs (endpoint disponible type et direction).
    Si tu peut disposer d'un poste sous win32 pour espionner la communication avec snoopy tu pourras avancer plus vite dans ton identification des données et des endpoints.
    http://sourceforge.net/projects/usbsnoop/
  • # en fait c'est du soft

    Posté par  . En réponse au message transferts Isochrones et webcam. Évalué à 1.

    je connais bien le isp1161a1
    http://www.nxp.com/pip/ISP1161ABD.html
    et il supporte tres bien les transferts USB isochrones, par contre le drivers linux ne l'integre pas.
    Soit il faut regarder pour le rajouter
    Soit voir avec l'auteur sur ce site qui dispose sans doute de beaucoup d'experience pour savoir quel webcam fais de l'isochrone ou non.
    http://mxhaard.free.fr/
  • # oui mais non

    Posté par  . En réponse au message minicom sur port USB. Évalué à 1.

    dans usb le s veut bien dire serial mais bon.
    Minicom gere des ports series, pas des port usb.

    Maintenant si tu as un adaptateur port-serie/usb de brancher sur ton PC dans un port usb, alors il te faut identifier quel port serie est ce que le drivers de ton adaptateur emule pour le system.
    Le plus simple c'est souvent de lire le resultat de la commande "dmesg" et de chercher l'info.
  • [^] # Re: pour la meteo

    Posté par  . En réponse au journal Questions d'électro-informatique.... Évalué à 1.

    bien sur ce n'est pas possible directement, mais avec une pin du port paralelle tu obtient un niveau bas de 0.5V et haut de 3.5V, avec ce signal tu attaque la base d'un transistor NPN qui commande un relais +5V (en l'alimentant par exemple a partir du port usb) et c'est le contact sec du relais qui est sur le 220V. Il faut bien entendu faire tres attentions a ne pas creer de connection entre le 220V et le PC.
    Une autre possibilité est de relié plusieur pins (suivant le courant necessaire) du port paralelle et d'attaquer directement la led d'un optocoupleur 220V dont la sortie commande la bobine d'un relais....
  • # pour la meteo

    Posté par  . En réponse au journal Questions d'électro-informatique.... Évalué à 5.

    ce site devrait etre un bon depart pour toi (avec plein de lien)
    http://f5exo.free.fr/meteo/
    les capteurs et la carte sont facilement modifiable (c'est plus simple de s'inspirer que de repartir de 0)

    pour le on/off utilise une pin supplementaire dur port paralelle pour commander une alim.
  • [^] # Re: c'est pas bien

    Posté par  . En réponse au message ouvrir un fichier dans un kernel module (en 2.6). Évalué à 1.

    comme le dit tres bien daggett hotplug permet de faire cela plus proprement.
    ce mecanisme est utilisé dans le chargement de firmware des cartes video dans v4l.
    En voici un exemple utilisant la fonction request_firmware

    http://linuxtv.org/hg/v4l-dvb?f=2d0c4da32e19;file=linux/driv(...)
  • # c'est pas bien

    Posté par  . En réponse au message ouvrir un fichier dans un kernel module (en 2.6). Évalué à 1.

    de faire ca (jouer avec le privlege d'execution), mais si vraiment tu n'as pas d'autres solutions alors utilise le bon type ;-)
    mm_segment_t fs;
  • # c'est pas plus simple

    Posté par  . En réponse au message modules en kernel 2.6. Évalué à 2.

    Oui la construction d'un module a changer avec la serie 2.4.
    Pour etre au courant de toute les modifs je te conseille l'achat et la lecture de l'excellent ouvrage
    http://lwn.net/Kernel/LDD3/
    disponible aussi gratuitement en telechargement, mais pour moi rien ne remplace un bon vieux livre papier gribouiller.
    En fait il faut obligatoirement un make file pour compiler les modules qui portent maintenant l'extension ".ko"
    Il te faut les sources du kernel installe sur ta machine mais le makefile est locale et la compilation aussi et ne surtout pas modifier des fichiers du kernel que ce soit config ou autres. Sauf si tu sait ce que tu fait et que tu veux absolument le faire ;-)
  • [^] # Re: beaucoup?

    Posté par  . En réponse au journal Jean Michel Jarre sort un nouvel album. Évalué à 2.

    2
  • [^] # Re: BIOS ?

    Posté par  . En réponse au message Assembleur inline dans gcc. Évalué à 1.

    il y as driver et driver...sous linux c'est pas la mer a boire, contrairement a win et son DDK (WDM et KMDF).
    Les appli user communique avec le kernel par des fichiers speciaux situé dans /dev ou ceux dans /proc, si tu fais cat /proc/apm tu trouve les infos battery des portables par exemple...
    C'est effectivement le kernel qui redirige les interactions avec le materiel et les programme en espace user.
    Sous linux un driver c'est un module kernel (extension .ko) c'est pas tres compliqué a ecrire, la premiere des choses a faire est de lire
    http://lwn.net/Kernel/LDD3/
    ou tout est expliqué et ou les sources d'exemple fouri te permettront d'aller tres vite.
    HAL est une partie du kernel qui assume un autre role.
  • [^] # Re: BIOS ?

    Posté par  . En réponse au message Assembleur inline dans gcc. Évalué à 1.

    Alors la je plussoie violament la remarque precedante.

    Est-ce que je suis sûr que je ne vais pas écraser une donnée qui a été mise précédemment dans le registre ax par le compilateur C ?

    C'est quasi certain que tu l'ecrase oui, l'assembleur inline n'est pas encadré par des push/pop. Pour le voir demande a gcc de generer et laisser le code pseudo-assembleur du code en C pour voir ca.

    ... ça plante sur un segfault, et je ne sais absolument pas pourquoi ! Pire encore, je ne sais pas comment je peux le savoir ! J'ai vérifié que les I/O de la carte étaient activées dans le BIOS, mais malgré tout, dès que j'appelle l'interruption, boum, plantage...
    Sous linux l'espace memoire est partagé en deux, user et kernel. Le user-space n'as aucun acces direct au ressource physique du systeme, aucun acces au hard ou a la memoire il doit passer par le kernel pour demander l'acces ou les operation permise(par un driver).
    Sur toutes les machines, quand on execute un programme en espace user la tentative d'utilisation des certaines instructions assembleurs provoque un exeception qui se traduit ensuite par un segfault, c'est typiquement ce qu'il se passe quand tu fais asm("int $0x15");
    int est une instruction du mode protégé qui ne peut pas etre executé quand le run-level du proc est "user".
    Si tu veut plus d'info sur le driver a ecrire post dans le forum kernel
  • [^] # Re: BSD et linux sont cousin

    Posté par  . En réponse au message mknod et BPF (Berkeley Packet Filter). Évalué à 1.

    Pour voir les options de compilation du kernel en cours d'utilisation il suffit de faire
    gunzip /proc/config.gz |less
    il faut regarder sur des nom contenant pcap ou packet ou PF_
    je ne peut pas t'en dire plus, désolé
  • # BSD et linux sont cousin

    Posté par  . En réponse au message mknod et BPF (Berkeley Packet Filter). Évalué à 1.

    mais un peut éloigné, c'est plutot normal qu'une interface bsd ne soit pas presente sous linux.
    Je te suggere par contre de verifier que ton kernel est configurer avec l'option tcp/ip CONFIG_FILTER de mise
    et que la lib: libpcap est bien installée sur ton systeme.

    La commande mknod ne sert a rien si derriere il n'y as pas de partie du kernel qui feras la gestion du inode créer.
  • [^] # Re: pticours

    Posté par  . En réponse au message Création d'un mini driver avec libusb. Évalué à 2.

    je pense que tu confond contenu et forme. Le tableau suivant
    (1) char Array[] ={0x33,0x36,0x37};
    et
    (2)char Array[]={'3','6','7'};

    sont strictement egaux, dans un cas j'ecris le contenu en hexa et dans l'autre en ascii, mais d'un point de vue binaire le resultat de la compilation est strictement identique
    A ne pas faire :
    char Array[] ={"0x33","0x36","0x37"};

    Donc remplis ton tableau dans la forme que tu veut mais a mon avis c'est la forme (1) qui est le plus simple