IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

grep pour un µControleur


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 855
    Par défaut grep pour un µControleur
    Bonjour,

    Je cherche a faire un fonction grep() (version non etendue pour le moment) sur un µControlleur, il faut donc minimiser au maximum la consommation de ressources (pour info, je développe en C) et éviter les malloc et les fonctions récursives qui pourraient causé des bugs occasionnels (donc dure a identifier).

    J'ai commencé a chercher un peu comment faire : je ne vois pas comment faire lorsqu'il 'y pas des multiples inclusions de [] (ex: "a[^a-m[^de]]")

    => avez-vous une piste pour m'aider a débuter ?

    description du comportement de grep : http://pwet.fr/man/linux/commandes/grep

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    La partie compliqué c'est la détection d'expression régulière (regexp). Je te conseille de trouver une librairie (ou un source) déjà codé qui s'occupe de cette partie.

    Les regexp sont inclues dans la "GNU C library". Mais si c'est trop lourd pour ton projet, il y a aussi de implémentations plus légères (une par exemple sur le site de ozan yigit)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 855
    Par défaut
    merci pour ta réponse

    La lib ozan me semble un peu trop light, elle ne gère pas les {} (qui est une fonction super utile)
    Pour la lib GNU, ça veut dire quoi qu'on que n'est compatible POSIX ? est-ce que ça pose un problème si je n'ai pas d'OS sur mon systeme ?

    Si j'utilise le code source de la lib GNU, ça m'impose de faire quoi exactement au niveau legislatif (car mon programme sera dans un produit qui sera vendu) ?

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    Pour la lib GNU, ça veut dire quoi qu'on que n'est compatible POSIX ?
    Les rexexp implémentées dans la glibc respectent la spécification POSIX (avec en plus des fonctions étendues je crois)

    est-ce que ça pose un problème si je n'ai pas d'OS sur mon systeme ?
    Heu non. Tant que ton µC sait executer du code C, c'est bon.

    Si j'utilise le code source de la lib GNU, ça m'impose de faire quoi exactement au niveau legislatif (car mon programme sera dans un produit qui sera vendu) ?
    La glibc est sous licence LGPL. Tu peux l'utiliser pour tout type de projets commerciaux, closed-source, ... à condition de seulement la "linker" a ton programme !

    Tu ne peux pas copier/coller/inclure directement les sources de la librairie (*.c) dans ton programme (sauf si tu rends ton appli GPL ).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 855
    Par défaut
    Que veux-tu dire par "il faut seulement la linker" => il faut utiliser le regex.o ?
    => mais où est-ce que je trouve ce fichier (je suis sous PIC32MX => architecture MIPS) ?

    j'ai trouvé les fichiers ici (trouvé dans le tuto http://nicolasj.developpez.com/articles/regex/):
    http://ftp.gnu.org/pub/old-gnu/regex/
    => il n'y a aucune trace de fichier pré-compilé (même pour une autre plateforme) ...

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    Que veux-tu dire par "il faut seulement la linker" => il faut utiliser le regex.o ?
    => mais où est-ce que je trouve ce fichier (je suis sous PIC32MX => architecture MIPS) ?
    Il faut compiler la libraire, comme un programme a part. Cela donne un binaire non exécutable, généralement avec une extension ".a". Ensuite tu peux compiler ton propre programme (en incluant seulement les ".h") en indiquant au compilateur la le fichier librairie (.a)

    On a porté a mon attention que pour les µC il y a une version "light" de la glibc : la uclibc
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. grep pour rechercher un "^M"
    Par speedev dans le forum Administration système
    Réponses: 2
    Dernier message: 08/07/2010, 10h06
  2. antivirus pour un controleur de domaine ?
    Par delphino7 dans le forum Sécurité
    Réponses: 5
    Dernier message: 04/11/2008, 18h12
  3. fonction grep pour tableaux
    Par Jasmine80 dans le forum Langage
    Réponses: 4
    Dernier message: 20/12/2007, 13h57
  4. Grep pour filtrer le fichier log
    Par devdev2003 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 23/02/2005, 05h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo